summaryrefslogtreecommitdiff
path: root/test/Transforms/SROA
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2012-10-05 01:29:09 +0000
committerChandler Carruth <chandlerc@gmail.com>2012-10-05 01:29:09 +0000
commitfca3f4021ae9a561edb6d2fcb4a282b6f25ab144 (patch)
tree76579662ad00a378c1ea6f564bc2239ac7afa0ef /test/Transforms/SROA
parent0e9da58af0e480af2fa87f8a61aa28b465fec280 (diff)
downloadllvm-fca3f4021ae9a561edb6d2fcb4a282b6f25ab144.tar.gz
llvm-fca3f4021ae9a561edb6d2fcb4a282b6f25ab144.tar.bz2
llvm-fca3f4021ae9a561edb6d2fcb4a282b6f25ab144.tar.xz
Teach the new SROA a new trick. Now we zap any memcpy or memmoves which
are in fact identity operations. We detect these and kill their partitions so that even splitting is unaffected by them. This is particularly important because Clang relies on emitting identity memcpy operations for struct copies, and these fold away to constants very often after inlining. Fixes the last big performance FIXME I have on my plate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165285 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/SROA')
-rw-r--r--test/Transforms/SROA/basictest.ll6
1 files changed, 2 insertions, 4 deletions
diff --git a/test/Transforms/SROA/basictest.ll b/test/Transforms/SROA/basictest.ll
index a58eb4786c..3089736de8 100644
--- a/test/Transforms/SROA/basictest.ll
+++ b/test/Transforms/SROA/basictest.ll
@@ -862,8 +862,7 @@ define void @PR13916.1() {
; Ensure that we handle overlapping memcpy intrinsics correctly, especially in
; the case where there is a directly identical value for both source and dest.
; CHECK: @PR13916.1
-; FIXME: We shouldn't leave this alloca around.
-; CHECK: alloca
+; CHECK-NOT: alloca
; CHECK: ret void
entry:
@@ -878,8 +877,7 @@ define void @PR13916.2() {
; different pointer value chains, but during rewriting we coalesce them into the
; same value.
; CHECK: @PR13916.2
-; FIXME: We shouldn't leave this alloca around.
-; CHECK: alloca
+; CHECK-NOT: alloca
; CHECK: ret void
entry: