diff options
| author | Reid Spencer <rspencer@reidspencer.com> | 2007-01-17 07:59:14 +0000 |
|---|---|---|
| committer | Reid Spencer <rspencer@reidspencer.com> | 2007-01-17 07:59:14 +0000 |
| commit | 83b3d8267225d585678d5d3af9bba5735f4b415d (patch) | |
| tree | 9d6c2ad7bfd568186e83a39e6f03e1c0bf415715 /llvm/test/Transforms/LowerInvoke | |
| parent | 100602d7561ca5e245db6194bddae86357d203d4 (diff) | |
| download | bcm5719-llvm-83b3d8267225d585678d5d3af9bba5735f4b415d.tar.gz bcm5719-llvm-83b3d8267225d585678d5d3af9bba5735f4b415d.zip | |
Regression is gone, don't try to find it on clean target.
llvm-svn: 33296
Diffstat (limited to 'llvm/test/Transforms/LowerInvoke')
7 files changed, 110 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LowerInvoke/.cvsignore b/llvm/test/Transforms/LowerInvoke/.cvsignore new file mode 100644 index 00000000000..7f2443f2f31 --- /dev/null +++ b/llvm/test/Transforms/LowerInvoke/.cvsignore @@ -0,0 +1,3 @@ +Output +*.log +*.sum diff --git a/llvm/test/Transforms/LowerInvoke/2003-12-10-Crash.llx b/llvm/test/Transforms/LowerInvoke/2003-12-10-Crash.llx new file mode 100644 index 00000000000..495099ae944 --- /dev/null +++ b/llvm/test/Transforms/LowerInvoke/2003-12-10-Crash.llx @@ -0,0 +1,24 @@ +; This testcase was reduced from Shootout-C++/reversefile.cpp by bugpoint + +; RUN: llvm-upgrade < %s | llvm-as | opt -lowerinvoke -disable-output + +declare void %baz() + +declare void %bar() + +void %foo() { +then: ; preds = %entry + invoke void %baz( ) + to label %invoke_cont.0 except label %try_catch + +invoke_cont.0: ; preds = %then + invoke void %bar( ) + to label %try_exit except label %try_catch + +try_catch: ; preds = %then, %invoke_cont.0 + %__tmp.0 = phi int* [ null, %invoke_cont.0 ], [ null, %then ] + ret void + +try_exit: ; preds = %invoke_cont.0 + ret void +} diff --git a/llvm/test/Transforms/LowerInvoke/2004-02-29-PHICrash.llx b/llvm/test/Transforms/LowerInvoke/2004-02-29-PHICrash.llx new file mode 100644 index 00000000000..90182574e0b --- /dev/null +++ b/llvm/test/Transforms/LowerInvoke/2004-02-29-PHICrash.llx @@ -0,0 +1,16 @@ +; RUN: llvm-upgrade < %s | llvm-as | opt -lowerinvoke -enable-correct-eh-support -disable-output + +void %_ZNKSt11__use_cacheISt16__numpunct_cacheIcEEclERKSt6locale() { +entry: + br bool false, label %then, label %UnifiedReturnBlock + +then: ; preds = %entry + invoke void %_Znwj( ) + to label %UnifiedReturnBlock unwind label %UnifiedReturnBlock + +UnifiedReturnBlock: ; preds = %entry, %then, %then + %UnifiedRetVal = phi int* [ null, %entry ], [ null, %then ], [ null, %then ] + ret void +} + +declare void %_Znwj() diff --git a/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHI.ll b/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHI.ll new file mode 100644 index 00000000000..51f3fb2a029 --- /dev/null +++ b/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHI.ll @@ -0,0 +1,20 @@ +; RUN: llvm-upgrade < %s | llvm-as | opt -lowerinvoke -enable-correct-eh-support -disable-output + +implementation ; Functions: + +declare void %ll_listnext__listiterPtr() + +void %WorkTask.fn() { +block0: + invoke void %ll_listnext__listiterPtr( ) + to label %block9 unwind label %block8_exception_handling + +block8_exception_handling: ; preds = %block0 + ret void + +block9: ; preds = %block0 + %w_2690 = phi { int, int }* [ null, %block0 ] ; <{ int, int }*> [#uses=1] + %tmp.129 = getelementptr { int, int }* %w_2690, int 0, uint 1 ; <int*> [#uses=1] + %v2769 = load int* %tmp.129 ; <int> [#uses=0] + ret void +} diff --git a/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHIUse.ll b/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHIUse.ll new file mode 100644 index 00000000000..636625743a5 --- /dev/null +++ b/llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHIUse.ll @@ -0,0 +1,16 @@ +; RUN: llvm-upgrade < %s | llvm-as | opt -lowerinvoke -enable-correct-eh-support -disable-output + +declare fastcc int %ll_listnext__listiterPtr() + +fastcc int %WorkTask.fn() { +block0: + %v2679 = invoke fastcc int %ll_listnext__listiterPtr( ) + to label %block9 unwind label %block8_exception_handling ; <int> [#uses=1] + +block8_exception_handling: ; preds = %block0 + ret int 0 + +block9: ; preds = %block0 + %i_2689 = phi int [ %v2679, %block0 ] ; <int> [#uses=0] + ret int %i_2689 +} diff --git a/llvm/test/Transforms/LowerInvoke/basictest.ll b/llvm/test/Transforms/LowerInvoke/basictest.ll new file mode 100644 index 00000000000..4150ad3efbd --- /dev/null +++ b/llvm/test/Transforms/LowerInvoke/basictest.ll @@ -0,0 +1,28 @@ +; RUN: llvm-upgrade < %s | llvm-as | opt -lowerinvoke -disable-output && +; RUN: llvm-upgrade < %s | llvm-as | opt -lowerinvoke -disable-output -enable-correct-eh-support + +implementation + +int %foo() { + invoke int %foo() to label %Ok unwind label %Crap +Ok: + invoke int %foo() to label %Ok2 unwind label %Crap +Ok2: + ret int 2 +Crap: + ret int 1 +} + +int %bar(int %blah) { + br label %doit +doit: + ;; Value live across an unwind edge. + %B2 = add int %blah, 1 + invoke int %foo() to label %Ok unwind label %Crap +Ok: + invoke int %foo() to label %Ok2 unwind label %Crap +Ok2: + ret int 2 +Crap: + ret int %B2 +} diff --git a/llvm/test/Transforms/LowerInvoke/dg.exp b/llvm/test/Transforms/LowerInvoke/dg.exp new file mode 100644 index 00000000000..142de8a6c8f --- /dev/null +++ b/llvm/test/Transforms/LowerInvoke/dg.exp @@ -0,0 +1,3 @@ +load_lib llvm-dg.exp + +llvm-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,llx,c,cpp,tr}]] $objdir $srcdir $subdir $target_triplet $llvmgcc $llvmgxx $prcontext $llvmgcc_version |

