Disable stack realignment for functions with dynamic-sized alloca's
authorAnton Korobeynikov <asl@math.spbu.ru>
Wed, 23 Apr 2008 18:16:43 +0000 (18:16 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Wed, 23 Apr 2008 18:16:43 +0000 (18:16 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50155 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86RegisterInfo.cpp

index 31b9d046f677ff9610e5d011febb7d6f045ac617..9059a4e65e7ef3728dcb910fc91d83dfb6a08089 100644 (file)
@@ -267,7 +267,10 @@ bool X86RegisterInfo::hasFP(const MachineFunction &MF) const {
 bool X86RegisterInfo::needsStackRealignment(const MachineFunction &MF) const {
   MachineFrameInfo *MFI = MF.getFrameInfo();;
 
-  return (MFI->getMaxAlignment() > StackAlign);
+  // FIXME: Currently we don't support stack realignment for functions with
+  // variable-sized allocas
+  return (MFI->getMaxAlignment() > StackAlign &&
+          !MFI->hasVarSizedObjects());
 }
 
 bool X86RegisterInfo::hasReservedCallFrame(MachineFunction &MF) const {