[llvm-commits] CVS: llvm/test/Regression/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll dead-phi-edge.ll
Chris Lattner
lattner at cs.uiuc.edu
Thu Feb 17 11:28:00 PST 2005
Changes in directory llvm/test/Regression/Transforms/ADCE:
2005-02-17-PHI-Invoke-Crash.ll added (r1.1)
dead-phi-edge.ll added (r1.1)
---
Log message:
New files, testing for a crash in ADCE compiling QT and a missed optimization.
---
Diffs of the changes: (+64 -0)
2005-02-17-PHI-Invoke-Crash.ll | 49 +++++++++++++++++++++++++++++++++++++++++
dead-phi-edge.ll | 15 ++++++++++++
2 files changed, 64 insertions(+)
Index: llvm/test/Regression/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll
diff -c /dev/null llvm/test/Regression/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll:1.1
*** /dev/null Thu Feb 17 13:27:54 2005
--- llvm/test/Regression/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll Thu Feb 17 13:27:44 2005
***************
*** 0 ****
--- 1,49 ----
+ ; RUN: llvm-as < %s | opt -adce -disable-output
+
+ implementation ; Functions:
+
+ declare { }* %llvm.dbg.region.end({ }*)
+
+ declare void %strlen()
+
+ declare void %_ZN10QByteArray6resizeEi()
+
+ declare void %q_atomic_decrement()
+
+ void %_ZNK10QByteArray13leftJustifiedEicb() {
+ entry:
+ invoke void %strlen( )
+ to label %tmp.3.i.noexc unwind label %invoke_catch.0
+
+ tmp.3.i.noexc: ; preds = %entry
+ br bool false, label %then.0, label %else.0
+
+ invoke_catch.0: ; preds = %entry
+ invoke void %q_atomic_decrement( )
+ to label %tmp.1.i.i183.noexc unwind label %terminate
+
+ tmp.1.i.i183.noexc: ; preds = %invoke_catch.0
+ unwind
+
+ then.0: ; preds = %tmp.3.i.noexc
+ invoke void %_ZN10QByteArray6resizeEi( )
+ to label %invoke_cont.1 unwind label %invoke_catch.1
+
+ invoke_catch.1: ; preds = %then.0
+ invoke void %q_atomic_decrement( )
+ to label %tmp.1.i.i162.noexc unwind label %terminate
+
+ tmp.1.i.i162.noexc: ; preds = %invoke_catch.1
+ ret void
+
+ invoke_cont.1: ; preds = %then.0
+ ret void
+
+ else.0: ; preds = %tmp.3.i.noexc
+ ret void
+
+ terminate: ; preds = %invoke_catch.1, %invoke_catch.0
+ %dbg.0.1 = phi { }* [ null, %invoke_catch.1 ], [ null, %invoke_catch.0 ] ; <{ }*> [#uses=1]
+ %dbg.tmp.43 = call { }* %llvm.dbg.region.end( { }* %dbg.0.1 ) ; <{ }*> [#uses=0]
+ unreachable
+ }
Index: llvm/test/Regression/Transforms/ADCE/dead-phi-edge.ll
diff -c /dev/null llvm/test/Regression/Transforms/ADCE/dead-phi-edge.ll:1.1
*** /dev/null Thu Feb 17 13:28:00 2005
--- llvm/test/Regression/Transforms/ADCE/dead-phi-edge.ll Thu Feb 17 13:27:44 2005
***************
*** 0 ****
--- 1,15 ----
+ ; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep call
+
+ ; The call is not live just because the PHI uses the call retval!
+
+ int %test(int %X) {
+ br label %Done
+
+ DeadBlock:
+ %Y = call int %test(int 0)
+ br label %Done
+
+ Done:
+ %Z = phi int [%X, %0], [%Y, %DeadBlock]
+ ret int %Z
+ }
More information about the llvm-commits
mailing list