lib: fix precision of test_curl
[nit.git] / c_src / global._sep.c
1 /* This C file is generated by NIT to compile module global. */
2 #include "global._sep.h"
3 static const char LOCATE_global___ToolContext___global_callgraph[] = "global::ToolContext::global_callgraph";
4 val_t global___ToolContext___global_callgraph(val_t p0){
5 struct {struct stack_frame_t me;} fra;
6 val_t REGB0;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_global;
10 fra.me.line = 44;
11 fra.me.meth = LOCATE_global___ToolContext___global_callgraph;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 1;
14 fra.me.nitni_local_ref_head = NULL;
15 fra.me.REG[0] = NIT_NULL;
16 fra.me.REG[0] = p0;
17 /* global/global.nit:44 */
18 REGB0 = TAG_Bool(ATTR_global___ToolContext____global_callgraph(fra.me.REG[0])!=NIT_NULL);
19 if (UNTAG_Bool(REGB0)) {
20 } else {
21 nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_global, 44);
22 }
23 fra.me.REG[0] = ATTR_global___ToolContext____global_callgraph(fra.me.REG[0]);
24 stack_frame_head = fra.me.prev;
25 return fra.me.REG[0];
26 }
27 static const char LOCATE_global___ToolContext___global_callgraph__eq[] = "global::ToolContext::global_callgraph=";
28 void global___ToolContext___global_callgraph__eq(val_t p0, val_t p1){
29 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
30 val_t tmp;
31 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
32 fra.me.file = LOCATE_global;
33 fra.me.line = 44;
34 fra.me.meth = LOCATE_global___ToolContext___global_callgraph__eq;
35 fra.me.has_broke = 0;
36 fra.me.REG_size = 2;
37 fra.me.nitni_local_ref_head = NULL;
38 fra.me.REG[0] = NIT_NULL;
39 fra.me.REG[1] = NIT_NULL;
40 fra.me.REG[0] = p0;
41 fra.me.REG[1] = p1;
42 /* global/global.nit:44 */
43 ATTR_global___ToolContext____global_callgraph(fra.me.REG[0]) = fra.me.REG[1];
44 stack_frame_head = fra.me.prev;
45 return;
46 }
47 static const char LOCATE_global___ToolContext___opt_global[] = "global::ToolContext::opt_global";
48 val_t global___ToolContext___opt_global(val_t p0){
49 struct {struct stack_frame_t me;} fra;
50 val_t REGB0;
51 val_t tmp;
52 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
53 fra.me.file = LOCATE_global;
54 fra.me.line = 46;
55 fra.me.meth = LOCATE_global___ToolContext___opt_global;
56 fra.me.has_broke = 0;
57 fra.me.REG_size = 1;
58 fra.me.nitni_local_ref_head = NULL;
59 fra.me.REG[0] = NIT_NULL;
60 fra.me.REG[0] = p0;
61 /* global/global.nit:46 */
62 REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global(fra.me.REG[0])!=NIT_NULL);
63 if (UNTAG_Bool(REGB0)) {
64 } else {
65 nit_abort("Uninitialized attribute %s", "_opt_global", LOCATE_global, 46);
66 }
67 fra.me.REG[0] = ATTR_global___ToolContext____opt_global(fra.me.REG[0]);
68 stack_frame_head = fra.me.prev;
69 return fra.me.REG[0];
70 }
71 static const char LOCATE_global___ToolContext___opt_global_no_STF_opt[] = "global::ToolContext::opt_global_no_STF_opt";
72 val_t global___ToolContext___opt_global_no_STF_opt(val_t p0){
73 struct {struct stack_frame_t me;} fra;
74 val_t REGB0;
75 val_t tmp;
76 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
77 fra.me.file = LOCATE_global;
78 fra.me.line = 47;
79 fra.me.meth = LOCATE_global___ToolContext___opt_global_no_STF_opt;
80 fra.me.has_broke = 0;
81 fra.me.REG_size = 1;
82 fra.me.nitni_local_ref_head = NULL;
83 fra.me.REG[0] = NIT_NULL;
84 fra.me.REG[0] = p0;
85 /* global/global.nit:47 */
86 REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_STF_opt(fra.me.REG[0])!=NIT_NULL);
87 if (UNTAG_Bool(REGB0)) {
88 } else {
89 nit_abort("Uninitialized attribute %s", "_opt_global_no_STF_opt", LOCATE_global, 47);
90 }
91 fra.me.REG[0] = ATTR_global___ToolContext____opt_global_no_STF_opt(fra.me.REG[0]);
92 stack_frame_head = fra.me.prev;
93 return fra.me.REG[0];
94 }
95 static const char LOCATE_global___ToolContext___opt_global_no_DMR_opt[] = "global::ToolContext::opt_global_no_DMR_opt";
96 val_t global___ToolContext___opt_global_no_DMR_opt(val_t p0){
97 struct {struct stack_frame_t me;} fra;
98 val_t REGB0;
99 val_t tmp;
100 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
101 fra.me.file = LOCATE_global;
102 fra.me.line = 48;
103 fra.me.meth = LOCATE_global___ToolContext___opt_global_no_DMR_opt;
104 fra.me.has_broke = 0;
105 fra.me.REG_size = 1;
106 fra.me.nitni_local_ref_head = NULL;
107 fra.me.REG[0] = NIT_NULL;
108 fra.me.REG[0] = p0;
109 /* global/global.nit:48 */
110 REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_DMR_opt(fra.me.REG[0])!=NIT_NULL);
111 if (UNTAG_Bool(REGB0)) {
112 } else {
113 nit_abort("Uninitialized attribute %s", "_opt_global_no_DMR_opt", LOCATE_global, 48);
114 }
115 fra.me.REG[0] = ATTR_global___ToolContext____opt_global_no_DMR_opt(fra.me.REG[0]);
116 stack_frame_head = fra.me.prev;
117 return fra.me.REG[0];
118 }
119 static const char LOCATE_global___ToolContext___opt_global_no_inline_get_set[] = "global::ToolContext::opt_global_no_inline_get_set";
120 val_t global___ToolContext___opt_global_no_inline_get_set(val_t p0){
121 struct {struct stack_frame_t me;} fra;
122 val_t REGB0;
123 val_t tmp;
124 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
125 fra.me.file = LOCATE_global;
126 fra.me.line = 49;
127 fra.me.meth = LOCATE_global___ToolContext___opt_global_no_inline_get_set;
128 fra.me.has_broke = 0;
129 fra.me.REG_size = 1;
130 fra.me.nitni_local_ref_head = NULL;
131 fra.me.REG[0] = NIT_NULL;
132 fra.me.REG[0] = p0;
133 /* global/global.nit:49 */
134 REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_inline_get_set(fra.me.REG[0])!=NIT_NULL);
135 if (UNTAG_Bool(REGB0)) {
136 } else {
137 nit_abort("Uninitialized attribute %s", "_opt_global_no_inline_get_set", LOCATE_global, 49);
138 }
139 fra.me.REG[0] = ATTR_global___ToolContext____opt_global_no_inline_get_set(fra.me.REG[0]);
140 stack_frame_head = fra.me.prev;
141 return fra.me.REG[0];
142 }
143 static const char LOCATE_global___ToolContext___opt_global_no_out_of_init_get_test_opt[] = "global::ToolContext::opt_global_no_out_of_init_get_test_opt";
144 val_t global___ToolContext___opt_global_no_out_of_init_get_test_opt(val_t p0){
145 struct {struct stack_frame_t me;} fra;
146 val_t REGB0;
147 val_t tmp;
148 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
149 fra.me.file = LOCATE_global;
150 fra.me.line = 50;
151 fra.me.meth = LOCATE_global___ToolContext___opt_global_no_out_of_init_get_test_opt;
152 fra.me.has_broke = 0;
153 fra.me.REG_size = 1;
154 fra.me.nitni_local_ref_head = NULL;
155 fra.me.REG[0] = NIT_NULL;
156 fra.me.REG[0] = p0;
157 /* global/global.nit:50 */
158 REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0])!=NIT_NULL);
159 if (UNTAG_Bool(REGB0)) {
160 } else {
161 nit_abort("Uninitialized attribute %s", "_opt_global_no_out_of_init_get_test_opt", LOCATE_global, 50);
162 }
163 fra.me.REG[0] = ATTR_global___ToolContext____opt_global_no_out_of_init_get_test_opt(fra.me.REG[0]);
164 stack_frame_head = fra.me.prev;
165 return fra.me.REG[0];
166 }
167 static const char LOCATE_global___ToolContext___opt_global_no_RFIMA[] = "global::ToolContext::opt_global_no_RFIMA";
168 val_t global___ToolContext___opt_global_no_RFIMA(val_t p0){
169 struct {struct stack_frame_t me;} fra;
170 val_t REGB0;
171 val_t tmp;
172 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
173 fra.me.file = LOCATE_global;
174 fra.me.line = 51;
175 fra.me.meth = LOCATE_global___ToolContext___opt_global_no_RFIMA;
176 fra.me.has_broke = 0;
177 fra.me.REG_size = 1;
178 fra.me.nitni_local_ref_head = NULL;
179 fra.me.REG[0] = NIT_NULL;
180 fra.me.REG[0] = p0;
181 /* global/global.nit:51 */
182 REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_no_RFIMA(fra.me.REG[0])!=NIT_NULL);
183 if (UNTAG_Bool(REGB0)) {
184 } else {
185 nit_abort("Uninitialized attribute %s", "_opt_global_no_RFIMA", LOCATE_global, 51);
186 }
187 fra.me.REG[0] = ATTR_global___ToolContext____opt_global_no_RFIMA(fra.me.REG[0]);
188 stack_frame_head = fra.me.prev;
189 return fra.me.REG[0];
190 }
191 static const char LOCATE_global___ToolContext___opt_global_callgraph[] = "global::ToolContext::opt_global_callgraph";
192 val_t global___ToolContext___opt_global_callgraph(val_t p0){
193 struct {struct stack_frame_t me;} fra;
194 val_t REGB0;
195 val_t tmp;
196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
197 fra.me.file = LOCATE_global;
198 fra.me.line = 52;
199 fra.me.meth = LOCATE_global___ToolContext___opt_global_callgraph;
200 fra.me.has_broke = 0;
201 fra.me.REG_size = 1;
202 fra.me.nitni_local_ref_head = NULL;
203 fra.me.REG[0] = NIT_NULL;
204 fra.me.REG[0] = p0;
205 /* global/global.nit:52 */
206 REGB0 = TAG_Bool(ATTR_global___ToolContext____opt_global_callgraph(fra.me.REG[0])!=NIT_NULL);
207 if (UNTAG_Bool(REGB0)) {
208 } else {
209 nit_abort("Uninitialized attribute %s", "_opt_global_callgraph", LOCATE_global, 52);
210 }
211 fra.me.REG[0] = ATTR_global___ToolContext____opt_global_callgraph(fra.me.REG[0]);
212 stack_frame_head = fra.me.prev;
213 return fra.me.REG[0];
214 }
215 static const char LOCATE_global___ToolContext___init[] = "global::ToolContext::(toolcontext::ToolContext::init)";
216 void global___ToolContext___init(val_t p0, int* init_table){
217 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_toolcontext___ToolContext].i;
218 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
219 val_t REGB0;
220 val_t tmp;
221 if (init_table[itpos0]) return;
222 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
223 fra.me.file = LOCATE_global;
224 fra.me.line = 54;
225 fra.me.meth = LOCATE_global___ToolContext___init;
226 fra.me.has_broke = 0;
227 fra.me.REG_size = 4;
228 fra.me.nitni_local_ref_head = NULL;
229 fra.me.REG[0] = NIT_NULL;
230 fra.me.REG[1] = NIT_NULL;
231 fra.me.REG[2] = NIT_NULL;
232 fra.me.REG[3] = NIT_NULL;
233 fra.me.REG[0] = p0;
234 /* global/global.nit:54 */
235 fra.me.REG[1] = fra.me.REG[0];
236 /* global/global.nit:56 */
237 CALL_SUPER_global___ToolContext___init(fra.me.REG[0])(fra.me.REG[0], init_table);
238 /* global/global.nit:57 */
239 fra.me.REG[0] = CALL_toolcontext___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
240 REGB0 = TAG_Int(6);
241 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
242 fra.me.REG[3] = CALL_global___ToolContext___opt_global(fra.me.REG[1])(fra.me.REG[1]);
243 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
244 fra.me.REG[3] = CALL_global___ToolContext___opt_global_no_STF_opt(fra.me.REG[1])(fra.me.REG[1]);
245 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
246 fra.me.REG[3] = CALL_global___ToolContext___opt_global_no_DMR_opt(fra.me.REG[1])(fra.me.REG[1]);
247 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
248 fra.me.REG[3] = CALL_global___ToolContext___opt_global_callgraph(fra.me.REG[1])(fra.me.REG[1]);
249 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
250 fra.me.REG[3] = CALL_global___ToolContext___opt_global_no_inline_get_set(fra.me.REG[1])(fra.me.REG[1]);
251 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
252 fra.me.REG[3] = CALL_global___ToolContext___opt_global_no_RFIMA(fra.me.REG[1])(fra.me.REG[1]);
253 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
254 fra.me.REG[1] = CALL_global___ToolContext___opt_global_no_out_of_init_get_test_opt(fra.me.REG[1])(fra.me.REG[1]);
255 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
256 CALL_opts___OptionContext___add_option(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
257 stack_frame_head = fra.me.prev;
258 init_table[itpos0] = 1;
259 return;
260 }
261 static const char LOCATE_global___AbstractCompiler___process_options[] = "global::AbstractCompiler::(toolcontext::ToolContext::process_options)";
262 void global___AbstractCompiler___process_options(val_t p0){
263 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
264 val_t REGB0;
265 val_t tmp;
266 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
267 fra.me.file = LOCATE_global;
268 fra.me.line = 62;
269 fra.me.meth = LOCATE_global___AbstractCompiler___process_options;
270 fra.me.has_broke = 0;
271 fra.me.REG_size = 2;
272 fra.me.nitni_local_ref_head = NULL;
273 fra.me.REG[0] = NIT_NULL;
274 fra.me.REG[1] = NIT_NULL;
275 fra.me.REG[0] = p0;
276 /* global/global.nit:62 */
277 fra.me.REG[1] = fra.me.REG[0];
278 /* global/global.nit:65 */
279 CALL_SUPER_global___AbstractCompiler___process_options(fra.me.REG[0])(fra.me.REG[0]);
280 /* global/global.nit:66 */
281 fra.me.REG[0] = CALL_global___ToolContext___opt_global(fra.me.REG[1])(fra.me.REG[1]);
282 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
283 CALL_program___ToolContext___global__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
284 /* global/global.nit:67 */
285 fra.me.REG[0] = CALL_global___ToolContext___opt_global_no_STF_opt(fra.me.REG[1])(fra.me.REG[1]);
286 fra.me.REG[0] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]);
287 REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[0]));
288 CALL_program___ToolContext___use_SFT_optimization__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
289 /* global/global.nit:68 */
290 fra.me.REG[0] = CALL_global___ToolContext___opt_global_callgraph(fra.me.REG[1])(fra.me.REG[1]);
291 fra.me.REG[0] = CALL_opts___OptionEnum___value_name(fra.me.REG[0])(fra.me.REG[0]);
292 CALL_global___ToolContext___global_callgraph__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
293 stack_frame_head = fra.me.prev;
294 return;
295 }
296 static const char LOCATE_global___Program___do_global_analysis[] = "global::Program::do_global_analysis";
297 void global___Program___do_global_analysis(val_t p0){
298 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
299 val_t REGB0;
300 val_t REGB1;
301 val_t tmp;
302 static val_t once_value_1; /* Once value */
303 static val_t once_value_2; /* Once value */
304 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
305 fra.me.file = LOCATE_global;
306 fra.me.line = 73;
307 fra.me.meth = LOCATE_global___Program___do_global_analysis;
308 fra.me.has_broke = 0;
309 fra.me.REG_size = 3;
310 fra.me.nitni_local_ref_head = NULL;
311 fra.me.REG[0] = NIT_NULL;
312 fra.me.REG[1] = NIT_NULL;
313 fra.me.REG[2] = NIT_NULL;
314 fra.me.REG[0] = p0;
315 /* global/global.nit:75 */
316 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
317 REGB0 = CALL_program___ToolContext___global(fra.me.REG[1])(fra.me.REG[1]);
318 if (UNTAG_Bool(REGB0)) {
319 } else {
320 nit_abort("Assert failed", NULL, LOCATE_global, 75);
321 }
322 /* global/global.nit:77 */
323 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
324 fra.me.REG[1] = CALL_global___ToolContext___opt_global_no_inline_get_set(fra.me.REG[1])(fra.me.REG[1]);
325 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
326 REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[1]));
327 if (UNTAG_Bool(REGB0)) {
328 CALL_global___inline_get_and_set___Program___inline_get_set(fra.me.REG[0])(fra.me.REG[0]);
329 }
330 /* global/global.nit:79 */
331 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
332 fra.me.REG[1] = CALL_global___ToolContext___global_callgraph(fra.me.REG[1])(fra.me.REG[1]);
333 if (!once_value_1) {
334 fra.me.REG[2] = BOX_NativeString("cha");
335 REGB0 = TAG_Int(3);
336 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
337 once_value_1 = fra.me.REG[2];
338 register_static_object(&once_value_1);
339 } else fra.me.REG[2] = once_value_1;
340 fra.me.REG[2] = fra.me.REG[2];
341 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
342 if (UNTAG_Bool(REGB0)) {
343 } else {
344 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
345 REGB0 = REGB1;
346 }
347 if (UNTAG_Bool(REGB0)) {
348 /* global/global.nit:80 */
349 fra.me.REG[2] = NEW_ChaBuilder_global___cha_analysis___ChaBuilder___init(fra.me.REG[0]);
350 /* global/global.nit:81 */
351 CALL_global___cha_analysis___ChaBuilder___work(fra.me.REG[2])(fra.me.REG[2]);
352 /* global/global.nit:82 */
353 fra.me.REG[2] = CALL_global___cha_analysis___ChaBuilder___context(fra.me.REG[2])(fra.me.REG[2]);
354 CALL_global___reachable_method_analysis___Program___rma__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
355 } else {
356 /* global/global.nit:83 */
357 fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
358 fra.me.REG[2] = CALL_global___ToolContext___global_callgraph(fra.me.REG[2])(fra.me.REG[2]);
359 if (!once_value_2) {
360 fra.me.REG[1] = BOX_NativeString("rta");
361 REGB0 = TAG_Int(3);
362 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
363 once_value_2 = fra.me.REG[1];
364 register_static_object(&once_value_2);
365 } else fra.me.REG[1] = once_value_2;
366 fra.me.REG[1] = fra.me.REG[1];
367 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
368 if (UNTAG_Bool(REGB0)) {
369 } else {
370 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
371 REGB0 = REGB1;
372 }
373 if (UNTAG_Bool(REGB0)) {
374 /* global/global.nit:84 */
375 fra.me.REG[1] = NEW_RtaBuilder_global___rta_analysis___RtaBuilder___init(fra.me.REG[0]);
376 /* global/global.nit:85 */
377 CALL_global___rta_analysis___RtaBuilder___work(fra.me.REG[1])(fra.me.REG[1]);
378 /* global/global.nit:86 */
379 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[1])(fra.me.REG[1]);
380 CALL_global___reachable_method_analysis___Program___rma__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
381 /* global/global.nit:87 */
382 fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[1])(fra.me.REG[1]);
383 CALL_global___instantiated_type_analysis___Program___ita__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
384 }
385 }
386 /* global/global.nit:91 */
387 fra.me.REG[1] = CALL_global___reachable_method_analysis___Program___rma(fra.me.REG[0])(fra.me.REG[0]);
388 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
389 if (UNTAG_Bool(REGB0)) {
390 } else {
391 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
392 if (UNTAG_Bool(REGB1)) {
393 REGB1 = TAG_Bool(0);
394 REGB0 = REGB1;
395 } else {
396 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
397 REGB0 = REGB1;
398 }
399 }
400 if (UNTAG_Bool(REGB0)) {
401 fra.me.REG[1] = NEW_DefaultReachableMethodAnalysis_global___reachable_method_analysis___DefaultReachableMethodAnalysis___init();
402 CALL_global___reachable_method_analysis___Program___rma__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
403 }
404 /* global/global.nit:92 */
405 fra.me.REG[1] = CALL_global___instantiated_type_analysis___Program___ita(fra.me.REG[0])(fra.me.REG[0]);
406 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
407 if (UNTAG_Bool(REGB0)) {
408 } else {
409 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
410 if (UNTAG_Bool(REGB1)) {
411 REGB1 = TAG_Bool(0);
412 REGB0 = REGB1;
413 } else {
414 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
415 REGB0 = REGB1;
416 }
417 }
418 if (UNTAG_Bool(REGB0)) {
419 fra.me.REG[1] = NEW_DefaultInstantiatedTypeAnalysis_global___instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init();
420 CALL_global___instantiated_type_analysis___Program___ita__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
421 }
422 /* global/global.nit:94 */
423 fra.me.REG[1] = NEW_ReachableAsInitBuilder_global___reachable_as_init_impl___ReachableAsInitBuilder___init(fra.me.REG[0]);
424 /* global/global.nit:95 */
425 CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___work(fra.me.REG[1])(fra.me.REG[1]);
426 /* global/global.nit:96 */
427 fra.me.REG[1] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra.me.REG[1])(fra.me.REG[1]);
428 CALL_global___reachable_as_init___Program___rai__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
429 /* global/global.nit:98 */
430 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
431 fra.me.REG[1] = CALL_global___ToolContext___opt_global_no_RFIMA(fra.me.REG[1])(fra.me.REG[1]);
432 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
433 REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[1]));
434 if (UNTAG_Bool(REGB0)) {
435 /* global/global.nit:99 */
436 fra.me.REG[1] = NEW_RFIMABuilder_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(fra.me.REG[0]);
437 /* global/global.nit:100 */
438 CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work(fra.me.REG[1])(fra.me.REG[1]);
439 /* global/global.nit:101 */
440 fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(fra.me.REG[1])(fra.me.REG[1]);
441 CALL_global___reachable_from_init_method_analysis___Program___rfima__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
442 }
443 /* global/global.nit:104 */
444 fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis___Program___rfima(fra.me.REG[0])(fra.me.REG[0]);
445 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
446 if (UNTAG_Bool(REGB0)) {
447 } else {
448 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
449 if (UNTAG_Bool(REGB1)) {
450 REGB1 = TAG_Bool(0);
451 REGB0 = REGB1;
452 } else {
453 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
454 REGB0 = REGB1;
455 }
456 }
457 if (UNTAG_Bool(REGB0)) {
458 fra.me.REG[1] = NEW_DefaultReachableFromInitMethodAnalysis_global___reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init();
459 CALL_global___reachable_from_init_method_analysis___Program___rfima__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
460 }
461 /* global/global.nit:107 */
462 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
463 fra.me.REG[1] = CALL_global___ToolContext___opt_global_no_DMR_opt(fra.me.REG[1])(fra.me.REG[1]);
464 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
465 REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[1]));
466 if (UNTAG_Bool(REGB0)) {
467 CALL_global___dead_method_removal___Program___optimize_dead_methods(fra.me.REG[0])(fra.me.REG[0]);
468 }
469 /* global/global.nit:108 */
470 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
471 fra.me.REG[1] = CALL_global___ToolContext___opt_global_no_out_of_init_get_test_opt(fra.me.REG[1])(fra.me.REG[1]);
472 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
473 REGB0 = TAG_Bool(!UNTAG_Bool(fra.me.REG[1]));
474 if (UNTAG_Bool(REGB0)) {
475 CALL_global___remove_out_of_init_get_test___Program___optimize_out_of_init_getters(fra.me.REG[0])(fra.me.REG[0]);
476 }
477 /* global/global.nit:111 */
478 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
479 fra.me.REG[1] = CALL_toolcontext___ToolContext___opt_log(fra.me.REG[1])(fra.me.REG[1]);
480 fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[1])(fra.me.REG[1]);
481 if (UNTAG_Bool(fra.me.REG[1])) {
482 /* global/global.nit:112 */
483 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
484 fra.me.REG[1] = CALL_toolcontext___ToolContext___log_directory(fra.me.REG[1])(fra.me.REG[1]);
485 CALL_global___Program___dump_global_optimizations_information(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
486 /* global/global.nit:113 */
487 fra.me.REG[1] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
488 fra.me.REG[1] = CALL_toolcontext___ToolContext___log_directory(fra.me.REG[1])(fra.me.REG[1]);
489 CALL_global___Program___dump_global_analysis_information(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
490 }
491 stack_frame_head = fra.me.prev;
492 return;
493 }
494 static const char LOCATE_global___Program___dump_global_optimizations_information[] = "global::Program::dump_global_optimizations_information";
495 void global___Program___dump_global_optimizations_information(val_t p0, val_t p1){
496 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
497 val_t tmp;
498 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
499 fra.me.file = LOCATE_global;
500 fra.me.line = 117;
501 fra.me.meth = LOCATE_global___Program___dump_global_optimizations_information;
502 fra.me.has_broke = 0;
503 fra.me.REG_size = 2;
504 fra.me.nitni_local_ref_head = NULL;
505 fra.me.REG[0] = NIT_NULL;
506 fra.me.REG[1] = NIT_NULL;
507 fra.me.REG[0] = p0;
508 fra.me.REG[1] = p1;
509 /* global/global.nit:118 */
510 CALL_global___remove_out_of_init_get_test___Program___dump_out_of_init_information(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
511 /* global/global.nit:119 */
512 CALL_global___dead_method_removal___Program___dump_dead_method_optimization(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
513 /* global/global.nit:120 */
514 CALL_global___inline_get_and_set___Program___dump_inline_get_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
515 stack_frame_head = fra.me.prev;
516 return;
517 }
518 static const char LOCATE_global___Program___dump_global_analysis_information[] = "global::Program::dump_global_analysis_information";
519 void global___Program___dump_global_analysis_information(val_t p0, val_t p1){
520 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
521 val_t tmp;
522 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
523 fra.me.file = LOCATE_global;
524 fra.me.line = 123;
525 fra.me.meth = LOCATE_global___Program___dump_global_analysis_information;
526 fra.me.has_broke = 0;
527 fra.me.REG_size = 3;
528 fra.me.nitni_local_ref_head = NULL;
529 fra.me.REG[0] = NIT_NULL;
530 fra.me.REG[1] = NIT_NULL;
531 fra.me.REG[2] = NIT_NULL;
532 fra.me.REG[0] = p0;
533 fra.me.REG[1] = p1;
534 /* global/global.nit:125 */
535 fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
536 fra.me.REG[2] = CALL_global___ToolContext___global_callgraph(fra.me.REG[2])(fra.me.REG[2]);
537 CALL_global___reachable_method_analysis___Program___dump_reachable_methods(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
538 /* global/global.nit:126 */
539 fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[0])(fra.me.REG[0]);
540 fra.me.REG[2] = CALL_global___ToolContext___global_callgraph(fra.me.REG[2])(fra.me.REG[2]);
541 CALL_global___reachable_method_analysis___Program___dump_unreachable_methods(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
542 /* global/global.nit:127 */
543 CALL_global___instantiated_type_analysis___Program___dump_instantiated_types(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
544 /* global/global.nit:128 */
545 CALL_global___instantiated_type_analysis___Program___dump_not_instantiated_types(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
546 /* global/global.nit:129 */
547 CALL_global___reachable_as_init___Program___dump_reachable_as_init_methods(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
548 /* global/global.nit:130 */
549 CALL_global___reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
550 /* global/global.nit:131 */
551 CALL_global___reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
552 stack_frame_head = fra.me.prev;
553 return;
554 }