| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
This reverts r119772.
llvm-svn: 119773
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 119040
|
|
|
|
| |
llvm-svn: 117646
|
|
|
|
|
|
| |
UnitTests for building all the unit tests.
llvm-svn: 117545
|
|
|
|
| |
llvm-svn: 117057
|
|
|
|
| |
llvm-svn: 116834
|
|
|
|
|
|
| |
This time correctly.
llvm-svn: 116247
|
|
|
|
|
|
|
|
| |
This reverts commit 116234.
It compiled just fine with MSVC and clang...
llvm-svn: 116242
|
|
|
|
| |
llvm-svn: 116235
|
|
|
|
| |
llvm-svn: 116234
|
|
|
|
| |
llvm-svn: 114835
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
unless LLVM_INCLUDE_X is ON. LLVM_BUILD_X implies LLVM_INCLUDE_X
llvm-svn: 114747
|
|
llvm-svn: 114725
|