From 7756e346e662b7d64764762f74ed05ca035676c1 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Mon, 1 Oct 2007 18:12:58 +0000 Subject: Relax unsafe use check. If there is one unconditional use inside the loop then it is safe to promote value even if there is another conditional use inside the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42493 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/LICM/2007-10-01-PromoteSafeValue.ll | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/Transforms/LICM/2007-10-01-PromoteSafeValue.ll (limited to 'test/Transforms/LICM') diff --git a/test/Transforms/LICM/2007-10-01-PromoteSafeValue.ll b/test/Transforms/LICM/2007-10-01-PromoteSafeValue.ll new file mode 100644 index 0000000..7359cc0 --- /dev/null +++ b/test/Transforms/LICM/2007-10-01-PromoteSafeValue.ll @@ -0,0 +1,21 @@ +; RUN: llvm-as < %s | opt -licm | llvm-dis | grep promoted +; Promote value if at least one use is safe + + +define i32 @f2(i32* %p, i8* %q) { +entry: + br label %loop.head + +loop.head: ; preds = %cond.true, %entry + store i32 20, i32* %p + %tmp3.i = icmp eq i8* null, %q ; [#uses=1] + br i1 %tmp3.i, label %exit, label %cond.true + +cond.true: ; preds = %loop.head + store i32 40, i32* %p + br label %loop.head + +exit: ; preds = %loop.head + ret i32 0 +} + -- cgit v1.1