Skip to content
  1. Nov 19, 2010
    • NAKAMURA Takumi's avatar
      unittests/CMakeLists.txt: Suppress building ValueMapTest on MSVC older than 10(VS2010). · 7a953baa
      NAKAMURA Takumi authored
      MSVC9 and 8 cannot compile ValueMapTest.cpp due to their bug.
      See issue#331418 in Visual Studio.
      
      llvm-svn: 119782
      7a953baa
    • Jakob Stoklund Olesen's avatar
      Revert "Add ADT/IntervalMap.", GCC doesn't like it. · 09770251
      Jakob Stoklund Olesen authored
      This reverts r119772.
      
      llvm-svn: 119773
      09770251
    • Jakob Stoklund Olesen's avatar
      Add ADT/IntervalMap. · 6d89171d
      Jakob Stoklund Olesen authored
      This is a sorted interval map data structure for small keys and values with
      automatic coalescing and bidirectional iteration over coalesced intervals.
      
      Except for coalescing intervals, it provides similar functionality to std::map.
      It is however much more compact for small keys and values, and hopefully faster
      too.
      
      The container object itself can hold the first few intervals without any
      allocations, then it switches to a cache conscious B+-tree representation. A
      recycling allocator can be shared between many containers, even between
      containers holding different types.
      
      The IntervalMap is initially intended to be used with SlotIndex intervals for:
      
      - Backing store for LiveIntervalUnion that is smaller and faster than std::set.
      
      - Backing store for LiveInterval with less overhead than std::vector for typical
        intervals and O(N log N) merging of large intervals. 99% of virtual registers
        need 4 entries or less and would benefit from the small object optimization.
      
      - Backing store for LiveDebugVariable which doesn't exist yet, but will track
        debug variables during register allocation.
      
      This is a work in progress. Missing items are:
      
      - Performance metrics.
      - erase().
      - insert() shrinkage.
      - clear().
      - More performance metrics.
      - Simplification and detemplatization.
      
      llvm-svn: 119772
      6d89171d
  2. Nov 18, 2010
  3. Nov 14, 2010
  4. Oct 29, 2010
  5. Oct 28, 2010
  6. Oct 23, 2010
  7. Oct 21, 2010
  8. Oct 19, 2010
    • Michael J. Spencer's avatar
    • Owen Anderson's avatar
      Get rid of static constructors for pass registration. Instead, every pass... · 6c18d1aa
      Owen Anderson authored
      Get rid of static constructors for pass registration.  Instead, every pass exposes an initializeMyPassFunction(), which
      must be called in the pass's constructor.  This function uses static dependency declarations to recursively initialize
      the pass's dependencies.
      
      Clients that only create passes through the createFooPass() APIs will require no changes.  Clients that want to use the
      CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
      before parsing commandline arguments.
      
      I have tested this with all standard configurations of clang and llvm-gcc on Darwin.  It is possible that there are problems
      with the static dependencies that will only be visible with non-standard options.  If you encounter any crash in pass
      registration/creation, please send the testcase to me directly.
      
      llvm-svn: 116820
      6c18d1aa
  9. Oct 12, 2010
  10. Oct 11, 2010
  11. Oct 04, 2010
  12. Sep 28, 2010
  13. Sep 27, 2010
  14. Sep 25, 2010
    • Oscar Fuentes's avatar
      Reverting "CMake: Don't include tools, unittets, or examples as · 46d8a930
      Oscar Fuentes authored
      available targets unless LLVM_INCLUDE_X is ON. LLVM_BUILD_X implies
      LLVM_INCLUDE_X"
      
      It breaks the configuration phase when cmake is invoked without
      parameters, it is too complex for the purpose and introduces an
      incovenience for the user (as both LLVM_BUILD_X and LLVM_INCLUDE_X
      must set to OFF for not including X on the build)
      
      llvm-svn: 114795
      46d8a930
  15. Sep 24, 2010
  16. Sep 16, 2010
  17. Sep 14, 2010
  18. Sep 07, 2010
    • Nick Lewycky's avatar
      Add a new isSignWrappedSet() method to ConstantRange. · a35462da
      Nick Lewycky authored
      Fix zeroExtend and signExtend to support empty sets, and to return the smallest
      possible result set which contains the extension of each element in their
      inputs. For example zext i8 [100, 10) to i16 is now [0, 256), not i16 [100, 10)
      which contains 63446 members.
      
      llvm-svn: 113187
      a35462da
  19. Sep 01, 2010
  20. Aug 26, 2010
  21. Aug 19, 2010
  22. Aug 17, 2010
  23. Aug 12, 2010
    • Duncan Sands's avatar
      Add a 'normalize' method to the Triple class, which takes a mucked up · 501dff76
      Duncan Sands authored
      target triple and straightens it out.  This does less than gcc's script
      config.sub, for example it turns i386-mingw32 into i386--mingw32 not
      i386-pc-mingw32, but it does a decent job of turning funky triples into
      something that the rest of the Triple class can understand.  The plan
      is to use this to canonicalize triple's when they are first provided
      by users, and have the rest of LLVM only deal with canonical triples.
      Once this is done the special case workarounds in the Triple constructor
      can be removed, making the class more regular and easier to use.  The
      comments and unittests for the Triple class are already adjusted in this
      patch appropriately for this brave new world of increased uniformity.
      
      llvm-svn: 110909
      501dff76
    • Nick Lewycky's avatar
      Clean up ConstantRange a bit: · d385c22c
      Nick Lewycky authored
       - remove ashr which never worked.
       - fix lshr and shl and add tests.
       - remove dead function "intersect1Wrapped".
       - add a new sub method to subtract ranges, with test.
      
      llvm-svn: 110861
      d385c22c
  24. Aug 08, 2010
  25. Aug 07, 2010
  26. Aug 06, 2010
Loading