1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/unittests/ADT
Jakob Stoklund Olesen 7d82c5c710 Add ADT/IntervalMap.
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
2010-11-19 01:14:40 +00:00
..
APFloatTest.cpp Fix death tests in -Asserts builds. 2010-03-17 01:18:45 +00:00
APIntTest.cpp Attempt to unbreak the FreeBSD buildbot by XFAILing a unit test that seems to be 2010-09-14 00:51:58 +00:00
BitVectorTest.cpp Add an all() method to BitVector, for testing whether all bits are set. 2010-09-27 15:48:37 +00:00
DAGDeltaAlgorithmTest.cpp ADT: Add DAGDeltaAlgorithm, which is a DAG minimization algorithm built on top of the standard 'delta debugging' algorithm. 2010-06-08 16:21:22 +00:00
DeltaAlgorithmTest.cpp Define the new operator<< for sets into namespace std, so that 2009-12-24 21:11:45 +00:00
DenseMapTest.cpp Fix DenseMap iterator constness. 2009-11-10 01:02:17 +00:00
DenseSetTest.cpp Prevent looping when DenseSet is abused. 2009-05-01 20:47:53 +00:00
ilistTest.cpp Fix const ilist_node::get{Prev,Next}Node() to actually compile. Picky, picky. 2010-05-13 18:35:02 +00:00
ImmutableSetTest.cpp improve test and address Misha's comments 2009-01-03 14:55:26 +00:00
IntervalMapTest.cpp Add ADT/IntervalMap. 2010-11-19 01:14:40 +00:00
Makefile Move ValueMapTest from ADT to VMCore so that ADT doesn't need 2010-09-27 15:50:08 +00:00
SmallBitVectorTest.cpp Add an all() method to BitVector, for testing whether all bits are set. 2010-09-27 15:48:37 +00:00
SmallStringTest.cpp Remove SmallString::append_*int* unit tests. 2009-08-19 19:41:05 +00:00
SmallVectorTest.cpp Switch attribute macros to use 'LLVM_' as a prefix. We retain the old names 2010-10-23 08:10:43 +00:00
SparseBitVectorTest.cpp Add a missing ilist_node.h #include to SparseBitVector, and add a very short 2009-07-25 00:33:57 +00:00
StringMapTest.cpp Fix (harmless) memory leak found by memcheck. 2010-02-11 07:16:13 +00:00
StringRefTest.cpp StringRef::compare_numeric also differed from StringRef::compare for characters > 127. 2010-08-26 15:25:35 +00:00
TripleTest.cpp Add better support for environment portion of triple. Original patch by 2010-09-16 08:25:48 +00:00
TwineTest.cpp Twine: Use raw_ostream::write_hex, remove unused itohexstr method. 2009-07-30 18:30:19 +00:00