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)
commit1a87a29d08c64d3ff4687f98aff62b525a1dc087
treeeaf06b657cd08eed7d8776d5535ec9a9080b504f
parent9a97f8fad3b08f634af8a894f3830d05e30bc4dc
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.

llvm-svn: 165824
llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
llvm/test/CodeGen/X86/handle-move.ll [new file with mode: 0644]