Use a transposed algorithm for handleMove().
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 12 Oct 2012 21:31:57 +0000 (21:31 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 12 Oct 2012 21:31:57 +0000 (21:31 +0000)
commitad5e969ba945c46aef58ae26b77f80cd99c8f3fb
tree98f4e2d00706f8415ce1e7b28d50e279b2d4816c
parent780c79822234a324a82bbc6b3c172fa478c27933
Use a transposed algorithm for handleMove().

Completely update one interval at a time instead of collecting live
range fragments to be updated. This avoids building data structures,
except for a single SmallPtrSet of updated intervals.

Also share code between handleMove() and handleMoveIntoBundle().

Add support for moving dead defs across other live values in the
interval. The MI scheduler can do that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165824 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/LiveIntervalAnalysis.cpp
test/CodeGen/X86/handle-move.ll [new file with mode: 0644]