Now that we have per-register spill size/alignment info, remove more uses
authorChris Lattner <sabre@nondot.org>
Sat, 21 Aug 2004 19:45:10 +0000 (19:45 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 21 Aug 2004 19:45:10 +0000 (19:45 +0000)
of getRegClass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15967 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/PrologEpilogInserter.cpp

index e997ead86f8fa5490b1f1eddd185564816a44a51..213371949c87023e70ac1864eb751ffd0f6455c3 100644 (file)
@@ -170,8 +170,6 @@ void PEI::calculateCallerSavedRegisters(MachineFunction &Fn) {
   // stack slots for them.
   for (unsigned i = 0, e = RegsToSave.size(); i != e; ++i) {
     unsigned Reg = RegsToSave[i];
-    int FrameIdx;
-    const TargetRegisterClass *RC = RegInfo->getRegClass(Reg);
 
     // Check to see if this physreg must be spilled to a particular stack slot
     // on this target.
@@ -180,12 +178,15 @@ void PEI::calculateCallerSavedRegisters(MachineFunction &Fn) {
            FixedSlot->first != Reg)
       ++FixedSlot;
 
+    int FrameIdx;
     if (FixedSlot == FixedSpillSlots+NumFixedSpillSlots) {
       // Nope, just spill it anywhere convenient.
-      FrameIdx = FFI->CreateStackObject(RC->getSize(), RC->getAlignment());
+      FrameIdx = FFI->CreateStackObject(RegInfo->getSpillSize(Reg),
+                                        RegInfo->getSpillAlignment(Reg));
     } else {
       // Spill it to the stack where we must.
-      FrameIdx = FFI->CreateFixedObject(RC->getSize(), FixedSlot->second);
+      FrameIdx = FFI->CreateFixedObject(RegInfo->getSpillSize(Reg),
+                                        FixedSlot->second);
     }
     StackSlots.push_back(FrameIdx);
   }