[llvm-commits] [llvm] r121172 - /llvm/trunk/lib/Target/ARM/ARMFrameInfo.cpp

Evan Cheng evan.cheng at apple.com
Tue Dec 7 11:59:34 PST 2010


Author: evancheng
Date: Tue Dec  7 13:59:34 2010
New Revision: 121172

URL: http://llvm.org/viewvc/llvm-project?rev=121172&view=rev
Log:
Code clean up; no functionality change.

Modified:
    llvm/trunk/lib/Target/ARM/ARMFrameInfo.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMFrameInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMFrameInfo.cpp?rev=121172&r1=121171&r2=121172&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMFrameInfo.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMFrameInfo.cpp Tue Dec  7 13:59:34 2010
@@ -508,11 +508,7 @@
   DebugLoc DL;
   if (MI != MBB.end()) DL = MI->getDebugLoc();
 
-  MachineInstrBuilder MIB = BuildMI(MF, DL, TII.get(Opc));
-  MIB.addReg(ARM::SP, getDefRegState(true));
-  MIB.addReg(ARM::SP);
-  AddDefaultPred(MIB);
-  bool NumRegs = false;
+  SmallVector<std::pair<unsigned,bool>, 4> Regs;
   for (unsigned i = CSI.size(); i != 0; --i) {
     unsigned Reg = CSI[i-1].getReg();
     if (!(Func)(Reg, STI.isTargetDarwin())) continue;
@@ -530,15 +526,16 @@
     if (isKill)
       MBB.addLiveIn(Reg);
 
-    NumRegs = true;
-    MIB.addReg(Reg, getKillRegState(isKill));
+    Regs.push_back(std::make_pair(Reg, isKill));
   }
 
   // It's illegal to emit push instruction without operands.
-  if (NumRegs)
-    MBB.insert(MI, &*MIB);
-  else
-    MF.DeleteMachineInstr(MIB);
+  if (!Regs.empty()) {
+    MachineInstrBuilder MIB = AddDefaultPred(BuildMI(MBB, MI, DL, TII.get(Opc),
+                                                     ARM::SP).addReg(ARM::SP));
+    for (unsigned i = 0, e = Regs.size(); i < e; ++i)
+      MIB.addReg(Regs[i].first, getKillRegState(Regs[i].second));
+  }
 }
 
 bool ARMFrameInfo::spillCalleeSavedRegisters(MachineBasicBlock &MBB,





More information about the llvm-commits mailing list