aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/TargetLoweringBase.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2013-02-20 18:18:12 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2013-02-20 18:18:12 +0000
commit1a41f32546019340f27a6f3854f3a73163a25dfe (patch)
tree7b198be81877a22dfb38f1f3a1f6e77a115d400a /lib/CodeGen/TargetLoweringBase.cpp
parent7b170500dcfce130c1e5af1c9150014e69e56819 (diff)
Add a LiveRangeUpdater class.
Adding new segments to large LiveIntervals can be expensive because the LiveRange objects after the insertion point may need to be moved left or right. This can cause quadratic behavior when adding a large number of segments to a live range. The LiveRangeUpdater class allows the LIveInterval to be in a temporary invalid state while segments are being added. It maintains an internal gap in the LiveInterval when it is shrinking, and it has a spill area for new segments when the LiveInterval is growing. The behavior is similar to the existing mergeIntervalRanges() function, except it allocates less memory for the spill area, and the algorithm is turned inside out so the loop is driven by the clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175644 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/TargetLoweringBase.cpp')
0 files changed, 0 insertions, 0 deletions