summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LowerInvoke
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-01-17 07:59:14 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-01-17 07:59:14 +0000
commit83b3d8267225d585678d5d3af9bba5735f4b415d (patch)
tree9d6c2ad7bfd568186e83a39e6f03e1c0bf415715 /llvm/test/Transforms/LowerInvoke
parent100602d7561ca5e245db6194bddae86357d203d4 (diff)
downloadbcm5719-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')
-rw-r--r--llvm/test/Transforms/LowerInvoke/.cvsignore3
-rw-r--r--llvm/test/Transforms/LowerInvoke/2003-12-10-Crash.llx24
-rw-r--r--llvm/test/Transforms/LowerInvoke/2004-02-29-PHICrash.llx16
-rw-r--r--llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHI.ll20
-rw-r--r--llvm/test/Transforms/LowerInvoke/2005-08-03-InvokeWithPHIUse.ll16
-rw-r--r--llvm/test/Transforms/LowerInvoke/basictest.ll28
-rw-r--r--llvm/test/Transforms/LowerInvoke/dg.exp3
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
OpenPOWER on IntegriCloud