summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/ClangUserExpression.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-11-19 01:14:40 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-11-19 01:14:40 +0000
commit6d89171dccba14b1791ce131043e5522e57a1fb4 (patch)
treed2dec36fd7eadd0b4beaef95948ca7d591c9608c /lldb/source/Expression/ClangUserExpression.cpp
parent1b95a6ff95a279de27d5f63de8d67a731f280b44 (diff)
downloadbcm5719-llvm-6d89171dccba14b1791ce131043e5522e57a1fb4.tar.gz
bcm5719-llvm-6d89171dccba14b1791ce131043e5522e57a1fb4.zip
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
Diffstat (limited to 'lldb/source/Expression/ClangUserExpression.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud