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
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_global
;
10 fra
.me
.meth
= LOCATE_global___ToolContext___global_callgraph
;
13 fra
.me
.nitni_local_ref_head
= NULL
;
14 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
20 nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_global
, 44);
22 fra
.me
.REG
[0] = ATTR_global___ToolContext____global_callgraph(fra
.me
.REG
[0]);
23 stack_frame_head
= fra
.me
.prev
;
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
;
29 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
30 fra
.me
.file
= LOCATE_global
;
32 fra
.me
.meth
= LOCATE_global___ToolContext___global_callgraph__eq
;
35 fra
.me
.nitni_local_ref_head
= NULL
;
36 fra
.me
.REG
[0] = NIT_NULL
;
37 fra
.me
.REG
[1] = NIT_NULL
;
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
;
45 val_t
global___ToolContext___opt_global(val_t p0
){
46 struct {struct stack_frame_t me
;} fra
;
49 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
50 fra
.me
.file
= LOCATE_global
;
52 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global
;
55 fra
.me
.nitni_local_ref_head
= NULL
;
56 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
62 nit_abort("Uninitialized attribute %s", "_opt_global", LOCATE_global
, 46);
64 fra
.me
.REG
[0] = ATTR_global___ToolContext____opt_global(fra
.me
.REG
[0]);
65 stack_frame_head
= fra
.me
.prev
;
68 val_t
global___ToolContext___opt_global_no_STF_opt(val_t p0
){
69 struct {struct stack_frame_t me
;} fra
;
72 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
73 fra
.me
.file
= LOCATE_global
;
75 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_no_STF_opt
;
78 fra
.me
.nitni_local_ref_head
= NULL
;
79 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
85 nit_abort("Uninitialized attribute %s", "_opt_global_no_STF_opt", LOCATE_global
, 47);
87 fra
.me
.REG
[0] = ATTR_global___ToolContext____opt_global_no_STF_opt(fra
.me
.REG
[0]);
88 stack_frame_head
= fra
.me
.prev
;
91 val_t
global___ToolContext___opt_global_no_DMR_opt(val_t p0
){
92 struct {struct stack_frame_t me
;} fra
;
95 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
96 fra
.me
.file
= LOCATE_global
;
98 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_no_DMR_opt
;
101 fra
.me
.nitni_local_ref_head
= NULL
;
102 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
108 nit_abort("Uninitialized attribute %s", "_opt_global_no_DMR_opt", LOCATE_global
, 48);
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];
114 val_t
global___ToolContext___opt_global_no_inline_get_set(val_t p0
){
115 struct {struct stack_frame_t me
;} fra
;
118 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
119 fra
.me
.file
= LOCATE_global
;
121 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_no_inline_get_set
;
122 fra
.me
.has_broke
= 0;
124 fra
.me
.nitni_local_ref_head
= NULL
;
125 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
131 nit_abort("Uninitialized attribute %s", "_opt_global_no_inline_get_set", LOCATE_global
, 49);
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];
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
;
141 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
142 fra
.me
.file
= LOCATE_global
;
144 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_no_out_of_init_get_test_opt
;
145 fra
.me
.has_broke
= 0;
147 fra
.me
.nitni_local_ref_head
= NULL
;
148 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
154 nit_abort("Uninitialized attribute %s", "_opt_global_no_out_of_init_get_test_opt", LOCATE_global
, 50);
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];
160 val_t
global___ToolContext___opt_global_no_RFIMA(val_t p0
){
161 struct {struct stack_frame_t me
;} fra
;
164 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
165 fra
.me
.file
= LOCATE_global
;
167 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_no_RFIMA
;
168 fra
.me
.has_broke
= 0;
170 fra
.me
.nitni_local_ref_head
= NULL
;
171 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
177 nit_abort("Uninitialized attribute %s", "_opt_global_no_RFIMA", LOCATE_global
, 51);
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];
183 val_t
global___ToolContext___opt_global_callgraph(val_t p0
){
184 struct {struct stack_frame_t me
;} fra
;
187 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
188 fra
.me
.file
= LOCATE_global
;
190 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_callgraph
;
191 fra
.me
.has_broke
= 0;
193 fra
.me
.nitni_local_ref_head
= NULL
;
194 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
200 nit_abort("Uninitialized attribute %s", "_opt_global_callgraph", LOCATE_global
, 52);
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];
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
;
211 if (init_table
[itpos0
]) return;
212 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
213 fra
.me
.file
= LOCATE_global
;
215 fra
.me
.meth
= LOCATE_global___ToolContext___init
;
216 fra
.me
.has_broke
= 0;
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
;
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]);
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;
251 void global___AbstractCompiler___process_options(val_t p0
){
252 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
255 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
256 fra
.me
.file
= LOCATE_global
;
258 fra
.me
.meth
= LOCATE_global___AbstractCompiler___process_options
;
259 fra
.me
.has_broke
= 0;
261 fra
.me
.nitni_local_ref_head
= NULL
;
262 fra
.me
.REG
[0] = NIT_NULL
;
263 fra
.me
.REG
[1] = NIT_NULL
;
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
;
285 void global___Program___do_global_analysis(val_t p0
){
286 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
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
;
295 fra
.me
.meth
= LOCATE_global___Program___do_global_analysis
;
296 fra
.me
.has_broke
= 0;
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
;
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
)) {
308 nit_abort("Assert failed", NULL
, LOCATE_global
, 75);
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]);
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]);
322 fra
.me
.REG
[2] = BOX_NativeString("cha");
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
)) {
332 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
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]);
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]);
348 fra
.me
.REG
[1] = BOX_NativeString("rta");
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
)) {
358 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
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]);
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
)) {
379 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
380 if (UNTAG_Bool(REGB1
)) {
381 REGB1
= TAG_Bool(false);
384 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
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]);
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
)) {
397 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
398 if (UNTAG_Bool(REGB1
)) {
399 REGB1
= TAG_Bool(false);
402 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
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]);
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]);
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
)) {
436 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
437 if (UNTAG_Bool(REGB1
)) {
438 REGB1
= TAG_Bool(false);
441 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
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]);
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]);
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]);
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]);
479 stack_frame_head
= fra
.me
.prev
;
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
;
485 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
486 fra
.me
.file
= LOCATE_global
;
488 fra
.me
.meth
= LOCATE_global___Program___dump_global_optimizations_information
;
489 fra
.me
.has_broke
= 0;
491 fra
.me
.nitni_local_ref_head
= NULL
;
492 fra
.me
.REG
[0] = NIT_NULL
;
493 fra
.me
.REG
[1] = NIT_NULL
;
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
;
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
;
508 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
509 fra
.me
.file
= LOCATE_global
;
511 fra
.me
.meth
= LOCATE_global___Program___dump_global_analysis_information
;
512 fra
.me
.has_broke
= 0;
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
;
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
;