[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