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