Model stacksave and stackrestore as both writing memory, since we
[oota-llvm.git] / test / Transforms / IndVarsSimplify / 2004-04-05-InvokeCastCrash.llx
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -indvars -disable-output
2
3         %struct.__false_type = type { ubyte }
4         "struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>" = type { "struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"*, "struct.llvm::Constant"* }
5         "struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >" = type { "struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"*, "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_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >", uint }
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> >", uint }
10         "struct.llvm::AbstractTypeUser" = type { int (...)** }
11         "struct.llvm::Annotable" = type { int (...)**, "struct.llvm::Annotation"* }
12         "struct.llvm::Annotation" = type { int (...)**, "struct.llvm::AnnotationID", "struct.llvm::Annotation"* }
13         "struct.llvm::AnnotationID" = type { uint }
14         "struct.llvm::Argument" = type { "struct.llvm::Value", "struct.llvm::Function"*, "struct.llvm::Argument"*, "struct.llvm::Argument"* }
15         "struct.llvm::BasicBlock" = type { "struct.llvm::Value", "struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >", "struct.llvm::BasicBlock"*, "struct.llvm::BasicBlock"* }
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> >", "struct.llvm::SymbolTable"*, "struct.llvm::Function"*, "struct.llvm::Function"* }
19         "struct.llvm::FunctionPass" = type { "struct.llvm::Pass" }
20         "struct.llvm::FunctionType" = type { "struct.llvm::DerivedType", bool }
21         "struct.llvm::GlobalValue" = type { "struct.llvm::User", uint, "struct.llvm::Module"* }
22         "struct.llvm::Instruction" = type { "struct.llvm::User", "struct.llvm::Annotable", "struct.llvm::BasicBlock"*, "struct.llvm::Instruction"*, "struct.llvm::Instruction"*, uint }
23         "struct.llvm::IntrinsicLowering" = type opaque
24         "struct.llvm::MachineBasicBlock" = type { "struct.llvm::ilist<llvm::MachineInstr>", "struct.llvm::MachineBasicBlock"*, "struct.llvm::MachineBasicBlock"*, "struct.llvm::BasicBlock"* }
25         "struct.llvm::MachineConstantPool" = type opaque
26         "struct.llvm::MachineFrameInfo" = type opaque
27         "struct.llvm::MachineFunction" = type { "struct.llvm::Annotation", "struct.llvm::Function"*, "struct.llvm::TargetMachine"*, "struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >", "struct.llvm::SSARegMap"*, "struct.llvm::MachineFunctionInfo"*, "struct.llvm::MachineFrameInfo"*, "struct.llvm::MachineConstantPool"* }
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> >", uint, uint, uint, uint, uint, uint, uint, bool, bool, bool, "struct.llvm::MachineFunction"* }
29         "struct.llvm::MachineFunctionPass" = type { "struct.llvm::FunctionPass" }
30         "struct.llvm::MachineInstr" = type { short, ubyte, "struct.std::vector<llvm::MachineOperand,std::allocator<llvm::MachineOperand> >", "struct.llvm::MachineInstr"*, "struct.llvm::MachineInstr"*, "struct.llvm::MachineBasicBlock"* }
31         "struct.llvm::MachineInstrBuilder" = type { "struct.llvm::MachineInstr"* }
32         "struct.llvm::MachineOperand" = type { "union.llvm::MachineOperand::._65", int, int }
33         "struct.llvm::Module" = type opaque
34         "struct.llvm::PATypeHandle" = type { "struct.llvm::Type"*, "struct.llvm::AbstractTypeUser"* }
35         "struct.llvm::PATypeHolder" = type { "struct.llvm::Type"* }
36         "struct.llvm::Pass" = type { int (...)**, "struct.llvm::AbstractTypeUser"*, "struct.llvm::PassInfo"*, "struct.std::vector<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> > >" }
37         "struct.llvm::PassInfo" = type { sbyte*, sbyte*, "struct.std::type_info"*, ubyte, "struct.std::vector<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*> >", "struct.llvm::Pass"* ()*, "struct.llvm::Pass"* ("struct.llvm::TargetMachine"*)* }
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 { "struct.llvm::Function"*, "struct.llvm::Function"* }
41         "struct.llvm::SymbolTableListTraits<llvm::Instruction,llvm::BasicBlock,llvm::Function,llvm::ilist_traits<llvm::Instruction> >" = type { "struct.llvm::Function"*, "struct.llvm::BasicBlock"* }
42         "struct.llvm::TargetData" = type { "struct.llvm::FunctionPass", bool, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte }
43         "struct.llvm::TargetFrameInfo" = type { int (...)**, uint, uint, int }
44         "struct.llvm::TargetInstrDescriptor" = type { sbyte*, int, int, uint, bool, uint, uint, uint, uint, uint, uint*, uint* }
45         "struct.llvm::TargetInstrInfo" = type { int (...)**, "struct.llvm::TargetInstrDescriptor"*, uint, uint }
46         "struct.llvm::TargetMachine" = type { int (...)**, "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >", "struct.llvm::TargetData", "struct.llvm::IntrinsicLowering"* }
47         "struct.llvm::TargetRegClassInfo" = type { int (...)**, uint, uint, uint }
48         "struct.llvm::TargetRegInfo" = type { int (...)**, "struct.std::vector<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*> >", "struct.llvm::TargetMachine"* }
49         "struct.llvm::Type" = type { "struct.llvm::Value", uint, uint, bool, uint, "struct.llvm::Type"*, "struct.std::vector<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle> >" }
50         "struct.llvm::Use" = type { "struct.llvm::Value"*, "struct.llvm::User"*, "struct.llvm::Use"*, "struct.llvm::Use"* }
51         "struct.llvm::User" = type { "struct.llvm::Value", "struct.std::vector<llvm::Use,std::allocator<llvm::Use> >" }
52         "struct.llvm::Value" = type { int (...)**, "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", uint }
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 { "struct.llvm::MachineBasicBlock"* }
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>", "struct.llvm::Argument"*, "struct.llvm::Argument"* }
59         "struct.llvm::iplist<llvm::BasicBlock,llvm::ilist_traits<llvm::BasicBlock> >" = type { "struct.llvm::ilist_traits<llvm::Argument>", "struct.llvm::BasicBlock"*, "struct.llvm::BasicBlock"* }
60         "struct.llvm::iplist<llvm::Instruction,llvm::ilist_traits<llvm::Instruction> >" = type { "struct.llvm::ilist_traits<llvm::Instruction>", "struct.llvm::Instruction"*, "struct.llvm::Instruction"* }
61         "struct.llvm::iplist<llvm::MachineBasicBlock,llvm::ilist_traits<llvm::MachineBasicBlock> >" = type { "struct.llvm::MachineBasicBlock"*, "struct.llvm::MachineBasicBlock"* }
62         "struct.llvm::iplist<llvm::MachineInstr,llvm::ilist_traits<llvm::MachineInstr> >" = type { "struct.llvm::ilist_iterator<const llvm::MachineBasicBlock>", "struct.llvm::MachineInstr"*, "struct.llvm::MachineInstr"* }
63         "struct.llvm::iplist<llvm::Use,llvm::ilist_traits<llvm::Use> >" = type { "struct.llvm::Use"*, "struct.llvm::Use"* }
64         "struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*>, true>" = type { "struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"**, "struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"**, "struct.__gnu_cxx::_Hashtable_node<const llvm::Constant*>"** }
65         "struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >*,std::allocator<int>, true>" = type { "struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"**, "struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"**, "struct.__gnu_cxx::_Hashtable_node<std::pair<const llvm::Value* const, int> >"** }
66         "struct.std::_Vector_alloc_base<const llvm::PassInfo*,std::allocator<const llvm::PassInfo*>, true>" = type { "struct.llvm::PassInfo"**, "struct.llvm::PassInfo"**, "struct.llvm::PassInfo"** }
67         "struct.std::_Vector_alloc_base<const llvm::TargetRegClassInfo*,std::allocator<const llvm::TargetRegClassInfo*>, true>" = type { "struct.llvm::TargetRegClassInfo"**, "struct.llvm::TargetRegClassInfo"**, "struct.llvm::TargetRegClassInfo"** }
68         "struct.std::_Vector_alloc_base<llvm::AbstractTypeUser*,std::allocator<llvm::AbstractTypeUser*>, true>" = type { "struct.llvm::AbstractTypeUser"**, "struct.llvm::AbstractTypeUser"**, "struct.llvm::AbstractTypeUser"** }
69         "struct.std::_Vector_alloc_base<llvm::MachineInstr*,std::allocator<llvm::MachineInstr*>, true>" = type { "struct.llvm::MachineInstr"**, "struct.llvm::MachineInstr"**, "struct.llvm::MachineInstr"** }
70         "struct.std::_Vector_alloc_base<llvm::MachineOperand,std::allocator<llvm::MachineOperand>, true>" = type { "struct.llvm::MachineOperand"*, "struct.llvm::MachineOperand"*, "struct.llvm::MachineOperand"* }
71         "struct.std::_Vector_alloc_base<llvm::PATypeHandle,std::allocator<llvm::PATypeHandle>, true>" = type { "struct.llvm::PATypeHandle"*, "struct.llvm::PATypeHandle"*, "struct.llvm::PATypeHandle"* }
72         "struct.std::_Vector_alloc_base<llvm::Use,std::allocator<llvm::Use>, true>" = type { "struct.llvm::Use"*, "struct.llvm::Use"*, "struct.llvm::Use"* }
73         "struct.std::_Vector_alloc_base<std::pair<const llvm::PassInfo*, llvm::Pass*>,std::allocator<std::pair<const llvm::PassInfo*, llvm::Pass*> >, true>" = type { "struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, "struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"*, "struct.std::pair<const llvm::PassInfo*,llvm::Pass*>"* }
74         "struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" = type { "struct.std::_Vector_alloc_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,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 { sbyte* }
86         "struct.std::pair<const llvm::PassInfo*,llvm::Pass*>" = type { "struct.llvm::PassInfo"*, "struct.llvm::Pass"* }
87         "struct.std::pair<const llvm::Value* const,int>" = type { "struct.llvm::Value"*, int }
88         "struct.std::type_info" = type { int (...)**, sbyte* }
89         "struct.std::vector<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,std::allocator<const llvm::Constant*> >" = type { "struct.std::_Vector_base<__gnu_cxx::_Hashtable_node<const llvm::Constant*>*,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 { "struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* }
100
101 implementation   ; Functions:
102
103 declare void %_Znwj()
104
105 declare void %_ZN4llvm12MachineInstrC1Esjbb()
106
107 declare void %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_()
108
109 declare void %_ZNK4llvm8Function15getFunctionTypeEv()
110
111 declare void %_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE()
112
113 declare void %_ZNK4llvm19MachineInstrBuilder7addSImmEi()
114
115 void %_ZN4llvm11_GLOBAL__N_22InsertPrologEpilogCode20runOnMachineFunctionERNS_15MachineFunctionE("struct.llvm::MachineFunction"* %F) {
116 entry:
117         %tmp.8.i = invoke "struct.llvm::TargetFrameInfo"* null( "struct.llvm::TargetMachine"* null )
118                         to label %invoke_cont.0.i unwind label %invoke_catch.0.i                ; <"struct.llvm::TargetFrameInfo"*> [#uses=0]
119
120 invoke_catch.0.i:               ; preds = %entry, %invoke_cont.0.i, %tmp.7.i.noexc.i, %endif.0.i.i, %invoke_cont.1.i, %invoke_cont.2.i, %invoke_cont.3.i, %invoke_cont.4.i, %then.0.i, %invoke_cont.i.i, %invoke_cont.7.i, %invoke_cont.8.i, %invoke_cont.9.i, %endif.0.i, %then.1.i, %invoke_cont.34.i, %invoke_cont.35.i, %then.2.i, %invoke_cont.37.i, %invoke_cont.38.i, %invoke_cont.39.i, %invoke_cont.40.i, %invoke_cont.41.i, %invoke_cont.42.i, %invoke_cont.43.i, %invoke_cont.44.i, %no_exit.i, %invoke_cont.i53.i, %invoke_cont.47.i, %invoke_cont.48.i, %invoke_cont.49.i
121         ret void
122
123 invoke_cont.0.i:                ; preds = %entry
124         %tmp.7.i1.i = invoke "struct.llvm::TargetFrameInfo"* null( "struct.llvm::TargetMachine"* null )
125                         to label %tmp.7.i.noexc.i unwind label %invoke_catch.0.i                ; <"struct.llvm::TargetFrameInfo"*> [#uses=2]
126
127 tmp.7.i.noexc.i:                ; preds = %invoke_cont.0.i
128         %tmp.17.i2.i = invoke int null( "struct.llvm::TargetFrameInfo"* %tmp.7.i1.i )
129                         to label %endif.0.i.i unwind label %invoke_catch.0.i            ; <int> [#uses=0]
130
131 endif.0.i.i:            ; preds = %tmp.7.i.noexc.i
132         %tmp.38.i4.i = invoke int null( "struct.llvm::TargetFrameInfo"* %tmp.7.i1.i )
133                         to label %tmp.38.i.noexc.i unwind label %invoke_catch.0.i               ; <int> [#uses=0]
134
135 tmp.38.i.noexc.i:               ; preds = %endif.0.i.i
136         br bool false, label %invoke_cont.1.i, label %then.1.i.i
137
138 then.1.i.i:             ; preds = %tmp.38.i.noexc.i
139         ret void
140
141 invoke_cont.1.i:                ; preds = %tmp.38.i.noexc.i
142         %tmp.21.i = invoke "struct.llvm::TargetRegInfo"* null( "struct.llvm::TargetMachine"* null )
143                         to label %invoke_cont.2.i unwind label %invoke_catch.0.i                ; <"struct.llvm::TargetRegInfo"*> [#uses=1]
144
145 invoke_cont.2.i:                ; preds = %invoke_cont.1.i
146         %tmp.28.i = invoke uint null( "struct.llvm::TargetRegInfo"* %tmp.21.i )
147                         to label %invoke_cont.3.i unwind label %invoke_catch.0.i                ; <uint> [#uses=0]
148
149 invoke_cont.3.i:                ; preds = %invoke_cont.2.i
150         %tmp.36.i = invoke "struct.llvm::TargetInstrInfo"* null( "struct.llvm::TargetMachine"* null )
151                         to label %invoke_cont.4.i unwind label %invoke_catch.0.i                ; <"struct.llvm::TargetInstrInfo"*> [#uses=1]
152
153 invoke_cont.4.i:                ; preds = %invoke_cont.3.i
154         %tmp.43.i = invoke bool null( "struct.llvm::TargetInstrInfo"* %tmp.36.i, short 383, long 0 )
155                         to label %invoke_cont.5.i unwind label %invoke_catch.0.i                ; <bool> [#uses=1]
156
157 invoke_cont.5.i:                ; preds = %invoke_cont.4.i
158         br bool %tmp.43.i, label %then.0.i, label %else.i
159
160 then.0.i:               ; preds = %invoke_cont.5.i
161         invoke void %_Znwj( )
162                         to label %tmp.0.i.noexc.i unwind label %invoke_catch.0.i
163
164 tmp.0.i.noexc.i:                ; preds = %then.0.i
165         invoke void %_ZN4llvm12MachineInstrC1Esjbb( )
166                         to label %invoke_cont.i.i unwind label %cond_true.i.i
167
168 cond_true.i.i:          ; preds = %tmp.0.i.noexc.i
169         ret void
170
171 invoke_cont.i.i:                ; preds = %tmp.0.i.noexc.i
172         invoke void %_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
173                         to label %invoke_cont.7.i unwind label %invoke_catch.0.i
174
175 invoke_cont.7.i:                ; preds = %invoke_cont.i.i
176         invoke void %_ZNK4llvm19MachineInstrBuilder7addSImmEi( )
177                         to label %invoke_cont.8.i unwind label %invoke_catch.0.i
178
179 invoke_cont.8.i:                ; preds = %invoke_cont.7.i
180         invoke void %_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
181                         to label %invoke_cont.9.i unwind label %invoke_catch.0.i
182
183 invoke_cont.9.i:                ; preds = %invoke_cont.8.i
184         invoke void %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( )
185                         to label %endif.0.i unwind label %invoke_catch.0.i
186
187 else.i:         ; preds = %invoke_cont.5.i
188         ret void
189
190 endif.0.i:              ; preds = %invoke_cont.9.i
191         invoke void %_ZNK4llvm8Function15getFunctionTypeEv( )
192                         to label %invoke_cont.33.i unwind label %invoke_catch.0.i
193
194 invoke_cont.33.i:               ; preds = %endif.0.i
195         br bool false, label %then.1.i, label %endif.1.i
196
197 then.1.i:               ; preds = %invoke_cont.33.i
198         invoke void %_ZNK4llvm8Function15getFunctionTypeEv( )
199                         to label %invoke_cont.34.i unwind label %invoke_catch.0.i
200
201 invoke_cont.34.i:               ; preds = %then.1.i
202         %tmp.121.i = invoke "struct.llvm::TargetRegInfo"* null( "struct.llvm::TargetMachine"* null )
203                         to label %invoke_cont.35.i unwind label %invoke_catch.0.i               ; <"struct.llvm::TargetRegInfo"*> [#uses=1]
204
205 invoke_cont.35.i:               ; preds = %invoke_cont.34.i
206         %tmp.128.i = invoke uint null( "struct.llvm::TargetRegInfo"* %tmp.121.i )
207                         to label %invoke_cont.36.i unwind label %invoke_catch.0.i               ; <uint> [#uses=0]
208
209 invoke_cont.36.i:               ; preds = %invoke_cont.35.i
210         br bool false, label %then.2.i, label %endif.1.i
211
212 then.2.i:               ; preds = %invoke_cont.36.i
213         %tmp.140.i = invoke "struct.llvm::TargetRegInfo"* null( "struct.llvm::TargetMachine"* null )
214                         to label %invoke_cont.37.i unwind label %invoke_catch.0.i               ; <"struct.llvm::TargetRegInfo"*> [#uses=0]
215
216 invoke_cont.37.i:               ; preds = %then.2.i
217         %tmp.148.i = invoke "struct.llvm::TargetRegInfo"* null( "struct.llvm::TargetMachine"* null )
218                         to label %invoke_cont.38.i unwind label %invoke_catch.0.i               ; <"struct.llvm::TargetRegInfo"*> [#uses=1]
219
220 invoke_cont.38.i:               ; preds = %invoke_cont.37.i
221         %tmp.155.i = invoke uint null( "struct.llvm::TargetRegInfo"* %tmp.148.i, "struct.llvm::Type"* null, bool false )
222                         to label %invoke_cont.39.i unwind label %invoke_catch.0.i               ; <uint> [#uses=0]
223
224 invoke_cont.39.i:               ; preds = %invoke_cont.38.i
225         %tmp.163.i = invoke "struct.llvm::TargetFrameInfo"* null( "struct.llvm::TargetMachine"* null )
226                         to label %invoke_cont.40.i unwind label %invoke_catch.0.i               ; <"struct.llvm::TargetFrameInfo"*> [#uses=1]
227
228 invoke_cont.40.i:               ; preds = %invoke_cont.39.i
229         %tmp.170.i = invoke int null( "struct.llvm::TargetFrameInfo"* %tmp.163.i )
230                         to label %invoke_cont.41.i unwind label %invoke_catch.0.i               ; <int> [#uses=0]
231
232 invoke_cont.41.i:               ; preds = %invoke_cont.40.i
233         %tmp.177.i = invoke "struct.llvm::TargetFrameInfo"* null( "struct.llvm::TargetMachine"* null )
234                         to label %invoke_cont.42.i unwind label %invoke_catch.0.i               ; <"struct.llvm::TargetFrameInfo"*> [#uses=1]
235
236 invoke_cont.42.i:               ; preds = %invoke_cont.41.i
237         %tmp.184.i = invoke int null( "struct.llvm::TargetFrameInfo"* %tmp.177.i )
238                         to label %invoke_cont.43.i unwind label %invoke_catch.0.i               ; <int> [#uses=1]
239
240 invoke_cont.43.i:               ; preds = %invoke_cont.42.i
241         %tmp.191.i = invoke "struct.llvm::TargetFrameInfo"* null( "struct.llvm::TargetMachine"* null )
242                         to label %invoke_cont.44.i unwind label %invoke_catch.0.i               ; <"struct.llvm::TargetFrameInfo"*> [#uses=1]
243
244 invoke_cont.44.i:               ; preds = %invoke_cont.43.i
245         %tmp.198.i = invoke int null( "struct.llvm::TargetFrameInfo"* %tmp.191.i, "struct.llvm::MachineFunction"* %F, bool* null )
246                         to label %invoke_cont.45.i unwind label %invoke_catch.0.i               ; <int> [#uses=0]
247
248 invoke_cont.45.i:               ; preds = %invoke_cont.44.i
249         br bool false, label %no_exit.i, label %endif.1.i
250
251 no_exit.i:              ; preds = %invoke_cont.45.i, %invoke_cont.50.i
252         %nextArgOffset.0.i.1 = phi int [ %tmp.221.i, %invoke_cont.50.i ], [ 0, %invoke_cont.45.i ]              ; <int> [#uses=1]
253         invoke void %_Znwj( )
254                         to label %tmp.0.i.noexc55.i unwind label %invoke_catch.0.i
255
256 tmp.0.i.noexc55.i:              ; preds = %no_exit.i
257         invoke void %_ZN4llvm12MachineInstrC1Esjbb( )
258                         to label %invoke_cont.i53.i unwind label %cond_true.i52.i
259
260 cond_true.i52.i:                ; preds = %tmp.0.i.noexc55.i
261         ret void
262
263 invoke_cont.i53.i:              ; preds = %tmp.0.i.noexc55.i
264         invoke void %_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
265                         to label %invoke_cont.47.i unwind label %invoke_catch.0.i
266
267 invoke_cont.47.i:               ; preds = %invoke_cont.i53.i
268         invoke void %_ZNK4llvm19MachineInstrBuilder7addMRegEiNS_14MachineOperand7UseTypeE( )
269                         to label %invoke_cont.48.i unwind label %invoke_catch.0.i
270
271 invoke_cont.48.i:               ; preds = %invoke_cont.47.i
272         invoke void %_ZNK4llvm19MachineInstrBuilder7addSImmEi( )
273                         to label %invoke_cont.49.i unwind label %invoke_catch.0.i
274
275 invoke_cont.49.i:               ; preds = %invoke_cont.48.i
276         invoke void %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EE9push_backERKS2_( )
277                         to label %invoke_cont.50.i unwind label %invoke_catch.0.i
278
279 invoke_cont.50.i:               ; preds = %invoke_cont.49.i
280         %tmp.221.i = add int %nextArgOffset.0.i.1, %tmp.184.i           ; <int> [#uses=1]
281         br bool false, label %no_exit.i, label %endif.1.i
282
283 endif.1.i:              ; preds = %invoke_cont.33.i, %invoke_cont.36.i, %invoke_cont.45.i, %invoke_cont.50.i
284         ret void
285 }
286