- Nov 29, 2010
-
-
Michael J. Spencer authored
llvm-svn: 120298
-
- 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
-
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
-
- Oct 17, 2010
-
-
Oscar Fuentes authored
llvm-svn: 116682
-
- Oct 08, 2010
-
-
John Thompson authored
llvm-svn: 116003
-
- Sep 29, 2010
-
-
Oscar Fuentes authored
llvm-svn: 114999
-
- Aug 20, 2010
-
-
Benjamin Kramer authored
llvm-svn: 111669
-
- Jul 28, 2010
-
-
Douglas Gregor authored
llvm-svn: 109598
-
- Jun 08, 2010
-
-
Daniel Dunbar authored
ADT: Add DAGDeltaAlgorithm, which is a DAG minimization algorithm built on top of the standard 'delta debugging' algorithm. - This can give substantial speedups in the delta process for inputs we can construct dependency information for. llvm-svn: 105612
-
- Dec 23, 2009
-
-
Douglas Gregor authored
llvm-svn: 92003
-
- Dec 16, 2009
-
-
Chris Lattner authored
SmallVectorBase::grow_pod out of line, finally satisfying PR3758. llvm-svn: 91529
-
- Dec 03, 2009
-
-
Daniel Dunbar authored
- This is a pretty slow / memory intensive implementation, and I will likely change it to an iterative model, but it works. llvm-svn: 90447
-
- Sep 17, 2009
-
-
Daniel Dunbar authored
llvm-svn: 82087
-
- Sep 11, 2009
-
-
Ted Kremenek authored
llvm-svn: 81577
-
- Sep 01, 2009
-
-
Ted Kremenek authored
llvm-svn: 80680
-
- Aug 30, 2009
-
-
Torok Edwin authored
implementation. llvm-svn: 80493
-
- Aug 25, 2009
-
-
Oscar Fuentes authored
llvm-svn: 79959
-
- Aug 24, 2009
-
-
Oscar Fuentes authored
llvm-svn: 79876
-
- Jul 31, 2009
-
-
Ted Kremenek authored
llvm-svn: 77709
-
- Jul 24, 2009
-
-
Daniel Dunbar authored
llvm-svn: 76957
-
- Jul 15, 2009
-
-
Ted Kremenek authored
llvm-svn: 75746
-
- Jul 14, 2009
-
-
Ted Kremenek authored
llvm-svn: 75677
-
- Jul 07, 2009
-
-
Mike Stump authored
llvm-svn: 74936
-
- Jun 26, 2009
-
-
Douglas Gregor authored
llvm-svn: 74285
-
- Jun 21, 2009
-
-
Chris Lattner authored
llvm-svn: 73844
-
- Jun 18, 2009
-
-
Ted Kremenek authored
llvm-svn: 73708
-
- Jun 16, 2009
-
-
Douglas Gregor authored
llvm-svn: 73516
-
- May 27, 2009
-
-
Douglas Gregor authored
llvm-svn: 72480
-
- Mar 05, 2009
-
-
Duncan Sands authored
llvm-svn: 66160
-
- Sep 22, 2008
-
-
Oscar Fuentes authored
llvm-svn: 56419
-