Skip to content
  1. May 27, 2010
  2. May 11, 2010
    • Bill Wendling's avatar
      The getDefaultSubtargetFeatures method of SubtargetFeature did actually return a · a12c1ff2
      Bill Wendling authored
      string of features for that target. However LTO was using that string to pass
      into the "create target machine" stuff. That stuff needed the feature string to
      be in a particular form. In particular, it needed the CPU specified first and
      then the attributes. If there isn't a CPU specified, it required it to be blank
      -- e.g., ",+altivec". Yuck.
      
      Modify the getDefaultSubtargetFeatures method to be a non-static member
      function. For all attributes for a specific subtarget, it will add them in like
      normal. It will also take a CPU string so that it can satisfy this horrible
      syntax.
      
      llvm-svn: 103451
      a12c1ff2
  3. May 02, 2010
  4. Apr 27, 2010
  5. Apr 17, 2010
  6. Mar 24, 2010
  7. Mar 12, 2010
  8. Feb 03, 2010
  9. Feb 02, 2010
  10. Jan 27, 2010
    • Jeffrey Yasskin's avatar
      Kill ModuleProvider and ghost linkage by inverting the relationship between · 091217be
      Jeffrey Yasskin authored
      Modules and ModuleProviders. Because the "ModuleProvider" simply materializes
      GlobalValues now, and doesn't provide modules, it's renamed to
      "GVMaterializer". Code that used to need a ModuleProvider to materialize
      Functions can now materialize the Functions directly. Functions no longer use a
      magic linkage to record that they're materializable; they simply ask the
      GVMaterializer.
      
      Because the C ABI must never change, we can't remove LLVMModuleProviderRef or
      the functions that refer to it. Instead, because Module now exposes the same
      functionality ModuleProvider used to, we store a Module* in any
      LLVMModuleProviderRef and translate in the wrapper methods.  The bindings to
      other languages still use the ModuleProvider concept.  It would probably be
      worth some time to update them to follow the C++ more closely, but I don't
      intend to do it.
      
      Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735.
      
      llvm-svn: 94686
      091217be
  11. Jan 17, 2010
  12. Jan 16, 2010
  13. Jan 15, 2010
  14. Jan 11, 2010
  15. Nov 25, 2009
  16. Nov 21, 2009
  17. Nov 18, 2009
  18. Nov 17, 2009
  19. Aug 25, 2009
    • Dan Gohman's avatar
      Delete some unnecessary flushes. · 896ef2be
      Dan Gohman authored
      llvm-svn: 80013
      896ef2be
    • Dan Gohman's avatar
      Make LLVM command-line tools overwrite their output files without -f. · 61a8796d
      Dan Gohman authored
      This is conventional command-line tool behavior. -f now just means
      "enable binary output on terminals".
      
      Add a -f option to llvm-extract and llvm-link, for consistency.
      
      Remove F_Force from raw_fd_ostream and enable overwriting and
      truncating by default. Introduce an F_Excl flag to permit users to
      enable a failure when the file already exists. This flag is
      currently unused.
      
      Update Makefiles and documentation accordingly.
      
      llvm-svn: 79990
      61a8796d
  20. Aug 24, 2009
    • Chris Lattner's avatar
      Prune #includes from llvm/Linker.h and llvm/System/Path.h, · c521f541
      Chris Lattner authored
      forcing them down into various .cpp files.
      
      This change also:
      1. Renames TimeValue::toString() and Path::toString() to ::str()
         for similarity with the STL.
      2. Removes all stream insertion support for sys::Path, forcing
         clients to call .str().
      3. Removes a use of Config/alloca.h from bugpoint, using smallvector
         instead.
      4. Weans llvm-db off <iostream>
      
      sys::Path really needs to be gutted, but I don't have the desire to
      do it at this point.
      
      llvm-svn: 79869
      c521f541
  21. Aug 23, 2009
  22. Aug 22, 2009
  23. Aug 13, 2009
  24. Aug 11, 2009
    • Jim Grosbach's avatar
      SjLj based exception handling unwinding support. This patch is nasty, brutish · 693e36a3
      Jim Grosbach authored
      and short. Well, it's kinda short. Definitely nasty and brutish.
      
      The front-end generates the register/unregister calls into the SjLj runtime,
      call-site indices and landing pad dispatch. The back end fills in the LSDA
      with the call-site information provided by the front end. Catch blocks are
      not yet implemented.
      
      Built on Darwin and verified no llvm-core "make check" regressions.
      
      llvm-svn: 78625
      693e36a3
  25. Aug 04, 2009
  26. Aug 03, 2009
    • Nick Lewycky's avatar
      129bb416
    • Daniel Dunbar's avatar
      Remove now unused arguments from TargetRegistry::lookupTarget. · 719d2355
      Daniel Dunbar authored
      llvm-svn: 77950
      719d2355
    • Daniel Dunbar's avatar
      Pass target triple string in to TargetMachine constructor. · 0f16ea5c
      Daniel Dunbar authored
      This is not just a matter of passing in the target triple from the module;
      currently backends are making decisions based on the build and host
      architecture. The goal is to migrate to making these decisions based off of the
      triple (in conjunction with the feature string). Thus most clients pass in the
      target triple, or the host triple if that is empty.
      
      This has one important change in the way behavior of the JIT and llc.
      
      For the JIT, it was previously selecting the Target based on the host
      (naturally), but it was setting the target machine features based on the triple
      from the module. Now it is setting the target machine features based on the
      triple of the host.
      
      For LLC, -march was previously only used to select the target, the target
      machine features were initialized from the module's triple (which may have been
      empty). Now the target triple is taken from the module, or the host's triple is
      used if that is empty. Then the triple is adjusted to match -march.
      
      The take away is that -march for llc is now used in conjunction with the host
      triple to initialize the subtarget. If users want more deterministic behavior
      from llc, they should use -mtriple, or set the triple in the input module.
      
      llvm-svn: 77946
      0f16ea5c
  27. Jul 27, 2009
    • Nick Lewycky's avatar
      Fix libLTO: · fd6a2498
      Nick Lewycky authored
       * Call InitializeAllTargets on every path where we might query the
         TargetRegistry. This fixes PR4604.
       * flush the formatted_raw_ostream& or else not all of the assembly will make
         it to the .s file. (It doesn't do this in its destructor?!)
       * Due to a reversed conditional, libLTO was reporting many symbols as both
         defined and undefined, including two definitions of the same symbol name
         in its symbol list.
      
      llvm-svn: 77170
      fd6a2498
  28. Jul 26, 2009
    • Daniel Dunbar's avatar
      Add TargetRegistry::lookupTarget. · 47d67915
      Daniel Dunbar authored
       - This is a simplified mechanism which just looks up a target based on the
         target triple, with a few additional flags.
      
       - Remove getClosestStaticTargetForModule, the moral equivalent is now:
           lookupTarget(Mod->getTargetTriple, true, false, ...);
      
       - This no longer does the fuzzy matching with target data (based on endianness
         and pointer width) that getClosestStaticTargetForModule was doing, but this
         was deemed unnecessary.
      
      llvm-svn: 77111
      47d67915
  29. Jul 22, 2009
Loading