diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2015-05-15 03:49:05 +0000 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2015-05-15 03:49:05 +0000 |
commit | 1a6756bba07ef881d72d94e7b9646fedad71a16d (patch) | |
tree | 6b197b2ffa94fc2f1c6411da919a35cc0acd1b93 /clang/test/CodeGenCXX/stack-reuse.cpp | |
parent | 95a2a7e612e693edb14ec113106347a6b8d8fd05 (diff) | |
download | bcm5719-llvm-1a6756bba07ef881d72d94e7b9646fedad71a16d.tar.gz bcm5719-llvm-1a6756bba07ef881d72d94e7b9646fedad71a16d.zip |
Revert r237385, "[CodeGen] Reuse stack space from unused function results"
It broke clang stage2, at least tblgen.
llvm-svn: 237418
Diffstat (limited to 'clang/test/CodeGenCXX/stack-reuse.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/stack-reuse.cpp | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/clang/test/CodeGenCXX/stack-reuse.cpp b/clang/test/CodeGenCXX/stack-reuse.cpp deleted file mode 100644 index 67a0e4fe160..00000000000 --- a/clang/test/CodeGenCXX/stack-reuse.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// RUN: %clang -target armv7l-unknown-linux-gnueabihf -S %s -o - -emit-llvm -O1 -disable-llvm-optzns | FileCheck %s - -// Stack should be reused when possible, no need to allocate two separate slots -// if they have disjoint lifetime. - -// Sizes of objects are related to previously existed threshold of 32. In case -// of S_large stack size is rounded to 40 bytes. - -// 32B -struct S_small { - int a[8]; -}; - -// 36B -struct S_large { - int a[9]; -}; - -extern S_small foo_small(); -extern S_large foo_large(); -extern void bar_small(S_small*); -extern void bar_large(S_large*); - -// Prevent mangling of function names. -extern "C" { - -void small_rvoed_unnamed_temporary_object() { -// CHECK-LABEL: define void @small_rvoed_unnamed_temporary_object -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9foo_smallv -// CHECK: call void @llvm.lifetime.end -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9foo_smallv -// CHECK: call void @llvm.lifetime.end - - foo_small(); - foo_small(); -} - -void large_rvoed_unnamed_temporary_object() { -// CHECK-LABEL: define void @large_rvoed_unnamed_temporary_object -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9foo_largev -// CHECK: call void @llvm.lifetime.end -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9foo_largev -// CHECK: call void @llvm.lifetime.end - - foo_large(); - foo_large(); -} - -void small_rvoed_named_temporary_object() { -// CHECK-LABEL: define void @small_rvoed_named_temporary_object -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9foo_smallv -// CHECK: call void @llvm.lifetime.end -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9foo_smallv -// CHECK: call void @llvm.lifetime.end - - { - S_small s = foo_small(); - } - { - S_small s = foo_small(); - } -} - -void large_rvoed_named_temporary_object() { -// CHECK-LABEL: define void @large_rvoed_named_temporary_object -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9foo_largev -// CHECK: call void @llvm.lifetime.end -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9foo_largev -// CHECK: call void @llvm.lifetime.end - - { - S_large s = foo_large(); - } - { - S_large s = foo_large(); - } -} - -void small_auto_object() { -// CHECK-LABEL: define void @small_auto_object -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9bar_smallP7S_small -// CHECK: call void @llvm.lifetime.end -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9bar_smallP7S_small -// CHECK: call void @llvm.lifetime.end - - { - S_small s; - bar_small(&s); - } - { - S_small s; - bar_small(&s); - } -} - -void large_auto_object() { -// CHECK-LABEL: define void @large_auto_object -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9bar_largeP7S_large -// CHECK: call void @llvm.lifetime.end -// CHECK: call void @llvm.lifetime.start -// CHECK: call void @_Z9bar_largeP7S_large -// CHECK: call void @llvm.lifetime.end - - { - S_large s; - bar_large(&s); - } - { - S_large s; - bar_large(&s); - } -} - -} |