New files, testing for a crash in ADCE compiling QT and a missed optimization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20226 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-02-17 19:27:44 +00:00
parent 2352fec205
commit ae02b723bf
2 changed files with 64 additions and 0 deletions

View File

@ -0,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
}

View File

@ -0,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
}