Skip to content
  1. Apr 25, 2014
  2. Jan 02, 2013
    • Chandler Carruth's avatar
      Move all of the header files which are involved in modelling the LLVM IR · 9fb823bb
      Chandler Carruth authored
      into their new header subdirectory: include/llvm/IR. This matches the
      directory structure of lib, and begins to correct a long standing point
      of file layout clutter in LLVM.
      
      There are still more header files to move here, but I wanted to handle
      them in separate commits to make tracking what files make sense at each
      layer easier.
      
      The only really questionable files here are the target intrinsic
      tablegen files. But that's a battle I'd rather not fight today.
      
      I've updated both CMake and Makefile build systems (I think, and my
      tests think, but I may have missed something).
      
      I've also re-sorted the includes throughout the project. I'll be
      committing updates to Clang, DragonEgg, and Polly momentarily.
      
      llvm-svn: 171366
      9fb823bb
  3. Dec 03, 2012
    • Chandler Carruth's avatar
      Use the new script to sort the includes of every file under lib. · ed0881b2
      Chandler Carruth authored
      Sooooo many of these had incorrect or strange main module includes.
      I have manually inspected all of these, and fixed the main module
      include to be the nearest plausible thing I could find. If you own or
      care about any of these source files, I encourage you to take some time
      and check that these edits were sensible. I can't have broken anything
      (I strictly added headers, and reordered them, never removed), but they
      may not be the headers you'd really like to identify as containing the
      API being implemented.
      
      Many forward declarations and missing includes were added to a header
      files to allow them to parse cleanly when included first. The main
      module rule does in fact have its merits. =]
      
      llvm-svn: 169131
      ed0881b2
  4. Nov 27, 2012
  5. Jun 23, 2012
    • Hans Wennborg's avatar
      Extend the IL for selecting TLS models (PR9788) · cbe34b4c
      Hans Wennborg authored
      This allows the user/front-end to specify a model that is better
      than what LLVM would choose by default. For example, a variable
      might be declared as
      
        @x = thread_local(initialexec) global i32 42
      
      if it will not be used in a shared library that is dlopen'ed.
      
      If the specified model isn't supported by the target, or if LLVM can
      make a better choice, a different model may be used.
      
      llvm-svn: 159077
      cbe34b4c
  6. Aug 15, 2011
  7. 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
  8. 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
  9. 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
  10. Aug 25, 2010
  11. Aug 24, 2010
  12. Jul 22, 2010
  13. Jun 24, 2010
  14. Jun 23, 2010
  15. Jun 22, 2010
  16. Apr 21, 2010
  17. Oct 25, 2009
  18. Aug 27, 2009
  19. Jul 22, 2009
  20. Jul 08, 2009
  21. Jul 06, 2009
  22. Jul 01, 2009
  23. Oct 09, 2008
  24. May 26, 2008
    • Duncan Sands's avatar
      Factor code to copy global value attributes like · dd7daee8
      Duncan Sands authored
      the section or the visibility from one global
      value to another: copyAttributesFrom.  This is
      particularly useful for duplicating functions:
      previously this was done by explicitly copying
      each attribute in turn at each place where a
      new function was created out of an old one, with
      the result that obscure attributes were regularly
      forgotten (like the collector or the section).
      Hopefully now everything is uniform and nothing
      is forgotten.
      
      llvm-svn: 51567
      dd7daee8
  25. Apr 06, 2008
  26. Dec 29, 2007
  27. Dec 10, 2007
    • Gordon Henriksen's avatar
      Adding a collector name attribute to Function in the IR. These · 71183b67
      Gordon Henriksen authored
      methods are new to Function:
      
        bool hasCollector() const;
        const std::string &getCollector() const;
        void setCollector(const std::string &);
        void clearCollector();
      
      The assembly representation is as such:
      
        define void @f() gc "shadow-stack" { ...
      
      The implementation uses an on-the-side table to map Functions to 
      collector names, such that there is no overhead. A StringPool is 
      further used to unique collector names, which are extremely
      likely to be unique per process.
      
      llvm-svn: 44769
      71183b67
  28. Nov 27, 2007
    • Duncan Sands's avatar
      Fix PR1146: parameter attributes are longer part of · ad0ea2d4
      Duncan Sands authored
      the function type, instead they belong to functions
      and function calls.  This is an updated and slightly
      corrected version of Reid Spencer's original patch.
      The only known problem is that auto-upgrading of
      bitcode files doesn't seem to work properly (see
      test/Bitcode/AutoUpgradeIntrinsics.ll).  Hopefully
      a bitcode guru (who might that be? :) ) will fix it.
      
      llvm-svn: 44359
      ad0ea2d4
  29. Nov 09, 2007
  30. Jul 10, 2007
  31. Apr 12, 2007
  32. Feb 05, 2007
    • Reid Spencer's avatar
      For PR411: · 3aaaa0b2
      Reid Spencer authored
      This patch replaces the SymbolTable class with ValueSymbolTable which does
      not support types planes. This means that all symbol names in LLVM must now
      be unique. The patch addresses the necessary changes to deal with this and
      removes code no longer needed as a result. This completes the bulk of the
      changes for this PR. Some cleanup patches will follow.
      
      llvm-svn: 33918
      3aaaa0b2
  33. Feb 03, 2007
  34. Jan 30, 2007
  35. Jan 26, 2007
    • Reid Spencer's avatar
      For PR761: · 3ac38e99
      Reid Spencer authored
      The Module::setEndianness and Module::setPointerSize methods have been
      removed. Instead you can get/set the DataLayout. Adjust thise accordingly.
      
      llvm-svn: 33530
      3ac38e99
Loading