diff options
Diffstat (limited to 'lib/CodeGen/MachineVerifier.cpp')
| -rw-r--r-- | lib/CodeGen/MachineVerifier.cpp | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/CodeGen/MachineVerifier.cpp b/lib/CodeGen/MachineVerifier.cpp index 84bd670105e1..bfb2cde030dc 100644 --- a/lib/CodeGen/MachineVerifier.cpp +++ b/lib/CodeGen/MachineVerifier.cpp @@ -188,8 +188,9 @@ namespace {        return Reg < regsReserved.size() && regsReserved.test(Reg);      } -    bool isAllocatable(unsigned Reg) { -      return Reg < TRI->getNumRegs() && MRI->isAllocatable(Reg); +    bool isAllocatable(unsigned Reg) const { +      return Reg < TRI->getNumRegs() && TRI->isInAllocatableClass(Reg) && +        !regsReserved.test(Reg);      }      // Analysis information if available @@ -526,7 +527,8 @@ void MachineVerifier::markReachable(const MachineBasicBlock *MBB) {  void MachineVerifier::visitMachineFunctionBefore() {    lastIndex = SlotIndex(); -  regsReserved = MRI->getReservedRegs(); +  regsReserved = MRI->reservedRegsFrozen() ? MRI->getReservedRegs() +                                           : TRI->getReservedRegs(*MF);    if (!MF->empty())      markReachable(&MF->front());  | 
