diff options
author | Duncan Sands <baldrick@free.fr> | 2009-10-16 12:18:23 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2009-10-16 12:18:23 +0000 |
commit | 0f2bd97434d70480ebf9723675a8b5a784f2d584 (patch) | |
tree | d22d9da5e0366a84e42d0b096a19730ca304baa8 /test/Transforms/GVN/calls-readonly.ll | |
parent | 6f892bbaf9456e202870576e80f7af9231e1e4d8 (diff) | |
download | external_llvm-0f2bd97434d70480ebf9723675a8b5a784f2d584.zip external_llvm-0f2bd97434d70480ebf9723675a8b5a784f2d584.tar.gz external_llvm-0f2bd97434d70480ebf9723675a8b5a784f2d584.tar.bz2 |
Check that GVN performs this transform even if the calls
themselves are not marked readonly, but only the called
functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84253 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/GVN/calls-readonly.ll')
-rw-r--r-- | test/Transforms/GVN/calls-readonly.ll | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/test/Transforms/GVN/calls-readonly.ll b/test/Transforms/GVN/calls-readonly.ll index 28b5ff0..97ec915 100644 --- a/test/Transforms/GVN/calls-readonly.ll +++ b/test/Transforms/GVN/calls-readonly.ll @@ -6,22 +6,22 @@ target triple = "i386-apple-darwin7" define i8* @test(i8* %P, i8* %Q, i32 %x, i32 %y) nounwind readonly { entry: - %0 = tail call i32 @strlen(i8* %P) nounwind readonly ; <i32> [#uses=2] - %1 = icmp eq i32 %0, 0 ; <i1> [#uses=1] - br i1 %1, label %bb, label %bb1 + %0 = tail call i32 @strlen(i8* %P) ; <i32> [#uses=2] + %1 = icmp eq i32 %0, 0 ; <i1> [#uses=1] + br i1 %1, label %bb, label %bb1 -bb: ; preds = %entry - %2 = sdiv i32 %x, %y ; <i32> [#uses=1] - br label %bb1 +bb: ; preds = %entry + %2 = sdiv i32 %x, %y ; <i32> [#uses=1] + br label %bb1 -bb1: ; preds = %bb, %entry - %x_addr.0 = phi i32 [ %2, %bb ], [ %x, %entry ] ; <i32> [#uses=1] - %3 = tail call i8* @strchr(i8* %Q, i32 97) nounwind readonly ; <i8*> [#uses=1] - %4 = tail call i32 @strlen(i8* %P) nounwind readonly ; <i32> [#uses=1] - %5 = add i32 %x_addr.0, %0 ; <i32> [#uses=1] - %.sum = sub i32 %5, %4 ; <i32> [#uses=1] - %6 = getelementptr i8* %3, i32 %.sum ; <i8*> [#uses=1] - ret i8* %6 +bb1: ; preds = %bb, %entry + %x_addr.0 = phi i32 [ %2, %bb ], [ %x, %entry ] ; <i32> [#uses=1] + %3 = tail call i8* @strchr(i8* %Q, i32 97) ; <i8*> [#uses=1] + %4 = tail call i32 @strlen(i8* %P) ; <i32> [#uses=1] + %5 = add i32 %x_addr.0, %0 ; <i32> [#uses=1] + %.sum = sub i32 %5, %4 ; <i32> [#uses=1] + %6 = getelementptr i8* %3, i32 %.sum ; <i8*> [#uses=1] + ret i8* %6 } declare i32 @strlen(i8*) nounwind readonly |