diff options
author | Arnaud A. de Grandmaison <arnaud.degrandmaison@arm.com> | 2014-10-08 12:49:16 +0000 |
---|---|---|
committer | Arnaud A. de Grandmaison <arnaud.degrandmaison@arm.com> | 2014-10-08 12:49:16 +0000 |
commit | eee131df0806f9e9545fcc499d25864b7c0c3391 (patch) | |
tree | 1d1c3147ffe95700427b9cfe3e1234898a4fd830 /test/CodeGenCXX/nrvo.cpp | |
parent | 5ab907d08be8e66aac9dd192d6be9701e4757dd8 (diff) |
Remove threshold on object size for inserting lifetime begin / end
Boostrapping LLVM+Clang+LLDB without threshold on object size for
lifetime markers insertion has shown there was no significant change
in compile time, so let the stack slot colorizer do its optimization
for all slots.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219303 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/nrvo.cpp')
-rw-r--r-- | test/CodeGenCXX/nrvo.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/test/CodeGenCXX/nrvo.cpp b/test/CodeGenCXX/nrvo.cpp index aad287dc32..bc184e5c5e 100644 --- a/test/CodeGenCXX/nrvo.cpp +++ b/test/CodeGenCXX/nrvo.cpp @@ -54,16 +54,22 @@ X test2(bool B) { return x; // CHECK: call {{.*}} @_ZN1XC1Ev + // CHECK-NEXT: {{.*}} getelementptr inbounds %class.X* %y, i32 0, i32 0 + // CHECK-NEXT: call void @llvm.lifetime.start // CHECK-NEXT: call {{.*}} @_ZN1XC1Ev // CHECK: call {{.*}} @_ZN1XC1ERKS_ // CHECK: call {{.*}} @_ZN1XC1ERKS_ // CHECK: call {{.*}} @_ZN1XD1Ev + // CHECK-NEXT: call void @llvm.lifetime.end // CHECK: call {{.*}} @_ZN1XD1Ev + // CHECK-NEXT: call void @llvm.lifetime.end // CHECK: ret void // The block ordering in the -fexceptions IR is unfortunate. - // CHECK-EH: call {{.*}} @_ZN1XC1Ev + // CHECK-EH: call void @llvm.lifetime.start + // CHECK-EH-NEXT: call {{.*}} @_ZN1XC1Ev + // CHECK-EH: call void @llvm.lifetime.start // CHECK-EH-NEXT: invoke {{.*}} @_ZN1XC1Ev // -> %invoke.cont, %lpad @@ -96,7 +102,9 @@ X test2(bool B) { // -> %invoke.cont11, %lpad // %invoke.cont11: normal cleanup for 'x' - // CHECK-EH: call {{.*}} @_ZN1XD1Ev + // CHECK-EH: call void @llvm.lifetime.end + // CHECK-EH-NEXT: call {{.*}} @_ZN1XD1Ev + // CHECK-EH-NEXT: call void @llvm.lifetime.end // CHECK-EH-NEXT: ret void // %eh.cleanup: EH cleanup for 'x' @@ -168,9 +176,12 @@ X test6() { X a __attribute__((aligned(8))); return a; // CHECK: [[A:%.*]] = alloca [[X:%.*]], align 8 + // CHECK-NEXT: [[PTR:%.*]] = getelementptr inbounds %class.X* [[A]], i32 0, i32 0 + // CHECK-NEXT: call void @llvm.lifetime.start(i64 1, i8* [[PTR]]) // CHECK-NEXT: call {{.*}} @_ZN1XC1Ev([[X]]* [[A]]) // CHECK-NEXT: call {{.*}} @_ZN1XC1ERKS_([[X]]* {{%.*}}, [[X]]* dereferenceable({{[0-9]+}}) [[A]]) // CHECK-NEXT: call {{.*}} @_ZN1XD1Ev([[X]]* [[A]]) + // CHECK-NEXT: call void @llvm.lifetime.end(i64 1, i8* [[PTR]]) // CHECK-NEXT: ret void } |