summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2011-12-05 22:37:00 +0000
committerChad Rosier <mcrosier@apple.com>2011-12-05 22:37:00 +0000
commit19446a07a71f44bb073634772bb36ff1ffa1ed67 (patch)
treede286e05924d4cdcb7f62b1aebe3534f64ecd6dc /llvm/test/Transforms
parent734410916a6d83c70dffcecae1686a15f8a50d71 (diff)
downloadbcm5719-llvm-19446a07a71f44bb073634772bb36ff1ffa1ed67.tar.gz
bcm5719-llvm-19446a07a71f44bb073634772bb36ff1ffa1ed67.zip
Make the MemCpyOptimizer a bit more aggressive. I can't think of a scenerio
where this would be bad as the backend shouldn't have a problem inlining small memcpys. rdar://10510150 llvm-svn: 145865
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/MemCpyOpt/form-memset.ll18
1 files changed, 17 insertions, 1 deletions
diff --git a/llvm/test/Transforms/MemCpyOpt/form-memset.ll b/llvm/test/Transforms/MemCpyOpt/form-memset.ll
index 1ac97e9e6b9..e5ace332702 100644
--- a/llvm/test/Transforms/MemCpyOpt/form-memset.ll
+++ b/llvm/test/Transforms/MemCpyOpt/form-memset.ll
@@ -57,8 +57,8 @@ entry:
declare i32 @bar(...)
+%struct.MV = type { i16, i16 }
- %struct.MV = type { i16, i16 }
define void @test2() nounwind {
entry:
@@ -220,3 +220,19 @@ entry:
; CHECK: call void @llvm.memset.p0i8.i64(i8* %2, i8 0, i64 24, i32 1, i1 false)
}
+; More aggressive heuristic
+; rdar://9892684
+define void @test7(i32* nocapture %c) nounwind optsize {
+ store i32 -1, i32* %c, align 4
+ %1 = getelementptr inbounds i32* %c, i32 1
+ store i32 -1, i32* %1, align 4
+ %2 = getelementptr inbounds i32* %c, i32 2
+ store i32 -1, i32* %2, align 4
+ %3 = getelementptr inbounds i32* %c, i32 3
+ store i32 -1, i32* %3, align 4
+ %4 = getelementptr inbounds i32* %c, i32 4
+ store i32 -1, i32* %4, align 4
+; CHECK: @test7
+; CHECK: call void @llvm.memset.p0i8.i64(i8* %5, i8 -1, i64 20, i32 4, i1 false)
+ ret void
+}
OpenPOWER on IntegriCloud