diff options
Diffstat (limited to 'lib/CodeGen/LiveVariables.cpp')
-rw-r--r-- | lib/CodeGen/LiveVariables.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/CodeGen/LiveVariables.cpp b/lib/CodeGen/LiveVariables.cpp index a8627396cc..28b5f1e90b 100644 --- a/lib/CodeGen/LiveVariables.cpp +++ b/lib/CodeGen/LiveVariables.cpp @@ -234,7 +234,8 @@ bool LiveVariables::runOnMachineFunction(MachineFunction &MF) { if (MO.isUse()) { if (MO.isVirtualRegister() && !MO.getVRegValueOrNull()) { HandleVirtRegUse(getVarInfo(MO.getReg()), MBB, MI); - } else if (MO.isPhysicalRegister() && + } else if (MO.isRegister() && + MRegisterInfo::isPhysicalRegister(MO.getReg()) && AllocatablePhysicalRegisters[MO.getReg()]) { HandlePhysRegUse(MO.getReg(), MI); } @@ -257,7 +258,8 @@ bool LiveVariables::runOnMachineFunction(MachineFunction &MF) { VRInfo.DefBlock = MBB; // Created here... VRInfo.DefInst = MI; VRInfo.Kills.push_back(std::make_pair(MBB, MI)); // Defaults to dead - } else if (MO.isPhysicalRegister() && + } else if (MO.isRegister() && + MRegisterInfo::isPhysicalRegister(MO.getReg()) && AllocatablePhysicalRegisters[MO.getReg()]) { HandlePhysRegDef(MO.getReg(), MI); } |