Eliminate users of MachineOperand::isPhysicalRegister
authorChris Lattner <sabre@nondot.org>
Tue, 10 Feb 2004 20:41:10 +0000 (20:41 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 10 Feb 2004 20:41:10 +0000 (20:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11278 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LiveVariables.cpp
lib/CodeGen/PrologEpilogInserter.cpp
lib/CodeGen/RegAllocLocal.cpp

index a8627396cccd23a4707185156f3d77bbac759e69..28b5f1e90b73d04879c3478fd648b9503b922e13 100644 (file)
@@ -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);
          }
index bb5ad47544adaf4e8ecbf0c50536354a0ecd1a20..b44e386bbe8fec404feeb6141d474e5b28b6c47d 100644 (file)
@@ -118,7 +118,8 @@ void PEI::saveCallerSavedRegisters(MachineFunction &Fn) {
          MachineOperand &MO = (*I)->getOperand(i);
          assert(!MO.isVirtualRegister() &&
                 "Register allocation must be performed!");
-         if (MO.isPhysicalRegister() && MO.isDef())
+         if (MO.isRegister() && MO.isDef() &&
+              MRegisterInfo::isPhysicalRegister(MO.getReg()))
            ModifiedRegs[MO.getReg()] = true;         // Register is modified
        }
        ++I;
index b9c758c2f3d45504bad579eb28e2566aebbe87fc..23ec84531e38a99bad0f044cfb9673a4a413056f 100644 (file)
@@ -556,8 +556,8 @@ void RA::AllocateBasicBlock(MachineBasicBlock &MBB) {
     // Loop over all of the operands of the instruction, spilling registers that
     // are defined, and marking explicit destinations in the PhysRegsUsed map.
     for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i)
-      if (MI->getOperand(i).isDef() &&
-          MI->getOperand(i).isPhysicalRegister()) {
+      if (MI->getOperand(i).isDef() && MI->getOperand(i).isRegister() &&
+          MRegisterInfo::isPhysicalRegister(MI->getOperand(i).getReg())) {
         unsigned Reg = MI->getOperand(i).getAllocatedRegNum();
         spillPhysReg(MBB, I, Reg, true);  // Spill any existing value in the reg
         PhysRegsUsed[Reg] = 0;            // It is free and reserved now