1 ; RUN: opt < %s -passes=indvars -disable-output
2 ; ModuleID = '2004-04-05-InvokeCastCrash.ll'
3 %struct.__false_type = type { i8 }
4 %"struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>" = type { ptr, ptr }
5 %"struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >" = type { ptr, %"struct.std::pair<const llvm::Value* const,int>" }
6 %"struct.__gnu_cxx::hash_map<const llvm::Value*,int,__gnu_cxx::hash<const llvm::Value*>,std::equal_to<const llvm::Value*>,std::allocator<int> >" = type { %"struct.__gnu_cxx::hashtable<std::pair<const llvm::Value* const, int>,const llvm::Value*,__gnu_cxx::hash<const llvm::Value*>,std::_Select1st<std::pair<const llvm::Value* const, int> >,std::equal_to<const llvm::Value*>,std::allocator<int> >" }
7 %"struct.__gnu_cxx::hash_set<const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" = type { %"struct.__gnu_cxx::hashtable<const llvm::Constant*,const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::_Identity<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" }
8 %"struct.__gnu_cxx::hashtable<const llvm::Constant*,const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::_Identity<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >" = type { %struct.__false_type, %struct.__false_type, %struct.__false_type, %struct.__false_type, %"struct.std::vector<__gnu_cxx::_Hashtable_nodeptr,std::allocator<const llvm::Constant*> >", i32 }
9 %"struct.__gnu_cxx::hashtable<std::pair<const llvm::Value* const, int>,const llvm::Value*,__gnu_cxx::hash<const llvm::Value*>,std::_Select1st<std::pair<const llvm::Value* const, int> >,std::equal_to<const llvm::Value*>,std::allocator<int> >" = type { %struct.__false_type, %struct.__false_type, %struct.__false_type, %struct.__false_type, %"struct.std::vector<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >", i32 }
10 %"struct.llvm::AbstractTypeUser" = type { ptr }
11 %"struct.llvm::Annotable" = type { ptr, ptr }
12 %"struct.llvm::Annotation" = type { ptr, %"struct.llvm::AnnotationID", ptr }
13 %"struct.llvm::AnnotationID" = type { i32 }
14 %"struct.llvm::Argument" = type { %"struct.llvm::Value", ptr, ptr, ptr }
15 %"struct.llvm::BasicBlock" = type { %"struct.llvm::Value", %"struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >", ptr, ptr }
16 %"struct.llvm::Constant" = type opaque
17 %"struct.llvm::DerivedType" = type { %"struct.llvm::Type", %"struct.llvm::AbstractTypeUser", %"struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" }
18 %"struct.llvm::Function" = type { %"struct.llvm::GlobalValue", %"struct.llvm::Annotable", %"struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >", %"struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >", ptr, ptr, ptr }
19 %"struct.llvm::FunctionPass" = type { %"struct.llvm::Pass" }
20 %"struct.llvm::FunctionType" = type { %"struct.llvm::DerivedType", i1 }
21 %"struct.llvm::GlobalValue" = type { %"struct.llvm::User", i32, ptr }
22 %"struct.llvm::Instruction" = type { %"struct.llvm::User", %"struct.llvm::Annotable", ptr, ptr, ptr, i32 }
23 %"struct.llvm::IntrinsicLowering" = type opaque
24 %"struct.llvm::MachineBasicBlock" = type { %"struct.llvm::ilist<llvm::MachineInstr>", ptr, ptr, ptr }
25 %"struct.llvm::MachineConstantPool" = type opaque
26 %"struct.llvm::MachineFrameInfo" = type opaque
27 %"struct.llvm::MachineFunction" = type { %"struct.llvm::Annotation", ptr, ptr, %"struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >", ptr, ptr, ptr, ptr }
28 %"struct.llvm::MachineFunctionInfo" = type { %"struct.__gnu_cxx::hash_set<const llvm::Constant*,__gnu_cxx::hash<const llvm::Constant*>,std::equal_to<const llvm::Constant*>,std::allocator<const llvm::Constant*> >", %"struct.__gnu_cxx::hash_map<const llvm::Value*,int,__gnu_cxx::hash<const llvm::Value*>,std::equal_to<const llvm::Value*>,std::allocator<int> >", i32, i32, i32, i32, i32, i32, i32, i1, i1, i1, ptr }
29 %"struct.llvm::MachineFunctionPass" = type { %"struct.llvm::FunctionPass" }
30 %"struct.llvm::MachineInstr" = type { i16, i8, %"struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >", ptr, ptr, ptr }
31 %"struct.llvm::MachineInstrBuilder" = type { ptr }
32 %"struct.llvm::MachineOperand" = type { %"union.llvm::MachineOperand::._65", i32, i32 }
33 %"struct.llvm::Module" = type opaque
34 %"struct.llvm::PATypeHandle" = type { ptr, ptr }
35 %"struct.llvm::PATypeHolder" = type { ptr }
36 %"struct.llvm::Pass" = type { ptr, ptr, ptr, %"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" }
37 %"struct.llvm::PassInfo" = type { ptr, ptr, ptr, i8, %"struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >", ptr, ptr }
38 %"struct.llvm::SSARegMap" = type opaque
39 %"struct.llvm::SymbolTable" = type opaque
40 %"struct.llvm::SymbolTableListTraits<llvm::Argument,llvm::Function,llvm::Function,llvm::ilist_traits<llvm::Argument> >" = type { ptr, ptr }
41 %"struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" = type { ptr, ptr }
42 %"struct.llvm::DataLayout" = type { %"struct.llvm::FunctionPass", i1, i8, i8, i8, i8, i8, i8, i8, i8 }
43 %"struct.llvm::TargetFrameInfo" = type { ptr, i32, i32, i32 }
44 %"struct.llvm::TargetInstrDescriptor" = type { ptr, i32, i32, i32, i1, i32, i32, i32, i32, i32, ptr, ptr }
45 %"struct.llvm::TargetInstrInfo" = type { ptr, ptr, i32, i32 }
46 %"struct.llvm::TargetMachine" = type { ptr, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", %"struct.llvm::DataLayout", ptr }
47 %"struct.llvm::TargetRegClassInfo" = type { ptr, i32, i32, i32 }
48 %"struct.llvm::TargetRegInfo" = type { ptr, %"struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >", ptr }
49 %"struct.llvm::Type" = type { %"struct.llvm::Value", i32, i32, i1, i32, ptr, %"struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" }
50 %"struct.llvm::Use" = type { ptr, ptr, ptr, ptr }
51 %"struct.llvm::User" = type { %"struct.llvm::Value", %"struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" }
52 %"struct.llvm::Value" = type { ptr, %"struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >", %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", %"struct.llvm::PATypeHolder", i32 }
53 %"struct.llvm::_GLOBAL__N_::InsertPrologEpilogCode" = type { %"struct.llvm::MachineFunctionPass" }
54 %"struct.llvm::ilist<llvm::MachineInstr>" = type { %"struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" }
55 %"struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>" = type { ptr }
56 %"struct.llvm::ilist_traits<llvm::Argument>" = type { %"struct.llvm::SymbolTableListTraits<llvm::Argument,llvm::Function,llvm::Function,llvm::ilist_traits<llvm::Argument> >" }
57 %"struct.llvm::ilist_traits<llvm::Instruction>" = type { %"struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" }
58 %"struct.llvm::iplist<llvm::Argument,llvm::ilist_traits<llvm::Argument> >" = type { %"struct.llvm::ilist_traits<llvm::Argument>", ptr, ptr }
59 %"struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >" = type { %"struct.llvm::ilist_traits<llvm::Argument>", ptr, ptr }
60 %"struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >" = type { %"struct.llvm::ilist_traits<llvm::Instruction>", ptr, ptr }
61 %"struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >" = type { ptr, ptr }
62 %"struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" = type { %"struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>", ptr, ptr }
63 %"struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >" = type { ptr, ptr }
64 %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_nodeptr,std::allocator<const llvm::Constant*>, true>" = type { ptr, ptr, ptr }
65 %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" = type { ptr, ptr, ptr }
66 %"struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" = type { ptr, ptr, ptr }
67 %"struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" = type { ptr, ptr, ptr }
68 %"struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" = type { ptr, ptr, ptr }
69 %"struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" = type { ptr, ptr, ptr }
70 %"struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" = type { ptr, ptr, ptr }
71 %"struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" = type { ptr, ptr, ptr }
72 %"struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" = type { ptr, ptr, ptr }
73 %"struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" = type { ptr, ptr, ptr }
74 %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_nodeptr,std::allocator<const llvm::Constant*> >" = type { %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_nodeptr,std::allocator<const llvm::Constant*>, true>" }
75 %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" = type { %"struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" }
76 %"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { %"struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" }
77 %"struct.std::_Vector_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" = type { %"struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" }
78 %"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { %"struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" }
79 %"struct.std::_Vector_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" = type { %"struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" }
80 %"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { %"struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" }
81 %"struct.std::_Vector_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" = type { %"struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" }
82 %"struct.std::_Vector_base<llvm::Use,std::allocator<llvm::Use> >" = type { %"struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" }
83 %"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { %"struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" }
84 %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" }
85 %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { ptr }
86 %"struct.std::pair<const llvm::PassInfo*,llvm::Pass*>" = type { ptr, ptr }
87 %"struct.std::pair<const llvm::Value* const,int>" = type { ptr, i32 }
88 %"struct.std::type_info" = type { ptr, ptr }
89 %"struct.std::vector<__gnu_cxx::_Hashtable_nodeptr,std::allocator<const llvm::Constant*> >" = type { %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_nodeptr,std::allocator<const llvm::Constant*> >" }
90 %"struct.std::vector<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" = type { %"struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int> >" }
91 %"struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" = type { %"struct.std::_Vector_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >" }
92 %"struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" = type { %"struct.std::_Vector_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >" }
93 %"struct.std::vector<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" = type { %"struct.std::_Vector_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*> >" }
94 %"struct.std::vector<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" = type { %"struct.std::_Vector_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*> >" }
95 %"struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" = type { %"struct.std::_Vector_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >" }
96 %"struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" = type { %"struct.std::_Vector_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" }
97 %"struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" = type { %"struct.std::_Vector_base<llvm::Use,std::allocator<llvm::Use> >" }
98 %"struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" = type { %"struct.std::_Vector_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" }
99 %"union.llvm::MachineOperand::._65" = type { ptr }
101 declare void @_Znwj()
103 declare void @_ZN4llvm12MachineInstrC1Esjbb()
105 declare void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_()
107 declare void @_ZNK4llvm8Function15getFunctionTypeEv()
109 declare void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE()
111 declare void @_ZNK4llvm19MachineInstrBuilder7addSImmEi()
113 declare i32 @__gxx_personality_v0(...)
115 define void @_ZN4llvm11_GLOBAL__N_22InsertPrologEpilogCode20runOnMachineFunctionERNS_15MachineFunctionE(ptr %F) personality ptr @__gxx_personality_v0 {
117 %tmp.8.i = invoke ptr null( ptr null )
118 to label %invoke_cont.0.i unwind label %invoke_catch.0.i ; <ptr> [#uses=0]
120 invoke_catch.0.i: ; preds = %invoke_cont.49.i, %invoke_cont.48.i, %invoke_cont.47.i, %invoke_cont.i53.i, %no_exit.i, %invoke_cont.44.i, %invoke_cont.43.i, %invoke_cont.42.i, %invoke_cont.41.i, %invoke_cont.40.i, %invoke_cont.39.i, %invoke_cont.38.i, %invoke_cont.37.i, %then.2.i, %invoke_cont.35.i, %invoke_cont.34.i, %then.1.i, %endif.0.i, %invoke_cont.9.i, %invoke_cont.8.i, %invoke_cont.7.i, %invoke_cont.i.i, %then.0.i, %invoke_cont.4.i, %invoke_cont.3.i, %invoke_cont.2.i, %invoke_cont.1.i, %endif.0.i.i, %tmp.7.i.noexc.i, %invoke_cont.0.i, %entry
121 %exn0.i = landingpad {ptr, i32}
125 invoke_cont.0.i: ; preds = %entry
126 %tmp.7.i1.i = invoke ptr null( ptr null )
127 to label %tmp.7.i.noexc.i unwind label %invoke_catch.0.i ; <ptr> [#uses=2]
129 tmp.7.i.noexc.i: ; preds = %invoke_cont.0.i
130 %tmp.17.i2.i = invoke i32 null( ptr %tmp.7.i1.i )
131 to label %endif.0.i.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
133 endif.0.i.i: ; preds = %tmp.7.i.noexc.i
134 %tmp.38.i4.i = invoke i32 null( ptr %tmp.7.i1.i )
135 to label %tmp.38.i.noexc.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
137 tmp.38.i.noexc.i: ; preds = %endif.0.i.i
138 br i1 false, label %invoke_cont.1.i, label %then.1.i.i
140 then.1.i.i: ; preds = %tmp.38.i.noexc.i
143 invoke_cont.1.i: ; preds = %tmp.38.i.noexc.i
144 %tmp.21.i = invoke ptr null( ptr null )
145 to label %invoke_cont.2.i unwind label %invoke_catch.0.i ; <ptr> [#uses=1]
147 invoke_cont.2.i: ; preds = %invoke_cont.1.i
148 %tmp.28.i = invoke i32 null( ptr %tmp.21.i )
149 to label %invoke_cont.3.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
151 invoke_cont.3.i: ; preds = %invoke_cont.2.i
152 %tmp.36.i = invoke ptr null( ptr null )
153 to label %invoke_cont.4.i unwind label %invoke_catch.0.i ; <ptr> [#uses=1]
155 invoke_cont.4.i: ; preds = %invoke_cont.3.i
156 %tmp.43.i = invoke i1 null( ptr %tmp.36.i, i16 383, i64 0 )
157 to label %invoke_cont.5.i unwind label %invoke_catch.0.i ; <i1> [#uses=1]
159 invoke_cont.5.i: ; preds = %invoke_cont.4.i
160 br i1 %tmp.43.i, label %then.0.i, label %else.i
162 then.0.i: ; preds = %invoke_cont.5.i
163 invoke void @_Znwj( )
164 to label %tmp.0.i.noexc.i unwind label %invoke_catch.0.i
166 tmp.0.i.noexc.i: ; preds = %then.0.i
167 invoke void @_ZN4llvm12MachineInstrC1Esjbb( )
168 to label %invoke_cont.i.i unwind label %cond_true.i.i
170 cond_true.i.i: ; preds = %tmp.0.i.noexc.i
171 %exn.i.i = landingpad {ptr, i32}
175 invoke_cont.i.i: ; preds = %tmp.0.i.noexc.i
176 invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
177 to label %invoke_cont.7.i unwind label %invoke_catch.0.i
179 invoke_cont.7.i: ; preds = %invoke_cont.i.i
180 invoke void @_ZNK4llvm19MachineInstrBuilder7addSImmEi( )
181 to label %invoke_cont.8.i unwind label %invoke_catch.0.i
183 invoke_cont.8.i: ; preds = %invoke_cont.7.i
184 invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
185 to label %invoke_cont.9.i unwind label %invoke_catch.0.i
187 invoke_cont.9.i: ; preds = %invoke_cont.8.i
188 invoke void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( )
189 to label %endif.0.i unwind label %invoke_catch.0.i
191 else.i: ; preds = %invoke_cont.5.i
194 endif.0.i: ; preds = %invoke_cont.9.i
195 invoke void @_ZNK4llvm8Function15getFunctionTypeEv( )
196 to label %invoke_cont.33.i unwind label %invoke_catch.0.i
198 invoke_cont.33.i: ; preds = %endif.0.i
199 br i1 false, label %then.1.i, label %endif.1.i
201 then.1.i: ; preds = %invoke_cont.33.i
202 invoke void @_ZNK4llvm8Function15getFunctionTypeEv( )
203 to label %invoke_cont.34.i unwind label %invoke_catch.0.i
205 invoke_cont.34.i: ; preds = %then.1.i
206 %tmp.121.i = invoke ptr null( ptr null )
207 to label %invoke_cont.35.i unwind label %invoke_catch.0.i ; <ptr> [#uses=1]
209 invoke_cont.35.i: ; preds = %invoke_cont.34.i
210 %tmp.128.i = invoke i32 null( ptr %tmp.121.i )
211 to label %invoke_cont.36.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
213 invoke_cont.36.i: ; preds = %invoke_cont.35.i
214 br i1 false, label %then.2.i, label %endif.1.i
216 then.2.i: ; preds = %invoke_cont.36.i
217 %tmp.140.i = invoke ptr null( ptr null )
218 to label %invoke_cont.37.i unwind label %invoke_catch.0.i ; <ptr> [#uses=0]
220 invoke_cont.37.i: ; preds = %then.2.i
221 %tmp.148.i = invoke ptr null( ptr null )
222 to label %invoke_cont.38.i unwind label %invoke_catch.0.i ; <ptr> [#uses=1]
224 invoke_cont.38.i: ; preds = %invoke_cont.37.i
225 %tmp.155.i = invoke i32 null( ptr %tmp.148.i, ptr null, i1 false )
226 to label %invoke_cont.39.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
228 invoke_cont.39.i: ; preds = %invoke_cont.38.i
229 %tmp.163.i = invoke ptr null( ptr null )
230 to label %invoke_cont.40.i unwind label %invoke_catch.0.i ; <ptr> [#uses=1]
232 invoke_cont.40.i: ; preds = %invoke_cont.39.i
233 %tmp.170.i = invoke i32 null( ptr %tmp.163.i )
234 to label %invoke_cont.41.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
236 invoke_cont.41.i: ; preds = %invoke_cont.40.i
237 %tmp.177.i = invoke ptr null( ptr null )
238 to label %invoke_cont.42.i unwind label %invoke_catch.0.i ; <ptr> [#uses=1]
240 invoke_cont.42.i: ; preds = %invoke_cont.41.i
241 %tmp.184.i = invoke i32 null( ptr %tmp.177.i )
242 to label %invoke_cont.43.i unwind label %invoke_catch.0.i ; <i32> [#uses=1]
244 invoke_cont.43.i: ; preds = %invoke_cont.42.i
245 %tmp.191.i = invoke ptr null( ptr null )
246 to label %invoke_cont.44.i unwind label %invoke_catch.0.i ; <ptr> [#uses=1]
248 invoke_cont.44.i: ; preds = %invoke_cont.43.i
249 %tmp.198.i = invoke i32 null( ptr %tmp.191.i, ptr %F, ptr null )
250 to label %invoke_cont.45.i unwind label %invoke_catch.0.i ; <i32> [#uses=0]
252 invoke_cont.45.i: ; preds = %invoke_cont.44.i
253 br i1 false, label %no_exit.i, label %endif.1.i
255 no_exit.i: ; preds = %invoke_cont.50.i, %invoke_cont.45.i
256 %nextArgOffset.0.i.1 = phi i32 [ %tmp.221.i, %invoke_cont.50.i ], [ 0, %invoke_cont.45.i ] ; <i32> [#uses=1]
257 invoke void @_Znwj( )
258 to label %tmp.0.i.noexc55.i unwind label %invoke_catch.0.i
260 tmp.0.i.noexc55.i: ; preds = %no_exit.i
261 invoke void @_ZN4llvm12MachineInstrC1Esjbb( )
262 to label %invoke_cont.i53.i unwind label %cond_true.i52.i
264 cond_true.i52.i: ; preds = %tmp.0.i.noexc55.i
265 %exn.i52.i = landingpad {ptr, i32}
269 invoke_cont.i53.i: ; preds = %tmp.0.i.noexc55.i
270 invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
271 to label %invoke_cont.47.i unwind label %invoke_catch.0.i
273 invoke_cont.47.i: ; preds = %invoke_cont.i53.i
274 invoke void @_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
275 to label %invoke_cont.48.i unwind label %invoke_catch.0.i
277 invoke_cont.48.i: ; preds = %invoke_cont.47.i
278 invoke void @_ZNK4llvm19MachineInstrBuilder7addSImmEi( )
279 to label %invoke_cont.49.i unwind label %invoke_catch.0.i
281 invoke_cont.49.i: ; preds = %invoke_cont.48.i
282 invoke void @_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( )
283 to label %invoke_cont.50.i unwind label %invoke_catch.0.i
285 invoke_cont.50.i: ; preds = %invoke_cont.49.i
286 %tmp.221.i = add i32 %nextArgOffset.0.i.1, %tmp.184.i ; <i32> [#uses=1]
287 br i1 false, label %no_exit.i, label %endif.1.i
289 endif.1.i: ; preds = %invoke_cont.50.i, %invoke_cont.45.i, %invoke_cont.36.i, %invoke_cont.33.i