diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-04-10 22:58:43 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-04-10 22:58:43 +0000 |
commit | 9c6582129a34d68c6093817608eaf3a24daf10fa (patch) | |
tree | df53059a8dc2565fe4ec248fe09f7c1765bae970 /llvm/test/CodeGen/X86/segmented-stacks.ll | |
parent | 79ae6008189fbc64ce01b9196e4c61e5c8f35056 (diff) | |
download | bcm5719-llvm-9c6582129a34d68c6093817608eaf3a24daf10fa.tar.gz bcm5719-llvm-9c6582129a34d68c6093817608eaf3a24daf10fa.zip |
Move the segmented stack switch to a function attribute
This removes the -segmented-stacks command line flag in favor of a
per-function "split-stack" attribute.
Patch by Luqman Aden and Alex Crichton!
llvm-svn: 205997
Diffstat (limited to 'llvm/test/CodeGen/X86/segmented-stacks.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/segmented-stacks.ll | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/llvm/test/CodeGen/X86/segmented-stacks.ll b/llvm/test/CodeGen/X86/segmented-stacks.ll index c02152bb638..8089f205684 100644 --- a/llvm/test/CodeGen/X86/segmented-stacks.ll +++ b/llvm/test/CodeGen/X86/segmented-stacks.ll @@ -1,23 +1,23 @@ -; RUN: llc < %s -mcpu=generic -mtriple=i686-linux -segmented-stacks -verify-machineinstrs | FileCheck %s -check-prefix=X32-Linux -; RUN: llc < %s -mcpu=generic -mtriple=x86_64-linux -segmented-stacks -verify-machineinstrs | FileCheck %s -check-prefix=X64-Linux -; RUN: llc < %s -mcpu=generic -mtriple=i686-darwin -segmented-stacks -verify-machineinstrs | FileCheck %s -check-prefix=X32-Darwin -; RUN: llc < %s -mcpu=generic -mtriple=x86_64-darwin -segmented-stacks -verify-machineinstrs | FileCheck %s -check-prefix=X64-Darwin -; RUN: llc < %s -mcpu=generic -mtriple=i686-mingw32 -segmented-stacks -verify-machineinstrs | FileCheck %s -check-prefix=X32-MinGW -; RUN: llc < %s -mcpu=generic -mtriple=x86_64-freebsd -segmented-stacks -verify-machineinstrs | FileCheck %s -check-prefix=X64-FreeBSD -; RUN: llc < %s -mcpu=generic -mtriple=x86_64-mingw32 -segmented-stacks -verify-machineinstrs | FileCheck %s -check-prefix=X64-MinGW +; RUN: llc < %s -mcpu=generic -mtriple=i686-linux -verify-machineinstrs | FileCheck %s -check-prefix=X32-Linux +; RUN: llc < %s -mcpu=generic -mtriple=x86_64-linux -verify-machineinstrs | FileCheck %s -check-prefix=X64-Linux +; RUN: llc < %s -mcpu=generic -mtriple=i686-darwin -verify-machineinstrs | FileCheck %s -check-prefix=X32-Darwin +; RUN: llc < %s -mcpu=generic -mtriple=x86_64-darwin -verify-machineinstrs | FileCheck %s -check-prefix=X64-Darwin +; RUN: llc < %s -mcpu=generic -mtriple=i686-mingw32 -verify-machineinstrs | FileCheck %s -check-prefix=X32-MinGW +; RUN: llc < %s -mcpu=generic -mtriple=x86_64-freebsd -verify-machineinstrs | FileCheck %s -check-prefix=X64-FreeBSD +; RUN: llc < %s -mcpu=generic -mtriple=x86_64-mingw32 -verify-machineinstrs | FileCheck %s -check-prefix=X64-MinGW ; We used to crash with filetype=obj -; RUN: llc < %s -mcpu=generic -mtriple=i686-linux -segmented-stacks -filetype=obj -; RUN: llc < %s -mcpu=generic -mtriple=x86_64-linux -segmented-stacks -filetype=obj -; RUN: llc < %s -mcpu=generic -mtriple=i686-darwin -segmented-stacks -filetype=obj -; RUN: llc < %s -mcpu=generic -mtriple=x86_64-darwin -segmented-stacks -filetype=obj -; RUN: llc < %s -mcpu=generic -mtriple=i686-mingw32 -segmented-stacks -filetype=obj -; RUN: llc < %s -mcpu=generic -mtriple=x86_64-freebsd -segmented-stacks -filetype=obj -; RUN: llc < %s -mcpu=generic -mtriple=x86_64-mingw32 -segmented-stacks -filetype=obj - -; RUN: not llc < %s -mcpu=generic -mtriple=x86_64-solaris -segmented-stacks 2> %t.log +; RUN: llc < %s -mcpu=generic -mtriple=i686-linux -filetype=obj +; RUN: llc < %s -mcpu=generic -mtriple=x86_64-linux -filetype=obj +; RUN: llc < %s -mcpu=generic -mtriple=i686-darwin -filetype=obj +; RUN: llc < %s -mcpu=generic -mtriple=x86_64-darwin -filetype=obj +; RUN: llc < %s -mcpu=generic -mtriple=i686-mingw32 -filetype=obj +; RUN: llc < %s -mcpu=generic -mtriple=x86_64-freebsd -filetype=obj +; RUN: llc < %s -mcpu=generic -mtriple=x86_64-mingw32 -filetype=obj + +; RUN: not llc < %s -mcpu=generic -mtriple=x86_64-solaris 2> %t.log ; RUN: FileCheck %s -input-file=%t.log -check-prefix=X64-Solaris -; RUN: not llc < %s -mcpu=generic -mtriple=i686-freebsd -segmented-stacks 2> %t.log +; RUN: not llc < %s -mcpu=generic -mtriple=i686-freebsd 2> %t.log ; RUN: FileCheck %s -input-file=%t.log -check-prefix=X32-FreeBSD ; X64-Solaris: Segmented stacks not supported on this platform @@ -26,7 +26,7 @@ ; Just to prevent the alloca from being optimized away declare void @dummy_use(i32*, i32) -define void @test_basic() { +define void @test_basic() #0 { %mem = alloca i32, i32 10 call void @dummy_use (i32* %mem, i32 10) ret void @@ -104,7 +104,7 @@ define void @test_basic() { } -define i32 @test_nested(i32 * nest %closure, i32 %other) { +define i32 @test_nested(i32 * nest %closure, i32 %other) #0 { %addend = load i32 * %closure %result = add i32 %other, %addend ret i32 %result @@ -177,7 +177,7 @@ define i32 @test_nested(i32 * nest %closure, i32 %other) { } -define void @test_large() { +define void @test_large() #0 { %mem = alloca i32, i32 10000 call void @dummy_use (i32* %mem, i32 0) ret void @@ -249,7 +249,7 @@ define void @test_large() { } -define fastcc void @test_fastcc() { +define fastcc void @test_fastcc() #0 { %mem = alloca i32, i32 10 call void @dummy_use (i32* %mem, i32 10) ret void @@ -327,7 +327,7 @@ define fastcc void @test_fastcc() { } -define fastcc void @test_fastcc_large() { +define fastcc void @test_fastcc_large() #0 { %mem = alloca i32, i32 10000 call void @dummy_use (i32* %mem, i32 0) ret void @@ -412,7 +412,7 @@ define fastcc void @test_fastcc_large() { } -define fastcc void @test_fastcc_large_with_ecx_arg(i32 %a) { +define fastcc void @test_fastcc_large_with_ecx_arg(i32 %a) #0 { %mem = alloca i32, i32 10000 call void @dummy_use (i32* %mem, i32 %a) ret void @@ -434,3 +434,5 @@ define fastcc void @test_fastcc_large_with_ecx_arg(i32 %a) { ; X32-Darwin-NEXT: ret } + +attributes #0 = { "split-stack" } |