Use function attributes to indicate if we don't want to realign the stack.
authorBill Wendling <isanbard@gmail.com>
Thu, 1 Aug 2013 21:41:02 +0000 (21:41 +0000)
committerBill Wendling <isanbard@gmail.com>
Thu, 1 Aug 2013 21:41:02 +0000 (21:41 +0000)
llvm-svn: 187617

clang/lib/CodeGen/BackendUtil.cpp
clang/lib/CodeGen/CGCall.cpp

index 1bf4918..79cbc38 100644 (file)
@@ -451,7 +451,6 @@ TargetMachine *EmitAssemblyHelper::CreateTargetMachine(bool MustCreateTM) {
   Options.UnsafeFPMath = CodeGenOpts.UnsafeFPMath;
   Options.UseSoftFloat = CodeGenOpts.SoftFloat;
   Options.StackAlignmentOverride = CodeGenOpts.StackAlignment;
-  Options.RealignStack = CodeGenOpts.StackRealignment;
   Options.DisableTailCalls = CodeGenOpts.DisableTailCalls;
   Options.TrapFuncName = CodeGenOpts.TrapFuncName;
   Options.PositionIndependentExecutable = LangOpts.PIELevel != 0;
index b4c710c..11ee388 100644 (file)
@@ -1084,6 +1084,9 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI,
 
     FuncAttrs.addAttribute("no-frame-pointer-elim-non-leaf",
                            llvm::toStringRef(NoFramePointerElimNonLeaf));
+
+    if (!CodeGenOpts.StackRealignment)
+      FuncAttrs.addAttribute("no-realign-stack");
   }
 
   QualType RetTy = FI.getReturnType();