diff options
author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2003-12-13 05:26:39 +0000 |
---|---|---|
committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2003-12-13 05:26:39 +0000 |
commit | 9435eda6993944e74419d2f586fdd25635293760 (patch) | |
tree | 2943d7c6fc7d7ae4463d7547e16a49ba5f17c191 /lib/CodeGen/LiveIntervalAnalysis.cpp | |
parent | efe995a4063dd3f414f60c6ee2f4704dbb0fad34 (diff) |
Handle explicit physical register defs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10445 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/LiveIntervalAnalysis.cpp')
-rw-r--r-- | lib/CodeGen/LiveIntervalAnalysis.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp index c9f7b34c0b..2a31e66851 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -286,12 +286,15 @@ void LiveIntervals::computeIntervals() for (int i = instr->getNumOperands() - 1; i >= 0; --i) { MachineOperand& mop = instr->getOperand(i); - if (!mop.isVirtualRegister()) + if (!mop.isRegister()) continue; if (mop.opIsDefOnly() || mop.opIsDefAndUse()) { unsigned reg = mop.getAllocatedRegNum(); - handleVirtualRegisterDef(mbb, mi, reg); + if (reg < MRegisterInfo::FirstVirtualRegister) + handlePhysicalRegisterDef(mbb, mi, reg); + else + handleVirtualRegisterDef(mbb, mi, reg); } } } |