From 600e9deacfa86a827d7cba4494c55ca6909e045f Mon Sep 17 00:00:00 2001 From: Erik Pilkington Date: Wed, 30 Jan 2019 20:34:35 +0000 Subject: Add a 'dynamic' parameter to the objectsize intrinsic This is meant to be used with clang's __builtin_dynamic_object_size. When 'true' is passed to this parameter, the intrinsic has the potential to be folded into instructions that will be evaluated at run time. When 'false', the objectsize intrinsic behaviour is unchanged. rdar://32212419 Differential revision: https://reviews.llvm.org/D56761 llvm-svn: 352664 --- llvm/test/Transforms/CodeGenPrepare/basic.ll | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'llvm/test/Transforms/CodeGenPrepare/basic.ll') diff --git a/llvm/test/Transforms/CodeGenPrepare/basic.ll b/llvm/test/Transforms/CodeGenPrepare/basic.ll index 768209abcdf..1a58d61b6e9 100644 --- a/llvm/test/Transforms/CodeGenPrepare/basic.ll +++ b/llvm/test/Transforms/CodeGenPrepare/basic.ll @@ -9,7 +9,7 @@ target triple = "x86_64-apple-darwin10.0.0" ; rdar://8785296 define i32 @test1(i8* %ptr) nounwind ssp noredzone align 2 { entry: - %0 = tail call i64 @llvm.objectsize.i64(i8* %ptr, i1 false, i1 false) + %0 = tail call i64 @llvm.objectsize.i64(i8* %ptr, i1 false, i1 false, i1 false) %1 = icmp ugt i64 %0, 3 br i1 %1, label %T, label %trap @@ -29,7 +29,7 @@ T: define i64 @test_objectsize_null_flag(i8* %ptr) { entry: ; CHECK: ret i64 -1 - %0 = tail call i64 @llvm.objectsize.i64(i8* null, i1 false, i1 true) + %0 = tail call i64 @llvm.objectsize.i64(i8* null, i1 false, i1 true, i1 false) ret i64 %0 } @@ -37,7 +37,7 @@ entry: define i64 @test_objectsize_null_flag_min(i8* %ptr) { entry: ; CHECK: ret i64 0 - %0 = tail call i64 @llvm.objectsize.i64(i8* null, i1 true, i1 true) + %0 = tail call i64 @llvm.objectsize.i64(i8* null, i1 true, i1 true, i1 false) ret i64 %0 } @@ -48,7 +48,7 @@ define i64 @test_objectsize_null_flag_noas0() { entry: ; CHECK: ret i64 -1 %0 = tail call i64 @llvm.objectsize.i64.p1i8(i8 addrspace(1)* null, i1 false, - i1 true) + i1 true, i1 false) ret i64 %0 } @@ -57,7 +57,7 @@ define i64 @test_objectsize_null_flag_min_noas0() { entry: ; CHECK: ret i64 0 %0 = tail call i64 @llvm.objectsize.i64.p1i8(i8 addrspace(1)* null, i1 true, - i1 true) + i1 true, i1 false) ret i64 %0 } @@ -66,7 +66,7 @@ define i64 @test_objectsize_null_known_flag_noas0() { entry: ; CHECK: ret i64 -1 %0 = tail call i64 @llvm.objectsize.i64.p1i8(i8 addrspace(1)* null, i1 false, - i1 false) + i1 false, i1 false) ret i64 %0 } @@ -75,12 +75,12 @@ define i64 @test_objectsize_null_known_flag_min_noas0() { entry: ; CHECK: ret i64 0 %0 = tail call i64 @llvm.objectsize.i64.p1i8(i8 addrspace(1)* null, i1 true, - i1 false) + i1 false, i1 false) ret i64 %0 } -declare i64 @llvm.objectsize.i64(i8*, i1, i1) nounwind readonly -declare i64 @llvm.objectsize.i64.p1i8(i8 addrspace(1)*, i1, i1) nounwind readonly +declare i64 @llvm.objectsize.i64(i8*, i1, i1, i1) nounwind readonly +declare i64 @llvm.objectsize.i64.p1i8(i8 addrspace(1)*, i1, i1, i1) nounwind readonly declare void @llvm.trap() nounwind -- cgit v1.2.3