Add experimental support for register unit liveness.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 5 Jun 2012 22:02:15 +0000 (22:02 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 5 Jun 2012 22:02:15 +0000 (22:02 +0000)
commit34c6f9803499c11ed2dc8479ec768d47370a2d3a
tree8e6a1cf7f20e7eaf8259978bb9d6d3bf1950baf1
parent4e53a40ea321c43bdf754147dd2ec064985e5b7b
Add experimental support for register unit liveness.

Instead of computing a live interval per physreg, LiveIntervals can
compute live intervals per register unit. This makes impossible the
confusing situation where aliasing registers could have overlapping live
intervals. It should also make fixed interferernce checking cheaper
since registers have fewer register units than aliases.

Live intervals for regunits are computed on demand, using MRI use-def
chains and the new LiveRangeCalc class. Only regunits live in to ABI
blocks are precomputed during LiveIntervals::runOnMachineFunction().

The regunit liveness computations don't depend on LiveVariables.

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