1 /* This C file is generated by NIT to compile module analysis. */
2 #include "analysis._sep.h"
3 val_t
analysis___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_analysis
;
10 fra
.me
.meth
= LOCATE_analysis___ToolContext___global_callgraph
;
13 fra
.me
.REG
[0] = NIT_NULL
;
15 /* ./analysis//analysis.nit:48 */
16 REGB0
= TAG_Bool(ATTR_analysis___ToolContext____global_callgraph(fra
.me
.REG
[0])!=NIT_NULL
);
17 if (UNTAG_Bool(REGB0
)) {
19 nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_analysis
, 48);
21 fra
.me
.REG
[0] = ATTR_analysis___ToolContext____global_callgraph(fra
.me
.REG
[0]);
22 stack_frame_head
= fra
.me
.prev
;
25 void analysis___ToolContext___global_callgraph__eq(val_t p0
, val_t p1
){
26 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
28 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
29 fra
.me
.file
= LOCATE_analysis
;
31 fra
.me
.meth
= LOCATE_analysis___ToolContext___global_callgraph__eq
;
34 fra
.me
.REG
[0] = NIT_NULL
;
35 fra
.me
.REG
[1] = NIT_NULL
;
38 /* ./analysis//analysis.nit:48 */
39 ATTR_analysis___ToolContext____global_callgraph(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
40 stack_frame_head
= fra
.me
.prev
;
43 val_t
analysis___ToolContext___no_dead_method_removal(val_t p0
){
44 struct {struct stack_frame_t me
;} fra
;
47 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
48 fra
.me
.file
= LOCATE_analysis
;
50 fra
.me
.meth
= LOCATE_analysis___ToolContext___no_dead_method_removal
;
53 fra
.me
.REG
[0] = NIT_NULL
;
55 /* ./analysis//analysis.nit:49 */
56 REGB0
= TAG_Bool(ATTR_analysis___ToolContext____no_dead_method_removal(fra
.me
.REG
[0])!=NIT_NULL
);
57 if (UNTAG_Bool(REGB0
)) {
59 nit_abort("Uninitialized attribute %s", "_no_dead_method_removal", LOCATE_analysis
, 49);
61 REGB0
= ATTR_analysis___ToolContext____no_dead_method_removal(fra
.me
.REG
[0]);
62 stack_frame_head
= fra
.me
.prev
;
65 void analysis___ToolContext___no_dead_method_removal__eq(val_t p0
, val_t p1
){
66 struct {struct stack_frame_t me
;} fra
;
69 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
70 fra
.me
.file
= LOCATE_analysis
;
72 fra
.me
.meth
= LOCATE_analysis___ToolContext___no_dead_method_removal__eq
;
75 fra
.me
.REG
[0] = NIT_NULL
;
78 /* ./analysis//analysis.nit:49 */
79 ATTR_analysis___ToolContext____no_dead_method_removal(fra
.me
.REG
[0]) = REGB0
;
80 stack_frame_head
= fra
.me
.prev
;
83 val_t
analysis___ToolContext___no_inline_get_set(val_t p0
){
84 struct {struct stack_frame_t me
;} fra
;
87 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
88 fra
.me
.file
= LOCATE_analysis
;
90 fra
.me
.meth
= LOCATE_analysis___ToolContext___no_inline_get_set
;
93 fra
.me
.REG
[0] = NIT_NULL
;
95 /* ./analysis//analysis.nit:50 */
96 REGB0
= TAG_Bool(ATTR_analysis___ToolContext____no_inline_get_set(fra
.me
.REG
[0])!=NIT_NULL
);
97 if (UNTAG_Bool(REGB0
)) {
99 nit_abort("Uninitialized attribute %s", "_no_inline_get_set", LOCATE_analysis
, 50);
101 REGB0
= ATTR_analysis___ToolContext____no_inline_get_set(fra
.me
.REG
[0]);
102 stack_frame_head
= fra
.me
.prev
;
105 void analysis___ToolContext___no_inline_get_set__eq(val_t p0
, val_t p1
){
106 struct {struct stack_frame_t me
;} fra
;
109 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
110 fra
.me
.file
= LOCATE_analysis
;
112 fra
.me
.meth
= LOCATE_analysis___ToolContext___no_inline_get_set__eq
;
113 fra
.me
.has_broke
= 0;
115 fra
.me
.REG
[0] = NIT_NULL
;
118 /* ./analysis//analysis.nit:50 */
119 ATTR_analysis___ToolContext____no_inline_get_set(fra
.me
.REG
[0]) = REGB0
;
120 stack_frame_head
= fra
.me
.prev
;
123 val_t
analysis___ToolContext___no_callgraph_from_init(val_t p0
){
124 struct {struct stack_frame_t me
;} fra
;
127 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
128 fra
.me
.file
= LOCATE_analysis
;
130 fra
.me
.meth
= LOCATE_analysis___ToolContext___no_callgraph_from_init
;
131 fra
.me
.has_broke
= 0;
133 fra
.me
.REG
[0] = NIT_NULL
;
135 /* ./analysis//analysis.nit:51 */
136 REGB0
= TAG_Bool(ATTR_analysis___ToolContext____no_callgraph_from_init(fra
.me
.REG
[0])!=NIT_NULL
);
137 if (UNTAG_Bool(REGB0
)) {
139 nit_abort("Uninitialized attribute %s", "_no_callgraph_from_init", LOCATE_analysis
, 51);
141 REGB0
= ATTR_analysis___ToolContext____no_callgraph_from_init(fra
.me
.REG
[0]);
142 stack_frame_head
= fra
.me
.prev
;
145 void analysis___ToolContext___no_callgraph_from_init__eq(val_t p0
, val_t p1
){
146 struct {struct stack_frame_t me
;} fra
;
149 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
150 fra
.me
.file
= LOCATE_analysis
;
152 fra
.me
.meth
= LOCATE_analysis___ToolContext___no_callgraph_from_init__eq
;
153 fra
.me
.has_broke
= 0;
155 fra
.me
.REG
[0] = NIT_NULL
;
158 /* ./analysis//analysis.nit:51 */
159 ATTR_analysis___ToolContext____no_callgraph_from_init(fra
.me
.REG
[0]) = REGB0
;
160 stack_frame_head
= fra
.me
.prev
;
163 val_t
analysis___ToolContext___no_out_of_init_get_test_removal(val_t p0
){
164 struct {struct stack_frame_t me
;} fra
;
167 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
168 fra
.me
.file
= LOCATE_analysis
;
170 fra
.me
.meth
= LOCATE_analysis___ToolContext___no_out_of_init_get_test_removal
;
171 fra
.me
.has_broke
= 0;
173 fra
.me
.REG
[0] = NIT_NULL
;
175 /* ./analysis//analysis.nit:52 */
176 REGB0
= TAG_Bool(ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra
.me
.REG
[0])!=NIT_NULL
);
177 if (UNTAG_Bool(REGB0
)) {
179 nit_abort("Uninitialized attribute %s", "_no_out_of_init_get_test_removal", LOCATE_analysis
, 52);
181 REGB0
= ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra
.me
.REG
[0]);
182 stack_frame_head
= fra
.me
.prev
;
185 void analysis___ToolContext___no_out_of_init_get_test_removal__eq(val_t p0
, val_t p1
){
186 struct {struct stack_frame_t me
;} fra
;
189 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
190 fra
.me
.file
= LOCATE_analysis
;
192 fra
.me
.meth
= LOCATE_analysis___ToolContext___no_out_of_init_get_test_removal__eq
;
193 fra
.me
.has_broke
= 0;
195 fra
.me
.REG
[0] = NIT_NULL
;
198 /* ./analysis//analysis.nit:52 */
199 ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra
.me
.REG
[0]) = REGB0
;
200 stack_frame_head
= fra
.me
.prev
;
203 void analysis___Program___do_global_analysis(val_t p0
){
204 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
208 static val_t once_value_1
; /* Once value */
209 static val_t once_value_2
; /* Once value */
210 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
211 fra
.me
.file
= LOCATE_analysis
;
213 fra
.me
.meth
= LOCATE_analysis___Program___do_global_analysis
;
214 fra
.me
.has_broke
= 0;
216 fra
.me
.REG
[0] = NIT_NULL
;
217 fra
.me
.REG
[1] = NIT_NULL
;
218 fra
.me
.REG
[2] = NIT_NULL
;
220 /* ./analysis//analysis.nit:58 */
221 fra
.me
.REG
[1] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
222 REGB0
= CALL_program___ToolContext___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
223 if (UNTAG_Bool(REGB0
)) {
225 nit_abort("Assert failed", NULL
, LOCATE_analysis
, 58);
227 /* ./analysis//analysis.nit:60 */
228 fra
.me
.REG
[1] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
229 fra
.me
.REG
[1] = CALL_analysis___ToolContext___global_callgraph(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
231 fra
.me
.REG
[2] = BOX_NativeString("cha");
233 fra
.me
.REG
[2] = NEW_String_string___String___with_native(fra
.me
.REG
[2], REGB0
);
234 once_value_1
= fra
.me
.REG
[2];
235 register_static_object(&once_value_1
);
236 } else fra
.me
.REG
[2] = once_value_1
;
237 fra
.me
.REG
[2] = fra
.me
.REG
[2];
238 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
239 if (UNTAG_Bool(REGB0
)) {
241 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
244 if (UNTAG_Bool(REGB0
)) {
245 /* ./analysis//analysis.nit:61 */
246 fra
.me
.REG
[2] = NEW_ChaBuilder_cha_analysis___ChaBuilder___init(fra
.me
.REG
[0]);
247 /* ./analysis//analysis.nit:62 */
248 CALL_cha_analysis___ChaBuilder___work(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
249 /* ./analysis//analysis.nit:63 */
250 fra
.me
.REG
[2] = CALL_cha_analysis___ChaBuilder___context(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
251 CALL_reachable_method_analysis___Program___rma__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
253 /* ./analysis//analysis.nit:64 */
254 fra
.me
.REG
[2] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
255 fra
.me
.REG
[2] = CALL_analysis___ToolContext___global_callgraph(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
257 fra
.me
.REG
[1] = BOX_NativeString("rta");
259 fra
.me
.REG
[1] = NEW_String_string___String___with_native(fra
.me
.REG
[1], REGB0
);
260 once_value_2
= fra
.me
.REG
[1];
261 register_static_object(&once_value_2
);
262 } else fra
.me
.REG
[1] = once_value_2
;
263 fra
.me
.REG
[1] = fra
.me
.REG
[1];
264 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[1]));
265 if (UNTAG_Bool(REGB0
)) {
267 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
270 if (UNTAG_Bool(REGB0
)) {
271 /* ./analysis//analysis.nit:65 */
272 fra
.me
.REG
[1] = NEW_RtaBuilder_rta_analysis___RtaBuilder___init(fra
.me
.REG
[0]);
273 /* ./analysis//analysis.nit:66 */
274 CALL_rta_analysis___RtaBuilder___work(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
275 /* ./analysis//analysis.nit:67 */
276 fra
.me
.REG
[2] = CALL_rta_analysis___RtaBuilder___context(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
277 CALL_reachable_method_analysis___Program___rma__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
278 /* ./analysis//analysis.nit:68 */
279 fra
.me
.REG
[1] = CALL_rta_analysis___RtaBuilder___context(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
280 CALL_instantiated_type_analysis___Program___ita__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
283 /* ./analysis//analysis.nit:72 */
284 fra
.me
.REG
[1] = CALL_reachable_method_analysis___Program___rma(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
285 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
286 if (UNTAG_Bool(REGB0
)) {
288 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
289 if (UNTAG_Bool(REGB1
)) {
290 REGB1
= TAG_Bool(false);
293 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
297 if (UNTAG_Bool(REGB0
)) {
298 fra
.me
.REG
[1] = NEW_DefaultReachableMethodAnalysis_reachable_method_analysis___DefaultReachableMethodAnalysis___init();
299 CALL_reachable_method_analysis___Program___rma__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
301 /* ./analysis//analysis.nit:73 */
302 fra
.me
.REG
[1] = CALL_instantiated_type_analysis___Program___ita(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
303 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
304 if (UNTAG_Bool(REGB0
)) {
306 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
307 if (UNTAG_Bool(REGB1
)) {
308 REGB1
= TAG_Bool(false);
311 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
315 if (UNTAG_Bool(REGB0
)) {
316 fra
.me
.REG
[1] = NEW_DefaultInstantiatedTypeAnalysis_instantiated_type_analysis___DefaultInstantiatedTypeAnalysis___init();
317 CALL_instantiated_type_analysis___Program___ita__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
319 /* ./analysis//analysis.nit:75 */
320 fra
.me
.REG
[1] = NEW_ReachableAsInitBuilder_reachable_as_init_impl___ReachableAsInitBuilder___init(fra
.me
.REG
[0]);
321 /* ./analysis//analysis.nit:76 */
322 CALL_reachable_as_init_impl___ReachableAsInitBuilder___work(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
323 /* ./analysis//analysis.nit:77 */
324 fra
.me
.REG
[1] = CALL_reachable_as_init_impl___ReachableAsInitBuilder___context(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
325 CALL_reachable_as_init___Program___rai__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
326 /* ./analysis//analysis.nit:79 */
327 fra
.me
.REG
[1] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
328 REGB0
= CALL_analysis___ToolContext___no_callgraph_from_init(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
329 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
330 if (UNTAG_Bool(REGB0
)) {
331 /* ./analysis//analysis.nit:80 */
332 fra
.me
.REG
[1] = NEW_RFIMABuilder_reachable_from_init_method_analysis_impl___RFIMABuilder___init(fra
.me
.REG
[0]);
333 /* ./analysis//analysis.nit:81 */
334 CALL_reachable_from_init_method_analysis_impl___RFIMABuilder___work(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
335 /* ./analysis//analysis.nit:82 */
336 fra
.me
.REG
[1] = CALL_reachable_from_init_method_analysis_impl___RFIMABuilder___context(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
337 CALL_reachable_from_init_method_analysis___Program___rfima__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
339 /* ./analysis//analysis.nit:85 */
340 fra
.me
.REG
[1] = CALL_reachable_from_init_method_analysis___Program___rfima(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
341 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
342 if (UNTAG_Bool(REGB0
)) {
344 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
345 if (UNTAG_Bool(REGB1
)) {
346 REGB1
= TAG_Bool(false);
349 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
353 if (UNTAG_Bool(REGB0
)) {
354 fra
.me
.REG
[1] = NEW_DefaultReachableFromInitMethodAnalysis_reachable_from_init_method_analysis___DefaultReachableFromInitMethodAnalysis___init();
355 CALL_reachable_from_init_method_analysis___Program___rfima__eq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
357 stack_frame_head
= fra
.me
.prev
;
360 void analysis___Program___do_global_pre_analysis_optimizations(val_t p0
){
361 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
364 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
365 fra
.me
.file
= LOCATE_analysis
;
367 fra
.me
.meth
= LOCATE_analysis___Program___do_global_pre_analysis_optimizations
;
368 fra
.me
.has_broke
= 0;
370 fra
.me
.REG
[0] = NIT_NULL
;
371 fra
.me
.REG
[1] = NIT_NULL
;
373 /* ./analysis//analysis.nit:91 */
374 fra
.me
.REG
[1] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
375 REGB0
= CALL_program___ToolContext___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
376 if (UNTAG_Bool(REGB0
)) {
378 nit_abort("Assert failed", NULL
, LOCATE_analysis
, 91);
380 /* ./analysis//analysis.nit:92 */
381 fra
.me
.REG
[1] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
382 REGB0
= CALL_analysis___ToolContext___no_inline_get_set(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
383 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
384 if (UNTAG_Bool(REGB0
)) {
385 CALL_inline_get_and_set___Program___inline_get_set(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
387 stack_frame_head
= fra
.me
.prev
;
390 void analysis___Program___do_global_post_analysis_optimizations(val_t p0
){
391 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
394 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
395 fra
.me
.file
= LOCATE_analysis
;
397 fra
.me
.meth
= LOCATE_analysis___Program___do_global_post_analysis_optimizations
;
398 fra
.me
.has_broke
= 0;
400 fra
.me
.REG
[0] = NIT_NULL
;
401 fra
.me
.REG
[1] = NIT_NULL
;
403 /* ./analysis//analysis.nit:98 */
404 fra
.me
.REG
[1] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
405 REGB0
= CALL_program___ToolContext___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
406 if (UNTAG_Bool(REGB0
)) {
408 nit_abort("Assert failed", NULL
, LOCATE_analysis
, 98);
410 /* ./analysis//analysis.nit:99 */
411 fra
.me
.REG
[1] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
412 REGB0
= CALL_analysis___ToolContext___no_dead_method_removal(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
413 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
414 if (UNTAG_Bool(REGB0
)) {
415 CALL_dead_method_removal___Program___optimize_dead_methods(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
417 /* ./analysis//analysis.nit:100 */
418 fra
.me
.REG
[1] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
419 REGB0
= CALL_analysis___ToolContext___no_out_of_init_get_test_removal(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
420 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
421 if (UNTAG_Bool(REGB0
)) {
422 CALL_remove_out_of_init_get_test___Program___optimize_out_of_init_getters(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
424 stack_frame_head
= fra
.me
.prev
;
427 void analysis___Program___dump_global_optimizations_information(val_t p0
, val_t p1
){
428 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
430 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
431 fra
.me
.file
= LOCATE_analysis
;
433 fra
.me
.meth
= LOCATE_analysis___Program___dump_global_optimizations_information
;
434 fra
.me
.has_broke
= 0;
436 fra
.me
.REG
[0] = NIT_NULL
;
437 fra
.me
.REG
[1] = NIT_NULL
;
440 /* ./analysis//analysis.nit:104 */
441 CALL_remove_out_of_init_get_test___Program___dump_out_of_init_information(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
442 /* ./analysis//analysis.nit:105 */
443 CALL_dead_method_removal___Program___dump_dead_method_optimization(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
444 /* ./analysis//analysis.nit:106 */
445 CALL_inline_get_and_set___Program___dump_inline_get_set(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
446 stack_frame_head
= fra
.me
.prev
;
449 void analysis___Program___dump_global_analysis_information(val_t p0
, val_t p1
){
450 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
452 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
453 fra
.me
.file
= LOCATE_analysis
;
455 fra
.me
.meth
= LOCATE_analysis___Program___dump_global_analysis_information
;
456 fra
.me
.has_broke
= 0;
458 fra
.me
.REG
[0] = NIT_NULL
;
459 fra
.me
.REG
[1] = NIT_NULL
;
460 fra
.me
.REG
[2] = NIT_NULL
;
463 /* ./analysis//analysis.nit:111 */
464 fra
.me
.REG
[2] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
465 fra
.me
.REG
[2] = CALL_analysis___ToolContext___global_callgraph(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
466 CALL_reachable_method_analysis___Program___dump_reachable_methods(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
467 /* ./analysis//analysis.nit:112 */
468 fra
.me
.REG
[2] = CALL_program___Program___tc(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
469 fra
.me
.REG
[2] = CALL_analysis___ToolContext___global_callgraph(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
470 CALL_reachable_method_analysis___Program___dump_unreachable_methods(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
471 /* ./analysis//analysis.nit:113 */
472 CALL_instantiated_type_analysis___Program___dump_instantiated_types(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
473 /* ./analysis//analysis.nit:114 */
474 CALL_instantiated_type_analysis___Program___dump_not_instantiated_types(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
475 /* ./analysis//analysis.nit:115 */
476 CALL_reachable_as_init___Program___dump_reachable_as_init_methods(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
477 /* ./analysis//analysis.nit:116 */
478 CALL_reachable_from_init_method_analysis___Program___dump_reachable_methods_from_init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
479 /* ./analysis//analysis.nit:117 */
480 CALL_reachable_from_init_method_analysis___Program___dump_unreachable_methods_from_init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
481 stack_frame_head
= fra
.me
.prev
;
484 void analysis___IRoutine___optimize(val_t p0
, val_t p1
){
485 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
487 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
488 fra
.me
.file
= LOCATE_analysis
;
490 fra
.me
.meth
= LOCATE_analysis___IRoutine___optimize
;
491 fra
.me
.has_broke
= 0;
493 fra
.me
.REG
[0] = NIT_NULL
;
494 fra
.me
.REG
[1] = NIT_NULL
;
497 /* ./analysis//analysis.nit:125 */
498 CALL_inline_methods___IRoutine___inline_methods(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
499 /* ./analysis//analysis.nit:126 */
500 CALL_allocate_iregister_slots___IRoutine___allocate_iregister_slots(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
501 stack_frame_head
= fra
.me
.prev
;