llvm.org GIT mirror llvm / 6e141fd
Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44960 91177308-0d34-0410-b5e6-96231b3b80d8 Evan Cheng 12 years ago
15 changed file(s) with 724 addition(s) and 12 deletion(s). Raw diff Collapse all Expand all
4747 const unsigned M_LOAD_FLAG = 1 << 5;
4848 const unsigned M_STORE_FLAG = 1 << 6;
4949 const unsigned M_INDIRECT_FLAG = 1 << 7;
50 const unsigned M_IMPLICIT_DEF_FLAG = 1 << 8;
5051
5152 // M_CONVERTIBLE_TO_3_ADDR - This is a 2-address instruction which can be
5253 // changed into a 3-address instruction if the first two operands cannot be
5354 // assigned to the same register. The target must implement the
5455 // TargetInstrInfo::convertToThreeAddress method for this instruction.
55 const unsigned M_CONVERTIBLE_TO_3_ADDR = 1 << 8;
56 const unsigned M_CONVERTIBLE_TO_3_ADDR = 1 << 9;
5657
5758 // This M_COMMUTABLE - is a 2- or 3-address instruction (of the form X = op Y,
5859 // Z), which produces the same result if Y and Z are exchanged.
59 const unsigned M_COMMUTABLE = 1 << 9;
60 const unsigned M_COMMUTABLE = 1 << 10;
6061
6162 // M_TERMINATOR_FLAG - Is this instruction part of the terminator for a basic
6263 // block? Typically this is things like return and branch instructions.
6364 // Various passes use this to insert code into the bottom of a basic block, but
6465 // before control flow occurs.
65 const unsigned M_TERMINATOR_FLAG = 1 << 10;
66 const unsigned M_TERMINATOR_FLAG = 1 << 11;
6667
6768 // M_USES_CUSTOM_DAG_SCHED_INSERTION - Set if this instruction requires custom
6869 // insertion support when the DAG scheduler is inserting it into a machine basic
6970 // block.
70 const unsigned M_USES_CUSTOM_DAG_SCHED_INSERTION = 1 << 11;
71 const unsigned M_USES_CUSTOM_DAG_SCHED_INSERTION = 1 << 12;
7172
7273 // M_VARIABLE_OPS - Set if this instruction can have a variable number of extra
7374 // operands in addition to the minimum number operands specified.
74 const unsigned M_VARIABLE_OPS = 1 << 12;
75 const unsigned M_VARIABLE_OPS = 1 << 13;
7576
7677 // M_PREDICABLE - Set if this instruction has a predicate operand that
7778 // controls execution. It may be set to 'always'.
78 const unsigned M_PREDICABLE = 1 << 13;
79 const unsigned M_PREDICABLE = 1 << 14;
7980
8081 // M_REMATERIALIZIBLE - Set if this instruction can be trivally re-materialized
8182 // at any time, e.g. constant generation, load from constant pool.
82 const unsigned M_REMATERIALIZIBLE = 1 << 14;
83 const unsigned M_REMATERIALIZIBLE = 1 << 15;
8384
8485 // M_NOT_DUPLICABLE - Set if this instruction cannot be safely duplicated.
8586 // (e.g. instructions with unique labels attached).
86 const unsigned M_NOT_DUPLICABLE = 1 << 15;
87 const unsigned M_NOT_DUPLICABLE = 1 << 16;
8788
8889 // M_HAS_OPTIONAL_DEF - Set if this instruction has an optional definition, e.g.
8990 // ARM instructions which can set condition code if 's' bit is set.
90 const unsigned M_HAS_OPTIONAL_DEF = 1 << 16;
91 const unsigned M_HAS_OPTIONAL_DEF = 1 << 17;
9192
9293 // Machine operand flags
9394 // M_LOOK_UP_PTR_REG_CLASS - Set if this operand is a pointer value and it
612612 return false;
613613
614614 isLoad = false;
615 if (tii_->isTriviallyReMaterializable(MI)) {
616 isLoad = MI->getInstrDescriptor()->Flags & M_LOAD_FLAG;
615 const TargetInstrDescriptor *TID = MI->getInstrDescriptor();
616 if ((TID->Flags & M_IMPLICIT_DEF_FLAG) ||
617 tii_->isTriviallyReMaterializable(MI)) {
618 isLoad = TID->Flags & M_LOAD_FLAG;
617619 return true;
618620 }
619621
676678 bool isSS, int Slot, unsigned Reg) {
677679 unsigned MRInfo = 0;
678680 const TargetInstrDescriptor *TID = MI->getInstrDescriptor();
681 // If it is an implicit def instruction, just delete it.
682 if (TID->Flags & M_IMPLICIT_DEF_FLAG) {
683 RemoveMachineInstrFromMaps(MI);
684 vrm.RemoveMachineInstrFromMaps(MI);
685 MI->eraseFromParent();
686 ++numFolds;
687 return true;
688 }
689
679690 SmallVector FoldOps;
680691 for (unsigned i = 0, e = Ops.size(); i != e; ++i) {
681692 unsigned OpIdx = Ops[i];
851862 } else {
852863 CanFold = canFoldMemoryOperand(MI, Ops);
853864 }
854 } else CanFold = false;
865 } else
866 CanFold = false;
855867
856868 // Create a new virtual register for the spill interval.
857869 bool CreatedNewVReg = false;
645645 //===----------------------------------------------------------------------===//
646646 // Miscellaneous Instructions.
647647 //
648 let isImplicitDef = 1 in
648649 def IMPLICIT_DEF_GPR :
649650 PseudoInst<(outs GPR:$rD), (ins pred:$p),
650651 "@ IMPLICIT_DEF_GPR $rD",
250250 // FP <-> GPR Copies. Int <-> FP Conversions.
251251 //
252252
253 let isImplicitDef = 1 in {
253254 def IMPLICIT_DEF_SPR : PseudoInst<(outs SPR:$rD), (ins pred:$p),
254255 "@ IMPLICIT_DEF_SPR $rD",
255256 [(set SPR:$rD, (undef))]>;
256257 def IMPLICIT_DEF_DPR : PseudoInst<(outs DPR:$rD), (ins pred:$p),
257258 "@ IMPLICIT_DEF_DPR $rD",
258259 [(set DPR:$rD, (undef))]>;
260 }
259261
260262 def FMRS : ASI<(outs GPR:$dst), (ins SPR:$src),
261263 "fmrs", " $dst, $src",
140140
141141 //Pseudo ops for selection
142142
143 let isImplicitDef = 1 in {
143144 def IDEF_I : PseudoInstAlpha<(outs GPRC:$RA), (ins), ";#idef $RA",
144145 [(set GPRC:$RA, (undef))], s_pseudo>;
145146 def IDEF_F32 : PseudoInstAlpha<(outs F4RC:$RA), (ins), ";#idef $RA",
146147 [(set F4RC:$RA, (undef))], s_pseudo>;
147148 def IDEF_F64 : PseudoInstAlpha<(outs F8RC:$RA), (ins), ";#idef $RA",
148149 [(set F8RC:$RA, (undef))], s_pseudo>;
150 }
149151
150152 def WTF : PseudoInstAlpha<(outs), (ins variable_ops), "#wtf", [], s_pseudo>;
151153
456456 // TODO: support postincrement (reg, imm9) loads+stores - this needs more
457457 // tablegen support
458458
459 let isImplicitDef = 1 in {
459460 def IDEF : PseudoInstIA64<(outs variable_ops), (ins), "// IDEF">;
460461
461462 def IDEF_GR_D : PseudoInstIA64_DAG<(outs GR:$reg), (ins), "// $reg = IDEF",
464465 [(set FP:$reg, (undef))]>;
465466 def IDEF_PR_D : PseudoInstIA64_DAG<(outs PR:$reg), (ins), "// $reg = IDEF",
466467 [(set PR:$reg, (undef))]>;
468 }
467469
468470 def IUSE : PseudoInstIA64<(outs), (ins variable_ops), "// IUSE">;
469471 def ADJUSTCALLSTACKUP : PseudoInstIA64<(outs), (ins variable_ops),
355355 [(callseq_end imm:$amt1, imm:$amt2)]>;
356356 }
357357
358 let isImplicitDef = 1 in
358359 def IMPLICIT_DEF_CPURegs : PseudoInstMips<(outs CPURegs:$dst), (ins),
359360 "!IMPLICIT_DEF $dst",
360361 [(set CPURegs:$dst, (undef))]>;
333333 [(set GPRC:$result,
334334 (PPCdynalloc GPRC:$negsize, iaddr:$fpsi))]>;
335335
336 let isImplicitDef = 1 in {
336337 def IMPLICIT_DEF_GPRC: Pseudo<(outs GPRC:$rD), (ins),
337338 "${:comment}IMPLICIT_DEF_GPRC $rD",
338339 [(set GPRC:$rD, (undef))]>;
342343 def IMPLICIT_DEF_F4 : Pseudo<(outs F4RC:$rD), (ins),
343344 "${:comment} IMPLICIT_DEF_F4 $rD",
344345 [(set F4RC:$rD, (undef))]>;
346 }
345347
346348 // SELECT_CC_* - Used to implement the SELECT_CC DAG operation. Expanded by the
347349 // scheduler into a branch sequence.
211211 "!ADJCALLSTACKUP $amt1",
212212 [(callseq_end imm:$amt1, imm:$amt2)]>;
213213 }
214
215 let isImplicitDef = 1 in {
214216 def IMPLICIT_DEF_Int : Pseudo<(outs IntRegs:$dst), (ins),
215217 "!IMPLICIT_DEF $dst",
216218 [(set IntRegs:$dst, (undef))]>;
218220 [(set FPRegs:$dst, (undef))]>;
219221 def IMPLICIT_DEF_DFP : Pseudo<(outs DFPRegs:$dst), (ins), "!IMPLICIT_DEF $dst",
220222 [(set DFPRegs:$dst, (undef))]>;
223 }
221224
222225 // FpMOVD/FpNEGD/FpABSD - These are lowered to single-precision ops by the
223226 // fpmover pass.
191191 bit isCall = 0; // Is this instruction a call instruction?
192192 bit isLoad = 0; // Is this instruction a load instruction?
193193 bit isStore = 0; // Is this instruction a store instruction?
194 bit isImplicitDef = 0; // Is this instruction an implicit def instruction?
194195 bit isTwoAddress = 0; // Is this a two address instruction?
195196 bit isConvertibleToThreeAddress = 0; // Can this 2-addr instruction promote?
196197 bit isCommutable = 0; // Is this 3 operand instruction commutable?
261261 }
262262 def IMPLICIT_USE : I<0, Pseudo, (outs), (ins variable_ops),
263263 "#IMPLICIT_USE", []>;
264 let isImplicitDef = 1 in {
264265 def IMPLICIT_DEF : I<0, Pseudo, (outs variable_ops), (ins),
265266 "#IMPLICIT_DEF", []>;
266267 def IMPLICIT_DEF_GR8 : I<0, Pseudo, (outs GR8:$dst), (ins),
272273 def IMPLICIT_DEF_GR32 : I<0, Pseudo, (outs GR32:$dst), (ins),
273274 "#IMPLICIT_DEF $dst",
274275 [(set GR32:$dst, (undef))]>;
276 }
275277
276278 // Nop
277279 def NOOP : I<0x90, RawFrm, (outs), (ins), "nop", []>;
1313 //===----------------------------------------------------------------------===//
1414
1515 // Some 'special' instructions
16 let isImplicitDef = 1 in
1617 def IMPLICIT_DEF_VR64 : I<0, Pseudo, (outs VR64:$dst), (ins),
1718 "#IMPLICIT_DEF $dst",
1819 [(set VR64:$dst, (v8i8 (undef)))]>,
4141 // SSE 'Special' Instructions
4242 //===----------------------------------------------------------------------===//
4343
44 let isImplicitDef = 1 in
4445 def IMPLICIT_DEF_VR128 : I<0, Pseudo, (outs VR128:$dst), (ins),
4546 "#IMPLICIT_DEF $dst",
4647 [(set VR128:$dst, (v4f32 (undef)))]>,
7979 // Instruction list...
8080 //
8181
82 let isImplicitDef = 1 in
8283 def IMPLICIT_DEF_GR64 : I<0, Pseudo, (outs GR64:$dst), (ins),
8384 "#IMPLICIT_DEF $dst",
8485 [(set GR64:$dst, (undef))]>;
0 ; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin | not grep IMPLICIT_DEF
1
2 %struct.__sbuf = type { i8*, i32 }
3 %struct.ggBRDF = type { i32 (...)** }
4 %"struct.ggBST" = type { %"struct.ggBSTNode"*, i32 }
5 %"struct.ggBST" = type { %"struct.ggBSTNode"*, i32 }
6 %"struct.ggBST" = type { %"struct.ggBSTNode"*, i32 }
7 %"struct.ggBST" = type { %"struct.ggBSTNode"*, i32 }
8 %"struct.ggBST" = type { %"struct.ggBSTNode"*, i32 }
9 %"struct.ggBSTNode" = type { %"struct.ggBSTNode"*, %"struct.ggBSTNode"*, %struct.ggString, %struct.ggMaterial* }
10 %"struct.ggBSTNode" = type { %"struct.ggBSTNode"*, %"struct.ggBSTNode"*, %struct.ggString, %struct.ggRasterSurfaceTexture* }
11 %"struct.ggBSTNode" = type { %"struct.ggBSTNode"*, %"struct.ggBSTNode"*, %struct.ggString, %struct.ggBRDF* }
12 %"struct.ggBSTNode" = type { %"struct.ggBSTNode"*, %"struct.ggBSTNode"*, %struct.ggString, %struct.ggSpectrum* }
13 %"struct.ggBSTNode" = type { %"struct.ggBSTNode"*, %"struct.ggBSTNode"*, %struct.ggString, %struct.mrObjectRecord* }
14 %"struct.ggDictionary" = type { %"struct.ggBST" }
15 %"struct.ggDictionary" = type { %"struct.ggBST" }
16 %"struct.ggDictionary" = type { %"struct.ggBST" }
17 %"struct.ggDictionary" = type { %"struct.ggBST" }
18 %"struct.ggDictionary" = type { %"struct.ggBST" }
19 %struct.ggHAffineMatrix3 = type { %struct.ggHMatrix3 }
20 %struct.ggHBoxMatrix3 = type { %struct.ggHAffineMatrix3 }
21 %struct.ggHMatrix3 = type { [4 x [4 x double]] }
22 %struct.ggMaterial = type { i32 (...)**, %struct.ggBRDF* }
23 %struct.ggPoint3 = type { [3 x double] }
24 %"struct.ggRGBPixel" = type { [3 x i8], i8 }
25 %"struct.ggRaster >" = type { i32, i32, %"struct.ggRGBPixel"* }
26 %struct.ggRasterSurfaceTexture = type { %"struct.ggRaster >"* }
27 %struct.ggSolidNoise3 = type { i32, [256 x %struct.ggPoint3], [256 x i32] }
28 %struct.ggSpectrum = type { [8 x float] }
29 %struct.ggString = type { %"struct.ggString::StringRep"* }
30 %"struct.ggString::StringRep" = type { i32, i32, [1 x i8] }
31 %"struct.ggTrain" = type { %struct.ggBRDF**, i32, i32 }
32 %struct.mrObjectRecord = type { %struct.ggHBoxMatrix3, %struct.ggHBoxMatrix3, %struct.mrSurfaceList, %struct.ggMaterial*, i32, %struct.ggRasterSurfaceTexture*, %struct.ggBRDF*, i32, i32 }
33 %struct.mrScene = type { %struct.ggSpectrum, %struct.ggSpectrum, %struct.ggBRDF*, %struct.ggBRDF*, %struct.ggBRDF*, i32, double, %"struct.ggDictionary", %"struct.ggDictionary", %"struct.ggDictionary", %"struct.ggDictionary", %"struct.ggDictionary" }
34 %struct.mrSurfaceList = type { %struct.ggBRDF, %"struct.ggTrain" }
35 %"struct.std::__codecvt_abstract_base" = type { %"struct.std::locale::facet" }
36 %"struct.std::basic_ios >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream >"*, i8, i8, %"struct.std::basic_streambuf >"*, %"struct.std::ctype"*, %"struct.std::__codecvt_abstract_base"*, %"struct.std::__codecvt_abstract_base"* }
37 %"struct.std::basic_istream >" = type { i32 (...)**, i32, %"struct.std::basic_ios >" }
38 %"struct.std::basic_ostream >" = type { i32 (...)**, %"struct.std::basic_ios >" }
39 %"struct.std::basic_streambuf >" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"struct.std::locale" }
40 %"struct.std::ctype" = type { %"struct.std::locale::facet", i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }
41 %"struct.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %struct.__sbuf, [8 x %struct.__sbuf], i32, %struct.__sbuf*, %"struct.std::locale" }
42 %"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"struct.std::ios_base"*, i32)*, i32, i32 }
43 %"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
44 %"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
45 %"struct.std::locale::facet" = type { i32 (...)**, i32 }
46 @.str80 = external constant [7 x i8] ; <[7 x i8]*> [#uses=1]
47 @.str81 = external constant [11 x i8] ; <[11 x i8]*> [#uses=1]
48
49 define fastcc void @_ZN7mrScene4ReadERSi(%struct.mrScene* %this, %"struct.std::basic_istream >"* %surfaces) {
50 entry:
51 %tmp6.i.i8288 = invoke i8* @_Znam( i32 12 )
52 to label %_ZN8ggStringC1Ei.exit unwind label %lpad ; [#uses=0]
53
54 _ZN8ggStringC1Ei.exit: ; preds = %entry
55 %tmp6.i.i8995 = invoke i8* @_Znam( i32 12 )
56 to label %_ZN8ggStringC1Ei.exit96 unwind label %lpad3825 ; [#uses=0]
57
58 _ZN8ggStringC1Ei.exit96: ; preds = %_ZN8ggStringC1Ei.exit
59 %tmp6.i.i97103 = invoke i8* @_Znam( i32 12 )
60 to label %_ZN8ggStringC1Ei.exit104 unwind label %lpad3829 ; [#uses=0]
61
62 _ZN8ggStringC1Ei.exit104: ; preds = %_ZN8ggStringC1Ei.exit96
63 %tmp6.i.i105111 = invoke i8* @_Znam( i32 12 )
64 to label %_ZN8ggStringC1Ei.exit112 unwind label %lpad3833 ; [#uses=0]
65
66 _ZN8ggStringC1Ei.exit112: ; preds = %_ZN8ggStringC1Ei.exit104
67 %tmp6.i.i122128 = invoke i8* @_Znam( i32 12 )
68 to label %_ZN8ggStringC1Ei.exit129 unwind label %lpad3837 ; [#uses=0]
69
70 _ZN8ggStringC1Ei.exit129: ; preds = %_ZN8ggStringC1Ei.exit112
71 %tmp6.i.i132138 = invoke i8* @_Znam( i32 12 )
72 to label %_ZN8ggStringC1Ei.exit139 unwind label %lpad3841 ; [#uses=0]
73
74 _ZN8ggStringC1Ei.exit139: ; preds = %_ZN8ggStringC1Ei.exit129
75 %tmp295 = invoke i8* @_Znwm( i32 16 )
76 to label %invcont294 unwind label %lpad3845 ; [#uses=0]
77
78 invcont294: ; preds = %_ZN8ggStringC1Ei.exit139
79 %tmp10.i.i141 = invoke i8* @_Znam( i32 16 )
80 to label %_ZN13mrSurfaceListC1Ev.exit unwind label %lpad3849 ; [#uses=0]
81
82 _ZN13mrSurfaceListC1Ev.exit: ; preds = %invcont294
83 %tmp3.i148 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
84 to label %tmp3.i.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
85
86 tmp3.i.noexc: ; preds = %_ZN13mrSurfaceListC1Ev.exit
87 %tmp15.i149 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
88 to label %tmp15.i.noexc unwind label %lpad3845 ; [#uses=0]
89
90 tmp15.i.noexc: ; preds = %tmp3.i.noexc
91 br i1 false, label %bb308, label %bb.i
92
93 bb.i: ; preds = %tmp15.i.noexc
94 ret void
95
96 bb308: ; preds = %tmp15.i.noexc
97 br i1 false, label %bb3743.preheader, label %bb315
98
99 bb3743.preheader: ; preds = %bb308
100 %tmp16.i3862 = getelementptr %struct.ggPoint3* null, i32 0, i32 0, i32 0 ; [#uses=1]
101 %tmp16.i3859 = getelementptr %struct.ggPoint3* null, i32 0, i32 0, i32 0 ; [#uses=3]
102 br label %bb3743
103
104 bb315: ; preds = %bb308
105 ret void
106
107 bb333: ; preds = %invcont3758, %invcont335
108 %tmp3.i167180 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
109 to label %tmp3.i167.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
110
111 tmp3.i167.noexc: ; preds = %bb333
112 %tmp15.i182 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
113 to label %tmp15.i.noexc181 unwind label %lpad3845 ; [#uses=0]
114
115 tmp15.i.noexc181: ; preds = %tmp3.i167.noexc
116 br i1 false, label %invcont335, label %bb.i178
117
118 bb.i178: ; preds = %tmp15.i.noexc181
119 ret void
120
121 invcont335: ; preds = %tmp15.i.noexc181
122 br i1 false, label %bb3743, label %bb333
123
124 bb345: ; preds = %invcont3758
125 br i1 false, label %bb353, label %bb360
126
127 bb353: ; preds = %bb345
128 %tmp356 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %surfaces, double* null )
129 to label %bb3743 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
130
131 bb360: ; preds = %bb345
132 br i1 false, label %bb368, label %bb374
133
134 bb368: ; preds = %bb360
135 %tmp373 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %surfaces, double* null )
136 to label %bb3743 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
137
138 bb374: ; preds = %bb360
139 br i1 false, label %bb396, label %bb421
140
141 bb396: ; preds = %bb374
142 ret void
143
144 bb421: ; preds = %bb374
145 br i1 false, label %bb429, label %bb530
146
147 bb429: ; preds = %bb421
148 ret void
149
150 bb530: ; preds = %bb421
151 br i1 false, label %bb538, label %bb673
152
153 bb538: ; preds = %bb530
154 ret void
155
156 bb673: ; preds = %bb530
157 br i1 false, label %bb681, label %bb778
158
159 bb681: ; preds = %bb673
160 ret void
161
162 bb778: ; preds = %bb673
163 br i1 false, label %bb786, label %bb891
164
165 bb786: ; preds = %bb778
166 ret void
167
168 bb891: ; preds = %bb778
169 br i1 false, label %bb899, label %bb998
170
171 bb899: ; preds = %bb891
172 ret void
173
174 bb998: ; preds = %bb891
175 br i1 false, label %bb1168, label %bb1190
176
177 bb1168: ; preds = %bb998
178 ret void
179
180 bb1190: ; preds = %bb998
181 br i1 false, label %bb1198, label %bb1220
182
183 bb1198: ; preds = %bb1190
184 ret void
185
186 bb1220: ; preds = %bb1190
187 br i1 false, label %bb1228, label %bb1250
188
189 bb1228: ; preds = %bb1220
190 ret void
191
192 bb1250: ; preds = %bb1220
193 br i1 false, label %bb1258, label %bb1303
194
195 bb1258: ; preds = %bb1250
196 ret void
197
198 bb1303: ; preds = %bb1250
199 br i1 false, label %bb1311, label %bb1366
200
201 bb1311: ; preds = %bb1303
202 ret void
203
204 bb1366: ; preds = %bb1303
205 br i1 false, label %bb1374, label %bb1432
206
207 bb1374: ; preds = %bb1366
208 ret void
209
210 bb1432: ; preds = %bb1366
211 br i1 false, label %bb1440, label %bb1495
212
213 bb1440: ; preds = %bb1432
214 ret void
215
216 bb1495: ; preds = %bb1432
217 br i1 false, label %bb1503, label %bb1561
218
219 bb1503: ; preds = %bb1495
220 ret void
221
222 bb1561: ; preds = %bb1495
223 br i1 false, label %bb1569, label %bb1624
224
225 bb1569: ; preds = %bb1561
226 ret void
227
228 bb1624: ; preds = %bb1561
229 br i1 false, label %bb1632, label %bb1654
230
231 bb1632: ; preds = %bb1624
232 store double 0.000000e+00, double* %tmp16.i3859, align 8
233 %tmp3.i38383852 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
234 to label %tmp3.i3838.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
235
236 tmp3.i3838.noexc: ; preds = %bb1632
237 %tmp15.i38473853 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
238 to label %tmp15.i3847.noexc unwind label %lpad3845 ; [#uses=0]
239
240 tmp15.i3847.noexc: ; preds = %tmp3.i3838.noexc
241 br i1 false, label %invcont1634, label %bb.i3850
242
243 bb.i3850: ; preds = %tmp15.i3847.noexc
244 ret void
245
246 invcont1634: ; preds = %tmp15.i3847.noexc
247 %tmp3.i38173831 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
248 to label %tmp3.i3817.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
249
250 tmp3.i3817.noexc: ; preds = %invcont1634
251 %tmp15.i38263832 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
252 to label %tmp15.i3826.noexc unwind label %lpad3845 ; [#uses=0]
253
254 tmp15.i3826.noexc: ; preds = %tmp3.i3817.noexc
255 br i1 false, label %invcont1636, label %bb.i3829
256
257 bb.i3829: ; preds = %tmp15.i3826.noexc
258 ret void
259
260 invcont1636: ; preds = %tmp15.i3826.noexc
261 %tmp8.i38083811 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %surfaces, double* %tmp16.i3862 )
262 to label %tmp8.i3808.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=1]
263
264 tmp8.i3808.noexc: ; preds = %invcont1636
265 %tmp9.i38093812 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp8.i38083811, double* null )
266 to label %tmp9.i3809.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=1]
267
268 tmp9.i3809.noexc: ; preds = %tmp8.i3808.noexc
269 %tmp10.i38103813 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp9.i38093812, double* null )
270 to label %invcont1638 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
271
272 invcont1638: ; preds = %tmp9.i3809.noexc
273 %tmp8.i37983801 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %surfaces, double* %tmp16.i3859 )
274 to label %tmp8.i3798.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=1]
275
276 tmp8.i3798.noexc: ; preds = %invcont1638
277 %tmp9.i37993802 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp8.i37983801, double* null )
278 to label %tmp9.i3799.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=1]
279
280 tmp9.i3799.noexc: ; preds = %tmp8.i3798.noexc
281 %tmp10.i38003803 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp9.i37993802, double* null )
282 to label %invcont1640 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
283
284 invcont1640: ; preds = %tmp9.i3799.noexc
285 %tmp3.i3778 = load double* %tmp16.i3859, align 8 ; [#uses=1]
286 %tmp1643 = invoke i8* @_Znwm( i32 76 )
287 to label %invcont1642 unwind label %lpad3845 ; [#uses=0]
288
289 invcont1642: ; preds = %invcont1640
290 %tmp18.i3770 = sub double %tmp3.i3778, 0.000000e+00 ; [#uses=0]
291 invoke fastcc void @_ZN7mrScene9AddObjectEP9mrSurfaceRK8ggStringS4_i( %struct.mrScene* %this, %struct.ggBRDF* null, %struct.ggString* null, %struct.ggString* null, i32 0 )
292 to label %bb3743 unwind label %lpad3845
293
294 bb1654: ; preds = %bb1624
295 br i1 false, label %bb1662, label %bb1693
296
297 bb1662: ; preds = %bb1654
298 %tmp3.i37143728 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
299 to label %tmp3.i3714.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
300
301 tmp3.i3714.noexc: ; preds = %bb1662
302 %tmp15.i37233729 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
303 to label %tmp15.i3723.noexc unwind label %lpad3845 ; [#uses=0]
304
305 tmp15.i3723.noexc: ; preds = %tmp3.i3714.noexc
306 ret void
307
308 bb1693: ; preds = %bb1654
309 br i1 false, label %bb1701, label %bb1745
310
311 bb1701: ; preds = %bb1693
312 %tmp3.i36493663 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
313 to label %tmp3.i3649.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
314
315 tmp3.i3649.noexc: ; preds = %bb1701
316 ret void
317
318 bb1745: ; preds = %bb1693
319 br i1 false, label %bb1753, label %bb1797
320
321 bb1753: ; preds = %bb1745
322 ret void
323
324 bb1797: ; preds = %bb1745
325 br i1 false, label %bb1805, label %bb1847
326
327 bb1805: ; preds = %bb1797
328 ret void
329
330 bb1847: ; preds = %bb1797
331 br i1 false, label %bb1855, label %bb1897
332
333 bb1855: ; preds = %bb1847
334 %tmp3.i34633477 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
335 to label %tmp3.i3463.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
336
337 tmp3.i3463.noexc: ; preds = %bb1855
338 %tmp15.i34723478 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
339 to label %tmp15.i3472.noexc unwind label %lpad3845 ; [#uses=0]
340
341 tmp15.i3472.noexc: ; preds = %tmp3.i3463.noexc
342 br i1 false, label %invcont1857, label %bb.i3475
343
344 bb.i3475: ; preds = %tmp15.i3472.noexc
345 invoke fastcc void @_ZN8ggStringaSEPKc( %struct.ggString* null, i8* null )
346 to label %invcont1857 unwind label %lpad3845
347
348 invcont1857: ; preds = %bb.i3475, %tmp15.i3472.noexc
349 %tmp1860 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %surfaces, double* null )
350 to label %invcont1859 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=1]
351
352 invcont1859: ; preds = %invcont1857
353 %tmp1862 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp1860, double* null )
354 to label %invcont1861 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=1]
355
356 invcont1861: ; preds = %invcont1859
357 %tmp1864 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp1862, double* null )
358 to label %invcont1863 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=1]
359
360 invcont1863: ; preds = %invcont1861
361 %tmp1866 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp1864, double* null )
362 to label %invcont1865 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=1]
363
364 invcont1865: ; preds = %invcont1863
365 %tmp1868 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp1866, double* null )
366 to label %invcont1867 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
367
368 invcont1867: ; preds = %invcont1865
369 %tmp1881 = invoke i8 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv( %"struct.std::basic_ios >"* null ) zeroext
370 to label %invcont1880 unwind label %lpad3845 ; [#uses=0]
371
372 invcont1880: ; preds = %invcont1867
373 %tmp1883 = invoke i8* @_Znwm( i32 24 )
374 to label %invcont1882 unwind label %lpad3845 ; [#uses=0]
375
376 invcont1882: ; preds = %invcont1880
377 invoke fastcc void @_ZN7mrScene9AddObjectEP9mrSurfaceRK8ggStringS4_i( %struct.mrScene* %this, %struct.ggBRDF* null, %struct.ggString* null, %struct.ggString* null, i32 0 )
378 to label %bb3743 unwind label %lpad3845
379
380 bb1897: ; preds = %bb1847
381 br i1 false, label %bb1905, label %bb1947
382
383 bb1905: ; preds = %bb1897
384 ret void
385
386 bb1947: ; preds = %bb1897
387 br i1 false, label %bb1955, label %bb2000
388
389 bb1955: ; preds = %bb1947
390 ret void
391
392 bb2000: ; preds = %bb1947
393 br i1 false, label %bb2008, label %bb2053
394
395 bb2008: ; preds = %bb2000
396 ret void
397
398 bb2053: ; preds = %bb2000
399 br i1 false, label %bb2061, label %bb2106
400
401 bb2061: ; preds = %bb2053
402 %tmp3.i32433257 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
403 to label %tmp3.i3243.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
404
405 tmp3.i3243.noexc: ; preds = %bb2061
406 %tmp15.i32523258 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
407 to label %bb.i3255 unwind label %lpad3845 ; [#uses=0]
408
409 bb.i3255: ; preds = %tmp3.i3243.noexc
410 invoke fastcc void @_ZN8ggStringaSEPKc( %struct.ggString* null, i8* null )
411 to label %invcont2063 unwind label %lpad3845
412
413 invcont2063: ; preds = %bb.i3255
414 ret void
415
416 bb2106: ; preds = %bb2053
417 %tmp7.i3214 = call i32 @strcmp( i8* %tmp5.i161, i8* getelementptr ([7 x i8]* @.str80, i32 0, i32 0) ) nounwind readonly ; [#uses=0]
418 br i1 false, label %bb2114, label %bb2136
419
420 bb2114: ; preds = %bb2106
421 %tmp3.i31923206 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
422 to label %tmp3.i3192.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
423
424 tmp3.i3192.noexc: ; preds = %bb2114
425 %tmp15.i32013207 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
426 to label %tmp15.i3201.noexc unwind label %lpad3845 ; [#uses=0]
427
428 tmp15.i3201.noexc: ; preds = %tmp3.i3192.noexc
429 br i1 false, label %invcont2116, label %bb.i3204
430
431 bb.i3204: ; preds = %tmp15.i3201.noexc
432 ret void
433
434 invcont2116: ; preds = %tmp15.i3201.noexc
435 %tmp3.i31713185 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
436 to label %tmp3.i3171.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
437
438 tmp3.i3171.noexc: ; preds = %invcont2116
439 %tmp15.i31803186 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
440 to label %tmp15.i3180.noexc unwind label %lpad3845 ; [#uses=0]
441
442 tmp15.i3180.noexc: ; preds = %tmp3.i3171.noexc
443 br i1 false, label %invcont2118, label %bb.i3183
444
445 bb.i3183: ; preds = %tmp15.i3180.noexc
446 ret void
447
448 invcont2118: ; preds = %tmp15.i3180.noexc
449 %tmp8.i31623165 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %surfaces, double* null )
450 to label %tmp8.i3162.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=1]
451
452 tmp8.i3162.noexc: ; preds = %invcont2118
453 %tmp9.i31633166 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp8.i31623165, double* null )
454 to label %tmp9.i3163.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=1]
455
456 tmp9.i3163.noexc: ; preds = %tmp8.i3162.noexc
457 %tmp10.i31643167 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp9.i31633166, double* null )
458 to label %invcont2120 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
459
460 invcont2120: ; preds = %tmp9.i3163.noexc
461 %tmp2123 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %surfaces, double* null )
462 to label %invcont2122 unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
463
464 invcont2122: ; preds = %invcont2120
465 %tmp2125 = invoke i8* @_Znwm( i32 36 )
466 to label %invcont2124 unwind label %lpad3845 ; [#uses=0]
467
468 invcont2124: ; preds = %invcont2122
469 invoke fastcc void @_ZN7mrScene9AddObjectEP9mrSurfaceRK8ggStringS4_i( %struct.mrScene* %this, %struct.ggBRDF* null, %struct.ggString* null, %struct.ggString* null, i32 0 )
470 to label %bb3743 unwind label %lpad3845
471
472 bb2136: ; preds = %bb2106
473 %tmp7.i3128 = call i32 @strcmp( i8* %tmp5.i161, i8* getelementptr ([11 x i8]* @.str81, i32 0, i32 0) ) nounwind readonly ; [#uses=0]
474 br i1 false, label %bb2144, label %bb3336
475
476 bb2144: ; preds = %bb2136
477 %tmp6.i.i31173123 = invoke i8* @_Znam( i32 12 )
478 to label %_ZN8ggStringC1Ei.exit3124 unwind label %lpad3845 ; [#uses=0]
479
480 _ZN8ggStringC1Ei.exit3124: ; preds = %bb2144
481 %tmp3.i30983112 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
482 to label %tmp3.i3098.noexc unwind label %lpad3921 ; <%"struct.std::basic_istream >"*> [#uses=0]
483
484 tmp3.i3098.noexc: ; preds = %_ZN8ggStringC1Ei.exit3124
485 %tmp15.i31073113 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
486 to label %tmp15.i3107.noexc unwind label %lpad3921 ; [#uses=0]
487
488 tmp15.i3107.noexc: ; preds = %tmp3.i3098.noexc
489 br i1 false, label %invcont2147, label %bb.i3110
490
491 bb.i3110: ; preds = %tmp15.i3107.noexc
492 ret void
493
494 invcont2147: ; preds = %tmp15.i3107.noexc
495 %tmp2161 = invoke i8 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv( %"struct.std::basic_ios >"* null ) zeroext
496 to label %invcont2160 unwind label %lpad3921 ; [#uses=0]
497
498 invcont2160: ; preds = %invcont2147
499 %tmp4.i30933094 = invoke fastcc %struct.ggSpectrum* @_ZN5ggBSTI10ggSpectrumE4findERK8ggString3( %"struct.ggBSTNode"* null, %struct.ggString* null )
500 to label %invcont2164 unwind label %lpad3921 ; <%struct.ggSpectrum*> [#uses=0]
501
502 invcont2164: ; preds = %invcont2160
503 br i1 false, label %bb2170, label %bb2181
504
505 bb2170: ; preds = %invcont2164
506 ret void
507
508 bb2181: ; preds = %invcont2164
509 invoke fastcc void @_ZN8ggStringD1Ev( %struct.ggString* null )
510 to label %bb3743 unwind label %lpad3845
511
512 bb3336: ; preds = %bb2136
513 br i1 false, label %bb3344, label %bb3734
514
515 bb3344: ; preds = %bb3336
516 %tmp6.i.i773779 = invoke i8* @_Znam( i32 12 )
517 to label %_ZN8ggStringC1Ei.exit780 unwind label %lpad3845 ; [#uses=0]
518
519 _ZN8ggStringC1Ei.exit780: ; preds = %bb3344
520 %tmp6.i.i765771 = invoke i8* @_Znam( i32 12 )
521 to label %_ZN8ggStringC1Ei.exit772 unwind label %lpad4025 ; [#uses=0]
522
523 _ZN8ggStringC1Ei.exit772: ; preds = %_ZN8ggStringC1Ei.exit780
524 %tmp3.i746760 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
525 to label %tmp3.i746.noexc unwind label %lpad4029 ; <%"struct.std::basic_istream >"*> [#uses=0]
526
527 tmp3.i746.noexc: ; preds = %_ZN8ggStringC1Ei.exit772
528 %tmp15.i755761 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
529 to label %tmp15.i755.noexc unwind label %lpad4029 ; [#uses=0]
530
531 tmp15.i755.noexc: ; preds = %tmp3.i746.noexc
532 br i1 false, label %invcont3348, label %bb.i758
533
534 bb.i758: ; preds = %tmp15.i755.noexc
535 ret void
536
537 invcont3348: ; preds = %tmp15.i755.noexc
538 %tmp3.i726740 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
539 to label %tmp3.i726.noexc unwind label %lpad4029 ; <%"struct.std::basic_istream >"*> [#uses=0]
540
541 tmp3.i726.noexc: ; preds = %invcont3348
542 %tmp15.i735741 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
543 to label %tmp15.i735.noexc unwind label %lpad4029 ; [#uses=0]
544
545 tmp15.i735.noexc: ; preds = %tmp3.i726.noexc
546 br i1 false, label %bb3458, label %bb.i738
547
548 bb.i738: ; preds = %tmp15.i735.noexc
549 ret void
550
551 bb3458: ; preds = %tmp15.i735.noexc
552 br i1 false, label %bb3466, label %bb3491
553
554 bb3466: ; preds = %bb3458
555 %tmp3469 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %surfaces, double* null )
556 to label %invcont3468 unwind label %lpad4029 ; <%"struct.std::basic_istream >"*> [#uses=1]
557
558 invcont3468: ; preds = %bb3466
559 %tmp3471 = invoke %"struct.std::basic_istream >"* @_ZNSirsERd( %"struct.std::basic_istream >"* %tmp3469, double* null )
560 to label %invcont3470 unwind label %lpad4029 ; <%"struct.std::basic_istream >"*> [#uses=1]
561
562 invcont3470: ; preds = %invcont3468
563 %tmp3473 = invoke %"struct.std::basic_istream >"* @_ZNSirsERi( %"struct.std::basic_istream >"* %tmp3471, i32* null )
564 to label %invcont3472 unwind label %lpad4029 ; <%"struct.std::basic_istream >"*> [#uses=0]
565
566 invcont3472: ; preds = %invcont3470
567 %tmp3475 = invoke i8* @_Znwm( i32 7196 )
568 to label %invcont3474 unwind label %lpad4029 ; [#uses=1]
569
570 invcont3474: ; preds = %invcont3472
571 invoke fastcc void @_ZN13ggSolidNoise3C1Ev( %struct.ggSolidNoise3* null )
572 to label %_ZN22ggCoverageSolidTextureC1Eddi.exit unwind label %lpad4045
573
574 _ZN22ggCoverageSolidTextureC1Eddi.exit: ; preds = %invcont3474
575 %tmp34823483 = bitcast i8* %tmp3475 to %struct.ggBRDF* ; <%struct.ggBRDF*> [#uses=2]
576 invoke fastcc void @_ZN5ggBSTI14ggSolidTextureE17InsertIntoSubtreeERK8ggStringPS0_RP9ggBSTNodeIS0_E( %"struct.ggBST"* null, %struct.ggString* null, %struct.ggBRDF* %tmp34823483, %"struct.ggBSTNode"** null )
577 to label %bb3662 unwind label %lpad4029
578
579 bb3491: ; preds = %bb3458
580 ret void
581
582 bb3662: ; preds = %_ZN22ggCoverageSolidTextureC1Eddi.exit
583 invoke fastcc void @_ZN8ggStringD1Ev( %struct.ggString* null )
584 to label %invcont3663 unwind label %lpad4025
585
586 invcont3663: ; preds = %bb3662
587 invoke fastcc void @_ZN8ggStringD1Ev( %struct.ggString* null )
588 to label %bb3743 unwind label %lpad3845
589
590 bb3734: ; preds = %bb3336
591 ret void
592
593 bb3743: ; preds = %invcont3663, %bb2181, %invcont2124, %invcont1882, %invcont1642, %bb368, %bb353, %invcont335, %bb3743.preheader
594 %tex1.3 = phi %struct.ggBRDF* [ undef, %bb3743.preheader ], [ %tex1.3, %bb368 ], [ %tex1.3, %invcont1642 ], [ %tex1.3, %invcont1882 ], [ %tex1.3, %invcont2124 ], [ %tex1.3, %bb2181 ], [ %tex1.3, %invcont335 ], [ %tmp34823483, %invcont3663 ], [ %tex1.3, %bb353 ] ; <%struct.ggBRDF*> [#uses=7]
595 %tmp3.i312325 = invoke %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_( %"struct.std::basic_istream >"* %surfaces, i8* null )
596 to label %tmp3.i312.noexc unwind label %lpad3845 ; <%"struct.std::basic_istream >"*> [#uses=0]
597
598 tmp3.i312.noexc: ; preds = %bb3743
599 %tmp15.i327 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
600 to label %tmp15.i.noexc326 unwind label %lpad3845 ; [#uses=0]
601
602 tmp15.i.noexc326: ; preds = %tmp3.i312.noexc
603 br i1 false, label %invcont3745, label %bb.i323
604
605 bb.i323: ; preds = %tmp15.i.noexc326
606 ret void
607
608 invcont3745: ; preds = %tmp15.i.noexc326
609 %tmp3759 = invoke i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv( %"struct.std::basic_ios >"* null )
610 to label %invcont3758 unwind label %lpad3845 ; [#uses=0]
611
612 invcont3758: ; preds = %invcont3745
613 %tmp5.i161 = getelementptr %"struct.ggString::StringRep"* null, i32 0, i32 2, i32 0 ; [#uses=2]
614 br i1 false, label %bb333, label %bb345
615
616 lpad: ; preds = %entry
617 ret void
618
619 lpad3825: ; preds = %_ZN8ggStringC1Ei.exit
620 ret void
621
622 lpad3829: ; preds = %_ZN8ggStringC1Ei.exit96
623 ret void
624
625 lpad3833: ; preds = %_ZN8ggStringC1Ei.exit104
626 ret void
627
628 lpad3837: ; preds = %_ZN8ggStringC1Ei.exit112
629 ret void
630
631 lpad3841: ; preds = %_ZN8ggStringC1Ei.exit129
632 ret void
633
634 lpad3845: ; preds = %invcont3745, %tmp3.i312.noexc, %bb3743, %invcont3663, %bb3344, %bb2181, %bb2144, %invcont2124, %invcont2122, %invcont2120, %tmp9.i3163.noexc, %tmp8.i3162.noexc, %invcont2118, %tmp3.i3171.noexc, %invcont2116, %tmp3.i3192.noexc, %bb2114, %bb.i3255, %tmp3.i3243.noexc, %bb2061, %invcont1882, %invcont1880, %invcont1867, %invcont1865, %invcont1863, %invcont1861, %invcont1859, %invcont1857, %bb.i3475, %tmp3.i3463.noexc, %bb1855, %bb1701, %tmp3.i3714.noexc, %bb1662, %invcont1642, %invcont1640, %tmp9.i3799.noexc, %tmp8.i3798.noexc, %invcont1638, %tmp9.i3809.noexc, %tmp8.i3808.noexc, %invcont1636, %tmp3.i3817.noexc, %invcont1634, %tmp3.i3838.noexc, %bb1632, %bb368, %bb353, %tmp3.i167.noexc, %bb333, %tmp3.i.noexc, %_ZN13mrSurfaceListC1Ev.exit, %_ZN8ggStringC1Ei.exit139
635 ret void
636
637 lpad3849: ; preds = %invcont294
638 ret void
639
640 lpad3921: ; preds = %invcont2160, %invcont2147, %tmp3.i3098.noexc, %_ZN8ggStringC1Ei.exit3124
641 ret void
642
643 lpad4025: ; preds = %bb3662, %_ZN8ggStringC1Ei.exit780
644 ret void
645
646 lpad4029: ; preds = %_ZN22ggCoverageSolidTextureC1Eddi.exit, %invcont3472, %invcont3470, %invcont3468, %bb3466, %tmp3.i726.noexc, %invcont3348, %tmp3.i746.noexc, %_ZN8ggStringC1Ei.exit772
647 ret void
648
649 lpad4045: ; preds = %invcont3474
650 ret void
651 }
652
653 declare fastcc void @_ZN8ggStringD1Ev(%struct.ggString*)
654
655 declare i8* @_Znam(i32)
656
657 declare fastcc void @_ZN8ggStringaSEPKc(%struct.ggString*, i8*)
658
659 declare i32 @strcmp(i8*, i8*) nounwind readonly
660
661 declare %"struct.std::basic_istream >"* @_ZNSirsERi(%"struct.std::basic_istream >"*, i32*)
662
663 declare i8* @_Znwm(i32)
664
665 declare i8* @_ZNKSt9basic_iosIcSt11char_traitsIcEEcvPvEv(%"struct.std::basic_ios >"*)
666
667 declare %"struct.std::basic_istream >"* @_ZNSirsERd(%"struct.std::basic_istream >"*, double*)
668
669 declare %"struct.std::basic_istream >"* @_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_PS3_(%"struct.std::basic_istream >"*, i8*)
670
671 declare fastcc void @_ZN13ggSolidNoise3C1Ev(%struct.ggSolidNoise3*)
672
673 declare i8 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv(%"struct.std::basic_ios >"*) zeroext
674
675 declare fastcc %struct.ggSpectrum* @_ZN5ggBSTI10ggSpectrumE4findERK8ggString3(%"struct.ggBSTNode"*, %struct.ggString*)
676
677 declare fastcc void @_ZN5ggBSTI14ggSolidTextureE17InsertIntoSubtreeERK8ggStringPS0_RP9ggBSTNodeIS0_E(%"struct.ggBST"*, %struct.ggString*, %struct.ggBRDF*, %"struct.ggBSTNode"**)
678
679 declare fastcc void @_ZN7mrScene9AddObjectEP9mrSurfaceRK8ggStringS4_i(%struct.mrScene*, %struct.ggBRDF*, %struct.ggString*, %struct.ggString*, i32)