- Nov 20, 2010
-
-
Dale Johannesen authored
llvm-svn: 119870
-
- Nov 19, 2010
-
-
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: 119787
-
NAKAMURA Takumi authored
CMake can pass *.def to link.exe. llvm-svn: 119783
-
NAKAMURA Takumi authored
MSVC9 and 8 cannot compile ValueMapTest.cpp due to their bug. See issue#331418 in Visual Studio. llvm-svn: 119782
-
Jakob Stoklund Olesen authored
This reverts r119772. llvm-svn: 119773
-
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
-
- Nov 14, 2010
-
-
NAKAMURA Takumi authored
llvm-svn: 119040
-
- Oct 29, 2010
-
-
NAKAMURA Takumi authored
llvm-svn: 117646
-
- Oct 28, 2010
-
-
Oscar Fuentes authored
UnitTests for building all the unit tests. llvm-svn: 117545
-
- Oct 21, 2010
-
-
Michael J. Spencer authored
llvm-svn: 117057
-
- Oct 19, 2010
-
-
Michael J. Spencer authored
llvm-svn: 116834
-
- Oct 11, 2010
-
-
Michael J. Spencer authored
This time correctly. llvm-svn: 116247
-
Michael J. Spencer authored
This reverts commit 116234. It compiled just fine with MSVC and clang... llvm-svn: 116242
-
Michael J. Spencer authored
llvm-svn: 116235
-
Michael J. Spencer authored
llvm-svn: 116234
-
- Sep 27, 2010
-
-
Douglas Gregor authored
llvm-svn: 114835
-
- Sep 25, 2010
-
-
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
-
- Sep 24, 2010
-
-
Michael J. Spencer authored
unless LLVM_INCLUDE_X is ON. LLVM_BUILD_X implies LLVM_INCLUDE_X llvm-svn: 114747
-
Michael J. Spencer authored
llvm-svn: 114725
-