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
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_global
;
11 fra
.me
.meth
= LOCATE_global___ToolContext___global_callgraph
;
14 fra
.me
.nitni_local_ref_head
= NULL
;
15 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
21 nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_global
, 44);
23 fra
.me
.REG
[0] = ATTR_global___ToolContext____global_callgraph(fra
.me
.REG
[0]);
24 stack_frame_head
= fra
.me
.prev
;
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
;
31 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
32 fra
.me
.file
= LOCATE_global
;
34 fra
.me
.meth
= LOCATE_global___ToolContext___global_callgraph__eq
;
37 fra
.me
.nitni_local_ref_head
= NULL
;
38 fra
.me
.REG
[0] = NIT_NULL
;
39 fra
.me
.REG
[1] = NIT_NULL
;
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
;
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
;
52 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
53 fra
.me
.file
= LOCATE_global
;
55 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global
;
58 fra
.me
.nitni_local_ref_head
= NULL
;
59 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
65 nit_abort("Uninitialized attribute %s", "_opt_global", LOCATE_global
, 46);
67 fra
.me
.REG
[0] = ATTR_global___ToolContext____opt_global(fra
.me
.REG
[0]);
68 stack_frame_head
= fra
.me
.prev
;
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
;
76 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
77 fra
.me
.file
= LOCATE_global
;
79 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_no_STF_opt
;
82 fra
.me
.nitni_local_ref_head
= NULL
;
83 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
89 nit_abort("Uninitialized attribute %s", "_opt_global_no_STF_opt", LOCATE_global
, 47);
91 fra
.me
.REG
[0] = ATTR_global___ToolContext____opt_global_no_STF_opt(fra
.me
.REG
[0]);
92 stack_frame_head
= fra
.me
.prev
;
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
;
100 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
101 fra
.me
.file
= LOCATE_global
;
103 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_no_DMR_opt
;
104 fra
.me
.has_broke
= 0;
106 fra
.me
.nitni_local_ref_head
= NULL
;
107 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
113 nit_abort("Uninitialized attribute %s", "_opt_global_no_DMR_opt", LOCATE_global
, 48);
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];
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
;
124 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
125 fra
.me
.file
= LOCATE_global
;
127 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_no_inline_get_set
;
128 fra
.me
.has_broke
= 0;
130 fra
.me
.nitni_local_ref_head
= NULL
;
131 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
137 nit_abort("Uninitialized attribute %s", "_opt_global_no_inline_get_set", LOCATE_global
, 49);
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];
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
;
148 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
149 fra
.me
.file
= LOCATE_global
;
151 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_no_out_of_init_get_test_opt
;
152 fra
.me
.has_broke
= 0;
154 fra
.me
.nitni_local_ref_head
= NULL
;
155 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
161 nit_abort("Uninitialized attribute %s", "_opt_global_no_out_of_init_get_test_opt", LOCATE_global
, 50);
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];
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
;
172 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
173 fra
.me
.file
= LOCATE_global
;
175 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_no_RFIMA
;
176 fra
.me
.has_broke
= 0;
178 fra
.me
.nitni_local_ref_head
= NULL
;
179 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
185 nit_abort("Uninitialized attribute %s", "_opt_global_no_RFIMA", LOCATE_global
, 51);
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];
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
;
196 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
197 fra
.me
.file
= LOCATE_global
;
199 fra
.me
.meth
= LOCATE_global___ToolContext___opt_global_callgraph
;
200 fra
.me
.has_broke
= 0;
202 fra
.me
.nitni_local_ref_head
= NULL
;
203 fra
.me
.REG
[0] = NIT_NULL
;
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
)) {
209 nit_abort("Uninitialized attribute %s", "_opt_global_callgraph", LOCATE_global
, 52);
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];
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
;
221 if (init_table
[itpos0
]) return;
222 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
223 fra
.me
.file
= LOCATE_global
;
225 fra
.me
.meth
= LOCATE_global___ToolContext___init
;
226 fra
.me
.has_broke
= 0;
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
;
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]);
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;
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
;
266 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
267 fra
.me
.file
= LOCATE_global
;
269 fra
.me
.meth
= LOCATE_global___AbstractCompiler___process_options
;
270 fra
.me
.has_broke
= 0;
272 fra
.me
.nitni_local_ref_head
= NULL
;
273 fra
.me
.REG
[0] = NIT_NULL
;
274 fra
.me
.REG
[1] = NIT_NULL
;
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
;
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
;
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
;
307 fra
.me
.meth
= LOCATE_global___Program___do_global_analysis
;
308 fra
.me
.has_broke
= 0;
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
;
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
)) {
320 nit_abort("Assert failed", NULL
, LOCATE_global
, 75);
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]);
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]);
334 fra
.me
.REG
[2] = BOX_NativeString("cha");
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
)) {
344 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
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]);
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]);
360 fra
.me
.REG
[1] = BOX_NativeString("rta");
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
)) {
370 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
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]);
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
)) {
391 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
392 if (UNTAG_Bool(REGB1
)) {
396 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
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]);
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
)) {
409 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
410 if (UNTAG_Bool(REGB1
)) {
414 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
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]);
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]);
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
)) {
448 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
449 if (UNTAG_Bool(REGB1
)) {
453 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
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]);
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]);
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]);
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]);
491 stack_frame_head
= fra
.me
.prev
;
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
;
498 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
499 fra
.me
.file
= LOCATE_global
;
501 fra
.me
.meth
= LOCATE_global___Program___dump_global_optimizations_information
;
502 fra
.me
.has_broke
= 0;
504 fra
.me
.nitni_local_ref_head
= NULL
;
505 fra
.me
.REG
[0] = NIT_NULL
;
506 fra
.me
.REG
[1] = NIT_NULL
;
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
;
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
;
522 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
523 fra
.me
.file
= LOCATE_global
;
525 fra
.me
.meth
= LOCATE_global___Program___dump_global_analysis_information
;
526 fra
.me
.has_broke
= 0;
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
;
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
;