From 99403b6964aead64c1039a8f4007437ef96dfd88 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Thu, 25 Jan 2007 22:25:04 +0000 Subject: [PATCH] - Tell PEI that PPC will handle stack frame rounding itself. - Do not round up to max. alignment of stack object if it is > stack alignment. It will have to be handled with dynamic aligning code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33505 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCRegisterInfo.cpp | 9 ++------- lib/Target/PowerPC/PPCRegisterInfo.h | 5 +++++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp index 465960afda4..76ade794141 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.cpp +++ b/lib/Target/PowerPC/PPCRegisterInfo.cpp @@ -451,9 +451,6 @@ void PPCRegisterInfo::lowerDynamicAlloc(MachineBasicBlock::iterator II) const { // Determine the maximum call stack size. maxCallFrameSize may be // less than the minimum. unsigned maxCallFrameSize = MFI->getMaxCallFrameSize(); - unsigned getMinCallFrameSize = - PPCFrameInfo::getMinCallFrameSize(LP64); - maxCallFrameSize = std::max(maxCallFrameSize, getMinCallFrameSize); // Get the total frame size. unsigned FrameSize = MFI->getStackSize(); @@ -712,11 +709,9 @@ void PPCRegisterInfo::determineFrameLayout(MachineFunction &MF) const { // Get the alignments provided by the target, and the maximum alignment // (if any) of the fixed frame objects. - unsigned TargetAlign = MF.getTarget().getFrameInfo()->getStackAlignment(); unsigned MaxAlign = MFI->getMaxAlignment(); - unsigned Align = std::max(TargetAlign, MaxAlign); - assert(isPowerOf2_32(Align) && "Alignment is not power of 2"); - unsigned AlignMask = Align - 1; // + unsigned TargetAlign = MF.getTarget().getFrameInfo()->getStackAlignment(); + unsigned AlignMask = TargetAlign - 1; // // If we are a leaf function, and use up to 224 bytes of stack space, // don't have a frame pointer, calls, or dynamic alloca then we do not need diff --git a/lib/Target/PowerPC/PPCRegisterInfo.h b/lib/Target/PowerPC/PPCRegisterInfo.h index 7d35c6a26ae..f8344de6ac1 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.h +++ b/lib/Target/PowerPC/PPCRegisterInfo.h @@ -58,6 +58,11 @@ public: const TargetRegisterClass* const* getCalleeSavedRegClasses() const; + /// targetHandlesStackFrameRounding - Returns true if the target is + /// responsible for rounding up the stack frame (probably at emitPrologue + /// time). + bool targetHandlesStackFrameRounding() const { return true; } + bool hasFP(const MachineFunction &MF) const; void eliminateCallFramePseudoInstr(MachineFunction &MF,