1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/CodeGen/X86/force-align-stack.ll
Akira Hatanaka a71c14303e Use function attribute "stackrealign" to decide whether stack
realignment should be forced.

With this commit, we can now force stack realignment when doing LTO and
do so on a per-function basis. Also, add a new cl::opt option
"stackrealign" to CommandFlags.h which is used to force stack
realignment via llc's command line.

Out-of-tree projects currently using -force-align-stack to force stack
realignment should make changes to attach the attribute to the functions
in the IR.

Differential Revision: http://reviews.llvm.org/D11814

llvm-svn: 247450
2015-09-11 18:54:38 +00:00

22 lines
818 B
LLVM

; RUN: llc < %s -relocation-model=static -stackrealign | FileCheck %s
; Tests to make sure that we always align the stack out to the minimum needed -
; in this case 16-bytes.
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32"
target triple = "i386-apple-darwin10.3"
define void @a() nounwind ssp {
entry:
; CHECK: _a:
; CHECK: andl $-16, %esp
%z = alloca <16 x i8> ; <<16 x i8>*> [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
store <16 x i8> zeroinitializer, <16 x i8>* %z, align 16
call void @b(<16 x i8>* %z) nounwind
br label %return
return: ; preds = %entry
ret void
}
declare void @b(<16 x i8>*)