Skip to content
  1. Nov 02, 2011
    • Tanya Lattner's avatar
      Add support to the linker to lazily link in functions. This change only links... · 0a48b877
      Tanya Lattner authored
      Add support to the linker to lazily link in functions. This change only links functions marked with specific linkage (internal, private, linker_private, linker_private_weak, linker_private_weak_def_auto, linkonce, linkonce_odr, and available_externally) if they have uses in the destination module. Instead of automatically linking, these functions are placed onto a worklist to be processed in the final stage of linking. We iterate over the list and if any functions on the list have uses in the destination module, we link them in and repeat the process until no changes in the state (uses) has changed. This means that any functions in the LazilyLink worklist that have a use in the destination module will be linked in and none that don't. 
      
      llvm-svn: 143524
      0a48b877
  2. Oct 30, 2011
  3. Oct 15, 2011
  4. Oct 11, 2011
    • Tanya Lattner's avatar
      Make it possible to use the linker without destroying the source module. This... · cbb91408
      Tanya Lattner authored
      Make it possible to use the linker without destroying the source module. This is so the source module can be linked to multiple other destination modules. For all that used LinkModules() before, they will continue to destroy the source module as before.
      
      This line, and those below, will be ignored--
      
      M    include/llvm/Linker.h
      M    tools/bugpoint/Miscompilation.cpp
      M    tools/bugpoint/BugDriver.cpp
      M    tools/llvm-link/llvm-link.cpp
      M    lib/Linker/LinkModules.cpp
      
      llvm-svn: 141606
      cbb91408
  5. Aug 12, 2011
  6. Aug 04, 2011
  7. Jul 18, 2011
  8. Jul 15, 2011
  9. Jul 14, 2011
  10. Jul 09, 2011
    • Chris Lattner's avatar
      Land the long talked about "type system rewrite" patch. This · b1ed91f3
      Chris Lattner authored
      patch brings numerous advantages to LLVM.  One way to look at it
      is through diffstat:
       109 files changed, 3005 insertions(+), 5906 deletions(-)
      
      Removing almost 3K lines of code is a good thing.  Other advantages
      include:
      
      1. Value::getType() is a simple load that can be CSE'd, not a mutating
         union-find operation.
      2. Types a uniqued and never move once created, defining away PATypeHolder.
      3. Structs can be "named" now, and their name is part of the identity that
         uniques them.  This means that the compiler doesn't merge them structurally
         which makes the IR much less confusing.
      4. Now that there is no way to get a cycle in a type graph without a named
         struct type, "upreferences" go away.
      5. Type refinement is completely gone, which should make LTO much MUCH faster
         in some common cases with C++ code.
      6. Types are now generally immutable, so we can use "Type *" instead 
         "const Type *" everywhere.
      
      Downsides of this patch are that it removes some functions from the C API,
      so people using those will have to upgrade to (not yet added) new API.  
      "LLVM 3.0" is the right time to do this.
      
      There are still some cleanups pending after this, this patch is large enough
      as-is.
      
      llvm-svn: 134829
      b1ed91f3
  11. Mar 30, 2011
  12. Feb 01, 2011
  13. Jan 15, 2011
  14. Jan 13, 2011
  15. Jan 08, 2011
    • Chris Lattner's avatar
      Revamp the ValueMapper interfaces in a couple ways: · 43f8d164
      Chris Lattner authored
      1. Take a flags argument instead of a bool.  This makes
         it more clear to the reader what it is used for.
      2. Add a flag that says that "remapping a value not in the
         map is ok".
      3. Reimplement MapValue to share a bunch of code and be a lot
         more efficient.  For lookup failures, don't drop null values
         into the map.
      4. Using the new flag a bunch of code can vaporize in LinkModules
         and LoopUnswitch, kill it.
      
      No functionality change.
      
      llvm-svn: 123058
      43f8d164
  16. Dec 30, 2010
  17. Dec 29, 2010
  18. Dec 18, 2010
  19. Nov 29, 2010
  20. Oct 19, 2010
  21. Oct 06, 2010
  22. Sep 01, 2010
  23. Aug 26, 2010
    • Dan Gohman's avatar
      Reapply r112091 and r111922, support for metadata linking, with a · ca26f790
      Dan Gohman authored
      fix: add a flag to MapValue and friends which indicates whether
      any module-level mappings are being made. In the common case of
      inlining, no module-level mappings are needed, so MapValue doesn't
      need to examine non-function-local metadata, which can be very
      expensive in the case of a large module with really deep metadata
      (e.g. a large C++ program compiled with -g).
      
      This flag is a little awkward; perhaps eventually it can be moved
      into the ClonedCodeInfo class.
      
      llvm-svn: 112190
      ca26f790
    • Daniel Dunbar's avatar
      Revert r112091, "Remap metadata attached to instructions when remapping · 95fe13c7
      Daniel Dunbar authored
      individual ...", which depends on r111922, which I am reverting.
      
      llvm-svn: 112157
      95fe13c7
  24. Aug 25, 2010
  25. Aug 24, 2010
  26. Aug 15, 2010
Loading