diff options
author | Chris Lattner <sabre@nondot.org> | 2010-11-30 00:43:16 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-11-30 00:43:16 +0000 |
commit | 13815d9d3eec3d0ef2fc2f8a09e8ca8a9fa2654a (patch) | |
tree | b0215137792fcc4e92a136ba2c22577649c851ec /test/Transforms/DeadStoreElimination | |
parent | 647fea57fd56b7c0e24f98e01f2a70fd265cc461 (diff) | |
download | llvm-13815d9d3eec3d0ef2fc2f8a09e8ca8a9fa2654a.tar.gz llvm-13815d9d3eec3d0ef2fc2f8a09e8ca8a9fa2654a.tar.bz2 llvm-13815d9d3eec3d0ef2fc2f8a09e8ca8a9fa2654a.tar.xz |
enhance basicaa to return "Mod" for a memcpy call when the
queried location doesn't overlap the source, and add a testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120370 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/DeadStoreElimination')
-rw-r--r-- | test/Transforms/DeadStoreElimination/simple.ll | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/test/Transforms/DeadStoreElimination/simple.ll b/test/Transforms/DeadStoreElimination/simple.ll index c426c0a08b..3237ae2d4f 100644 --- a/test/Transforms/DeadStoreElimination/simple.ll +++ b/test/Transforms/DeadStoreElimination/simple.ll @@ -55,16 +55,27 @@ define void @test5(i32* %Q) { ; CHECK-NEXT: ret void } -declare void @llvm.memset.i32(i8*, i8, i32, i32) +declare void @llvm.memset.i64(i8*, i8, i64, i32) +declare void @llvm.memcpy.i64(i8*, i8*, i64, i32) ; Should delete store of 10 even though memset is a may-store to P (P and Q may ; alias). define void @test6(i32 *%p, i8 *%q) { store i32 10, i32* %p, align 4 ;; dead. - call void @llvm.memset.i32(i8* %q, i8 42, i32 900, i32 1) + call void @llvm.memset.i64(i8* %q, i8 42, i64 900, i32 1) store i32 30, i32* %p, align 4 ret void ; CHECK: @test6 ; CHECK-NEXT: call void @llvm.memset } +; Should delete store of 10 even though memcpy is a may-store to P (P and Q may +; alias). +define void @test7(i32 *%p, i8 *%q, i8* noalias %r) { + store i32 10, i32* %p, align 4 ;; dead. + call void @llvm.memcpy.i64(i8* %q, i8* %r, i64 900, i32 1) + store i32 30, i32* %p, align 4 + ret void +; CHECK: @test7 +; CHECK-NEXT: call void @llvm.memcpy +} |