Add prolog/epilog spills/reloads to counters
authorChris Lattner <sabre@nondot.org>
Tue, 17 Dec 2002 03:16:10 +0000 (03:16 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 17 Dec 2002 03:16:10 +0000 (03:16 +0000)
Move X86 specific alignment gunk to X86 files

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

lib/CodeGen/RegAllocLocal.cpp

index 6ac2d33cce3654167a472491f265ba7cb151bbec..e5c70a18e640ee73a3624f831119cfc52f206bf7 100644 (file)
@@ -547,6 +547,7 @@ void RA::AllocateBasicBlock(MachineBasicBlock &MBB) {
   assert(PhysRegsUseOrder.empty() && "Physical regs still allocated?");
 }
 
+
 /// EmitPrologue - Use the register info object to add a prologue to the
 /// function and save any callee saved registers we are responsible for.
 ///
@@ -564,18 +565,19 @@ void RA::EmitPrologue() {
     unsigned Offset = getStackSpaceFor(CSRegs[i], RegClass);
 
     // Insert the spill to the stack frame...
+    ++NumSpilled;
     I = RegInfo.storeReg2RegOffset(MBB, I, CSRegs[i], RegInfo.getFramePointer(),
                                    -Offset, RegClass->getDataSize());
   }
 
-  // Round stack allocation up to a nice alignment to keep the stack aligned
-  // FIXME: This is X86 specific!  Move to RegInfo.emitPrologue()!
-  NumBytesAllocated = (NumBytesAllocated + 3) & ~3;
-
   // Add prologue to the function...
   RegInfo.emitPrologue(*MF, NumBytesAllocated);
 }
 
+
+/// EmitEpilogue - Use the register info object to add a epilogue to the
+/// function and restore any callee saved registers we are responsible for.
+///
 void RA::EmitEpilogue(MachineBasicBlock &MBB) {
   // Insert instructions before the return.
   MachineBasicBlock::iterator I = --MBB.end();
@@ -584,6 +586,7 @@ void RA::EmitEpilogue(MachineBasicBlock &MBB) {
   for (unsigned i = 0; CSRegs[i]; ++i) {
     const TargetRegisterClass *RegClass = PhysRegClasses[CSRegs[i]];
     unsigned Offset = getStackSpaceFor(CSRegs[i], RegClass);
+    ++NumReloaded;
     I = RegInfo.loadRegOffset2Reg(MBB, I, CSRegs[i], RegInfo.getFramePointer(),
                                   -Offset, RegClass->getDataSize());
     --I;  // Insert in reverse order