aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-08-21 19:45:10 +0000
committerChris Lattner <sabre@nondot.org>2004-08-21 19:45:10 +0000
commitfa1face30a1943aa17560f6f6e10bb667b257065 (patch)
tree28c000d938d360af56973cdaa5b7bc82084b629a
parent987b5cc5578410c3bbc6077c2e2aa5df33cd3447 (diff)
Now that we have per-register spill size/alignment info, remove more uses
of getRegClass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15967 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/PrologEpilogInserter.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/CodeGen/PrologEpilogInserter.cpp b/lib/CodeGen/PrologEpilogInserter.cpp
index e997ead86f..213371949c 100644
--- a/lib/CodeGen/PrologEpilogInserter.cpp
+++ b/lib/CodeGen/PrologEpilogInserter.cpp
@@ -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);
}