diff options
author | Devang Patel <dpatel@apple.com> | 2007-09-24 20:02:42 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2007-09-24 20:02:42 +0000 |
commit | 128459b85b59530e511ea17b3cc3a5b8ee3e8bd4 (patch) | |
tree | 2f0e73eb6e409f6b9ea41c76a1d3cc6615b6e5b7 /test/Transforms/LICM | |
parent | d81ccc2806b2c8a498d16f1a547d0cc9c00d602d (diff) | |
download | external_llvm-128459b85b59530e511ea17b3cc3a5b8ee3e8bd4.zip external_llvm-128459b85b59530e511ea17b3cc3a5b8ee3e8bd4.tar.gz external_llvm-128459b85b59530e511ea17b3cc3a5b8ee3e8bd4.tar.bz2 |
Do not promote null values because it may be unsafe to do so.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42270 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LICM')
-rw-r--r-- | test/Transforms/LICM/2007-09-24-PromoteNullValue.ll | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/test/Transforms/LICM/2007-09-24-PromoteNullValue.ll b/test/Transforms/LICM/2007-09-24-PromoteNullValue.ll new file mode 100644 index 0000000..f9f45f3 --- /dev/null +++ b/test/Transforms/LICM/2007-09-24-PromoteNullValue.ll @@ -0,0 +1,46 @@ +; Do not promote null value because it may be unsafe to do so. +; RUN: llvm-as < %s | opt -licm | llvm-dis | not grep promoted + +define i32 @f(i32 %foo, i32 %bar, i32 %com) { +entry: + %tmp2 = icmp eq i32 %foo, 0 ; <i1> [#uses=1] + br i1 %tmp2, label %cond_next, label %cond_true + +cond_true: ; preds = %entry + br label %return + +cond_next: ; preds = %entry + br label %bb + +bb: ; preds = %bb15, %cond_next + switch i32 %bar, label %bb15 [ + i32 1, label %bb6 + ] + +bb6: ; preds = %bb + %tmp8 = icmp eq i32 %com, 0 ; <i1> [#uses=1] + br i1 %tmp8, label %cond_next14, label %cond_true11 + +cond_true11: ; preds = %bb6 + br label %return + +cond_next14: ; preds = %bb6 + store i8 0, i8* null + br label %bb15 + +bb15: ; preds = %cond_next14, %bb + br label %bb + +return: ; preds = %cond_true11, %cond_true + %storemerge = phi i32 [ 0, %cond_true ], [ undef, %cond_true11 ] ; <i32> [#uses=1] + ret i32 %storemerge +} + +define i32 @kdMain() { +entry: + %tmp1 = call i32 @f( i32 0, i32 1, i32 1 ) ; <i32> [#uses=0] + call void @exit( i32 0 ) + unreachable +} + +declare void @exit(i32) |