diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2009-11-28 21:27:49 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2009-11-28 21:27:49 +0000 |
commit | d801c10de6cd1760f0994452c0e78156782d9fca (patch) | |
tree | 61376d8c37a73473ed3f5ee5124316ffe845870a /test | |
parent | 0c264b16b0e8a373888d1a5cfeb90af4fda3cd14 (diff) | |
download | external_llvm-d801c10de6cd1760f0994452c0e78156782d9fca.zip external_llvm-d801c10de6cd1760f0994452c0e78156782d9fca.tar.gz external_llvm-d801c10de6cd1760f0994452c0e78156782d9fca.tar.bz2 |
Teach memdep to look for memory use intrinsics during dependency queries. Fixes
PR5574.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90045 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Transforms/DeadStoreElimination/lifetime.ll | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/test/Transforms/DeadStoreElimination/lifetime.ll b/test/Transforms/DeadStoreElimination/lifetime.ll index b2da790..fd127d9 100644 --- a/test/Transforms/DeadStoreElimination/lifetime.ll +++ b/test/Transforms/DeadStoreElimination/lifetime.ll @@ -1,6 +1,9 @@ ; RUN: opt -S -dse < %s | FileCheck %s -declare void @llvm.lifetime.end(i64, i8*) +target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128" + +declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind declare void @llvm.memset.i8(i8*, i8, i8, i32) define void @test1() { @@ -17,3 +20,18 @@ define void @test1() { ret void ; CHECK: ret void } + +define void @test2(i32* %P) { +; CHECK: test2 + %Q = getelementptr i32* %P, i32 1 + %R = bitcast i32* %Q to i8* + call void @llvm.lifetime.start(i64 4, i8* %R) +; CHECK: lifetime.start + store i32 0, i32* %Q ;; This store is dead. +; CHECK-NOT: store + call void @llvm.lifetime.end(i64 4, i8* %R) +; CHECK: lifetime.end + ret void +} + + |