summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2009-10-16 12:18:23 +0000
committerDuncan Sands <baldrick@free.fr>2009-10-16 12:18:23 +0000
commit0f2bd97434d70480ebf9723675a8b5a784f2d584 (patch)
treed22d9da5e0366a84e42d0b096a19730ca304baa8 /test
parent6f892bbaf9456e202870576e80f7af9231e1e4d8 (diff)
downloadllvm-0f2bd97434d70480ebf9723675a8b5a784f2d584.tar.gz
llvm-0f2bd97434d70480ebf9723675a8b5a784f2d584.tar.bz2
llvm-0f2bd97434d70480ebf9723675a8b5a784f2d584.tar.xz
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')
-rw-r--r--test/Transforms/GVN/calls-readonly.ll28
1 files changed, 14 insertions, 14 deletions
diff --git a/test/Transforms/GVN/calls-readonly.ll b/test/Transforms/GVN/calls-readonly.ll
index 28b5ff09a7..97ec91512e 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