From 935903191f0f1b62e78d68ec051be594fc4b4ce7 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Wed, 31 Aug 2011 21:39:05 +0000 Subject: Update more tests to the new EH scheme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138903 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/2007-05-07-InvokeSRet.ll | 4 +++ test/CodeGen/X86/2008-04-17-CoalescerBug.ll | 6 ++++ test/CodeGen/X86/2008-05-28-LocalRegAllocBug.ll | 6 +++- test/CodeGen/X86/2009-03-13-PHIElimBug.ll | 4 +++ test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll | 4 +++ test/CodeGen/X86/2009-09-10-LoadFoldingBug.ll | 4 +++ test/CodeGen/X86/2009-11-25-ImpDefBug.ll | 4 +++ test/CodeGen/X86/2010-04-06-SSEDomainFixCrash.ll | 4 +++ test/CodeGen/X86/asm-label2.ll | 4 +++ test/CodeGen/X86/fast-isel-cmp-branch.ll | 4 +++ test/CodeGen/X86/fast-isel-gep.ll | 3 ++ test/CodeGen/X86/personality.ll | 8 ++++- test/CodeGen/X86/pr3522.ll | 4 +++ test/CodeGen/X86/scev-interchange.ll | 44 ++++++++++++++++++++++++ test/CodeGen/X86/split-eh-lpad-edges.ll | 4 +++ 15 files changed, 105 insertions(+), 2 deletions(-) (limited to 'test/CodeGen') diff --git a/test/CodeGen/X86/2007-05-07-InvokeSRet.ll b/test/CodeGen/X86/2007-05-07-InvokeSRet.ll index 22e2750a50..deb39998a3 100644 --- a/test/CodeGen/X86/2007-05-07-InvokeSRet.ll +++ b/test/CodeGen/X86/2007-05-07-InvokeSRet.ll @@ -11,5 +11,9 @@ entry: to label %return unwind label %return return: ; preds = %entry, %entry + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup ret void } + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/2008-04-17-CoalescerBug.ll b/test/CodeGen/X86/2008-04-17-CoalescerBug.ll index 77720aa67d..859041eb81 100644 --- a/test/CodeGen/X86/2008-04-17-CoalescerBug.ll +++ b/test/CodeGen/X86/2008-04-17-CoalescerBug.ll @@ -151,8 +151,12 @@ bb7819: ; preds = %bb3314 bb7834: ; preds = %bb7806, %invcont5831 br label %bb3261 lpad: ; preds = %bb7806, %bb5968, %invcont5814, %bb440.i8663, %bb155.i8541, %bb5657, %bb3306 + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup ret void lpad8185: ; preds = %invcont5831 + %exn8185 = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup ret void } @@ -169,3 +173,5 @@ declare %struct.wxStringBase* @_ZN12wxStringBase6appendEmw(%struct.wxStringBase* declare %struct.wxStringBase* @_ZN12wxStringBaseaSEPKw(%struct.wxStringBase*, i32*) declare void @_ZN8wxString6FormatEPKwz(%struct.wxString* noalias sret , i32*, ...) + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/2008-05-28-LocalRegAllocBug.ll b/test/CodeGen/X86/2008-05-28-LocalRegAllocBug.ll index 94c95d40c6..0d11546889 100644 --- a/test/CodeGen/X86/2008-05-28-LocalRegAllocBug.ll +++ b/test/CodeGen/X86/2008-05-28-LocalRegAllocBug.ll @@ -23,8 +23,12 @@ tmp12.i.i.i.i.i.noexc65: ; preds = %bb37 unreachable lpad243: ; preds = %bb37 - %eh_ptr244 = call i8* @llvm.eh.exception( ) ; [#uses=1] + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup + %eh_ptr244 = extractvalue { i8*, i32 } %exn, 0 store i32 (...)** getelementptr ([5 x i32 (...)*]* @_ZTVN10Evaluation10GridOutputILi3EEE, i32 0, i32 2), i32 (...)*** null, align 8 %tmp133 = call i8* @__cxa_begin_catch( i8* %eh_ptr244 ) nounwind ; [#uses=0] unreachable } + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/2009-03-13-PHIElimBug.ll b/test/CodeGen/X86/2009-03-13-PHIElimBug.ll index 45fc26994c..e14c30a274 100644 --- a/test/CodeGen/X86/2009-03-13-PHIElimBug.ll +++ b/test/CodeGen/X86/2009-03-13-PHIElimBug.ll @@ -24,9 +24,13 @@ cont2: ; preds = %cont lpad: ; preds = %cont, %entry %y = phi i32 [ %a, %entry ], [ %aa, %cont ] ; [#uses=1] + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup ret i32 %y } ; CHECK: call{{.*}}f ; CHECK: movl %eax, %esi ; CHECK: call{{.*}}g + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll b/test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll index b13d33eb3f..f8c7a151b2 100644 --- a/test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll +++ b/test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll @@ -17,8 +17,12 @@ cont2: ; preds = %cont lpad: ; preds = %cont, %entry %v = phi i32 [ %x, %entry ], [ %a, %cont ] ; [#uses=1] + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup ret i32 %v } ; CHECK: lpad ; CHECK-NEXT: Ltmp + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/2009-09-10-LoadFoldingBug.ll b/test/CodeGen/X86/2009-09-10-LoadFoldingBug.ll index 7b5e871246..5483b73ecc 100644 --- a/test/CodeGen/X86/2009-09-10-LoadFoldingBug.ll +++ b/test/CodeGen/X86/2009-09-10-LoadFoldingBug.ll @@ -34,6 +34,8 @@ invcont2: ; preds = %invcont1 ret i32 0 lpad: ; preds = %invcont1, %invcont, %entry + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup %8 = call i32 @vm_deallocate(i32 undef, i64 0, i64 %0) ; [#uses=0] unreachable } @@ -45,3 +47,5 @@ declare i8* @pluginInstance(i8*, i32) declare zeroext i8 @invoke(i8*, i32, i8*, i64, i32, i64*, i32*) declare void @booleanAndDataReply(i32, i32, i32, i32, i64, i32) + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/2009-11-25-ImpDefBug.ll b/test/CodeGen/X86/2009-11-25-ImpDefBug.ll index 7606c0e1ac..396638fb1d 100644 --- a/test/CodeGen/X86/2009-11-25-ImpDefBug.ll +++ b/test/CodeGen/X86/2009-11-25-ImpDefBug.ll @@ -46,6 +46,8 @@ bb1.i5: ; preds = %bb.i1 lpad: ; preds = %bb1.i.fragment.cl, %bb1.i.fragment, %bb5 %.SV10.phi807 = phi i8* [ undef, %bb1.i.fragment.cl ], [ undef, %bb1.i.fragment ], [ undef, %bb5 ] ; [#uses=1] + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup %1 = load i8* %.SV10.phi807, align 8 ; [#uses=0] br i1 undef, label %meshBB81.bbcl.disp, label %bb13.fragment.bbcl.disp @@ -114,3 +116,5 @@ meshBB81.bbcl.disp: ; preds = %meshBB81.cl141, %me i8 51, label %meshBB81.cl141 ] } + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/2010-04-06-SSEDomainFixCrash.ll b/test/CodeGen/X86/2010-04-06-SSEDomainFixCrash.ll index ef1798d1ae..864ebf120f 100644 --- a/test/CodeGen/X86/2010-04-06-SSEDomainFixCrash.ll +++ b/test/CodeGen/X86/2010-04-06-SSEDomainFixCrash.ll @@ -60,5 +60,9 @@ bb92: ; preds = %entry unreachable lpad159: ; preds = %bb58 + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable } + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/asm-label2.ll b/test/CodeGen/X86/asm-label2.ll index 0b5de3403f..8715aa98ba 100644 --- a/test/CodeGen/X86/asm-label2.ll +++ b/test/CodeGen/X86/asm-label2.ll @@ -16,7 +16,11 @@ invoke.cont: ; preds = %entry ret void lpad: ; preds = %entry + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable } declare void @_zed() ssp align 2 + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/fast-isel-cmp-branch.ll b/test/CodeGen/X86/fast-isel-cmp-branch.ll index 12312e8a58..6e408f8966 100644 --- a/test/CodeGen/X86/fast-isel-cmp-branch.ll +++ b/test/CodeGen/X86/fast-isel-cmp-branch.ll @@ -26,5 +26,9 @@ true: return: ret void unw: + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable } + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/fast-isel-gep.ll b/test/CodeGen/X86/fast-isel-gep.ll index 05196a8aba..91d1f5d151 100644 --- a/test/CodeGen/X86/fast-isel-gep.ll +++ b/test/CodeGen/X86/fast-isel-gep.ll @@ -104,6 +104,8 @@ invoke.cont16: ; preds = %if.then14 unreachable lpad: ; preds = %if.end19, %if.then14, %if.end, %entry + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable } declare i8* @_ZNK18G__FastAllocString4dataEv() nounwind @@ -134,3 +136,4 @@ F: ret i32 4 } +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/personality.ll b/test/CodeGen/X86/personality.ll index d3d8e3f14a..635648dc1c 100644 --- a/test/CodeGen/X86/personality.ll +++ b/test/CodeGen/X86/personality.ll @@ -8,6 +8,8 @@ entry: to label %return unwind label %unwind unwind: ; preds = %entry + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup br i1 false, label %eh_then, label %cleanup20 eh_then: ; preds = %unwind @@ -15,7 +17,9 @@ eh_then: ; preds = %unwind to label %return unwind label %unwind10 unwind10: ; preds = %eh_then - %upgraded.eh_select13 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* null, i8* bitcast (void ()* @__gxx_personality_v0 to i8*), i32 1) + %exn10 = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + filter + %upgraded.eh_select13 = extractvalue { i8*, i32 } %exn10, 1 %upgraded.eh_select131 = sext i32 %upgraded.eh_select13 to i64 %tmp18 = icmp slt i64 %upgraded.eh_select131, 0 br i1 %tmp18, label %filter, label %cleanup20 @@ -39,6 +43,8 @@ declare void @__cxa_end_catch() declare i32 @llvm.eh.selector(i8*, i8*, ...) nounwind +declare i32 @__gxx_personality_v0(...) + ; X64: zPLR ; X64: .byte 155 ; X64-NEXT: .long ___gxx_personality_v0@GOTPCREL+4 diff --git a/test/CodeGen/X86/pr3522.ll b/test/CodeGen/X86/pr3522.ll index da1623721d..112253038b 100644 --- a/test/CodeGen/X86/pr3522.ll +++ b/test/CodeGen/X86/pr3522.ll @@ -21,6 +21,8 @@ return: ; preds = %lpad ret void lpad: ; preds = %entry + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup %2 = icmp eq i8 %1, 90 ; [#uses=1] br i1 %2, label %return, label %bb22 } @@ -28,3 +30,5 @@ lpad: ; preds = %entry declare void @__gnat_rcheck_12(i8*, i32) noreturn declare i32 @report__ident_int(i32) + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/scev-interchange.ll b/test/CodeGen/X86/scev-interchange.ll index 81c919f8df..71a4d21a9b 100644 --- a/test/CodeGen/X86/scev-interchange.ll +++ b/test/CodeGen/X86/scev-interchange.ll @@ -149,6 +149,8 @@ bb71.i: ; preds = %bb.i.i.i262.i, %bb66.i to label %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i.i unwind label %lpad.i.i.i.i.i.i ; [#uses=0] lpad.i.i.i.i.i.i: ; preds = %bb71.i + %exn.i.i.i.i.i.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable _ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i.i: ; preds = %bb71.i @@ -162,6 +164,8 @@ _ZNSt6vectorIjSaIjEED1Ev.exit.i.i: ; preds = %_ZNSt12_Vector_baseIjSaIjEEC2EmRK to label %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i12.i.i unwind label %lpad.i.i.i.i8.i.i ; [#uses=0] lpad.i.i.i.i8.i.i: ; preds = %_ZNSt6vectorIjSaIjEED1Ev.exit.i.i + %exn.i.i.i.i8.i.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup invoke void @_Unwind_Resume(i8* undef) to label %.noexc.i9.i.i unwind label %lpad.i19.i.i @@ -179,6 +183,8 @@ bb50.i.i.i: ; preds = %bb.i.i.i.i.i.i.i.i.i.i, %_ZNSt12_Vector_baseIjSaIjEEC2Em to label %bb83.i unwind label %lpad188.i lpad.i19.i.i: ; preds = %lpad.i.i.i.i8.i.i + %exn.i19.i.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable bb83.i: ; preds = %bb50.i.i.i @@ -192,6 +198,8 @@ invcont84.i: ; preds = %bb83.i to label %_ZNSt12_Vector_baseIjSaIjEEC2EmRKS0_.exit.i.i.i.i unwind label %lpad.i.i.i.i315.i ; [#uses=0] lpad.i.i.i.i315.i: ; preds = %invcont84.i + %exn.i.i.i.i315.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup invoke void @_Unwind_Resume(i8* undef) to label %.noexc.i316.i unwind label %lpad.i352.i @@ -209,6 +217,8 @@ bb50.i.i: ; preds = %bb.i.i.i.i.i.i.i.i320.i, %_ZNSt12_Vector_baseIjSaIjEEC2EmR to label %invcont86.i unwind label %lpad200.i lpad.i352.i: ; preds = %lpad.i.i.i.i315.i + %exn.i352.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable invcont86.i: ; preds = %bb50.i.i @@ -232,6 +242,8 @@ invcont101.i: ; preds = %bb100.i to label %_ZN10FullMatrixIdEC1Ejj.exit.i.i unwind label %lpad.i.i.i.i.i lpad.i.i.i.i.i: ; preds = %invcont101.i + %exn.i.i.i.i.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable _ZN10FullMatrixIdEC1Ejj.exit.i.i: ; preds = %invcont101.i @@ -239,6 +251,8 @@ _ZN10FullMatrixIdEC1Ejj.exit.i.i: ; preds = %invcont101.i to label %_ZN10FullMatrixIdEC1Ejj.exit28.i.i unwind label %lpad.i.i.i27.i.i lpad.i.i.i27.i.i: ; preds = %_ZN10FullMatrixIdEC1Ejj.exit.i.i + %exn.i.i.i27.i.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup invoke void @_Unwind_Resume(i8* undef) to label %.noexc.i.i unwind label %lpad.i.i @@ -258,6 +272,8 @@ bb.i.i.i297.i.i: ; preds = %bb58.i.i unreachable lpad.i.i: ; preds = %lpad.i.i.i27.i.i + %exn.i.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable bb.i191.i: ; preds = %.noexc232.i, %bb58.i.i @@ -296,43 +312,71 @@ bb29.loopexit.i.i: ; preds = %.noexc232.i br label %bb9.i216.i lpad.i: ; preds = %entry + %exn.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad120.i: ; preds = %invcont.i + %exn120.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad124.i: ; preds = %invcont1.i + %exn124.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad128.i: ; preds = %invcont3.i + %exn128.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad132.i: ; preds = %invcont4.i + %exn132.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad136.i: ; preds = %invcont6.i + %exn136.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad140.i: ; preds = %bb21.i, %invcont7.i + %exn140.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad144.i: ; preds = %bb10.i168.i, %invcont9.i + %exn144.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad148.i: ; preds = %invcont10.i + %exn148.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad188.i: ; preds = %bb50.i.i.i + %exn188.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad196.i: ; preds = %bb.i191.i + %exn196 = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad200.i: ; preds = %bb50.i.i + %exn200.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable lpad204.i: ; preds = %invcont86.i + %exn204.i = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable } declare fastcc void @_ZN11Polynomials19LagrangeEquidistant23generate_complete_basisEj(%"struct.std::vector,std::allocator > >"* noalias nocapture sret, i32) + +declare i32 @__gxx_personality_v0(...) diff --git a/test/CodeGen/X86/split-eh-lpad-edges.ll b/test/CodeGen/X86/split-eh-lpad-edges.ll index fd40a7f703..756a3ddc86 100644 --- a/test/CodeGen/X86/split-eh-lpad-edges.ll +++ b/test/CodeGen/X86/split-eh-lpad-edges.ll @@ -28,7 +28,11 @@ invcont27: ; preds = %invcont26 lpad: ; preds = %invcont26, %invcont, %entry %pool.1 = phi %struct.NSAutoreleasePool* [ null, %entry ], [ null, %invcont ], [ null, %invcont26 ] ; <%struct.NSAutoreleasePool*> [#uses=0] + %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0 + cleanup unreachable } declare %struct.NSObject* @objc_msgSend(%struct.NSObject*, %struct.objc_selector*, ...) + +declare i32 @__gxx_personality_v0(...) -- cgit v1.2.3