diff options
| author | Arnaud A. de Grandmaison <arnaud.degrandmaison@arm.com> | 2014-12-01 09:13:54 +0000 |
|---|---|---|
| committer | Arnaud A. de Grandmaison <arnaud.degrandmaison@arm.com> | 2014-12-01 09:13:54 +0000 |
| commit | f2730e2d227d0074822cc5bb9b1676107115bd58 (patch) | |
| tree | 66bba26a81d612878e6fe31ae889e40c52679188 /clang/test/CodeGenCXX/nrvo.cpp | |
| parent | 30895f9ab8cd9ce82f695147dc517fd44b8a21dd (diff) | |
| download | bcm5719-llvm-f2730e2d227d0074822cc5bb9b1676107115bd58.tar.gz bcm5719-llvm-f2730e2d227d0074822cc5bb9b1676107115bd58.zip | |
Remove threshold for lifetime marker insertion of named temporaries
Now that TailRecursionElimination has been fixed with r222354, the
threshold on size for lifetime marker insertion can be removed. This
only affects named temporary though, as the patch for unnamed temporaries
is still in progress.
llvm-svn: 222993
Diffstat (limited to 'clang/test/CodeGenCXX/nrvo.cpp')
| -rw-r--r-- | clang/test/CodeGenCXX/nrvo.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/clang/test/CodeGenCXX/nrvo.cpp b/clang/test/CodeGenCXX/nrvo.cpp index aad287dc320..bc184e5c5ee 100644 --- a/clang/test/CodeGenCXX/nrvo.cpp +++ b/clang/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 } |

