Copy single reaching defs directly into the LiveInterval.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 20 Feb 2013 23:08:26 +0000 (23:08 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 20 Feb 2013 23:08:26 +0000 (23:08 +0000)
commitbeda6ab879e35b6f7d998da980b30e3844d3bbeb
tree84f303b9f91db4e7acf701a9d3076b4fd0ca1bcb
parentb7a1dda9c91b3d1821f4235c35a0d62c62d18848
Copy single reaching defs directly into the LiveInterval.

When findReachingDefs() finds that only one value can reach the basic
block, just copy the work list of visited blocks directly into the live
interval.

Sort the block list and use a LiveRangeUpdater to make the bulk add
fast.

When multiple reaching defs are found, transfer the work list to the
updateSSA() work list as before. Also use LiveRangeUpdater in
updateLiveIns() following updateSSA().

This makes live interval analysis more than 3x faster on one huge test
case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175685 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/LiveRangeCalc.cpp
lib/CodeGen/LiveRangeCalc.h