update NOTICE and LICENSE
[nit.git] / c_src / analysis._sep.c
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;
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_analysis;
9 fra.me.line = 48;
10 fra.me.meth = LOCATE_analysis___ToolContext___global_callgraph;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[0] = p0;
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)) {
18 } else {
19 nit_abort("Uninitialized attribute %s", "_global_callgraph", LOCATE_analysis, 48);
20 }
21 fra.me.REG[0] = ATTR_analysis___ToolContext____global_callgraph(fra.me.REG[0]);
22 stack_frame_head = fra.me.prev;
23 return fra.me.REG[0];
24 }
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;
27 val_t tmp;
28 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
29 fra.me.file = LOCATE_analysis;
30 fra.me.line = 48;
31 fra.me.meth = LOCATE_analysis___ToolContext___global_callgraph__eq;
32 fra.me.has_broke = 0;
33 fra.me.REG_size = 2;
34 fra.me.REG[0] = NIT_NULL;
35 fra.me.REG[1] = NIT_NULL;
36 fra.me.REG[0] = p0;
37 fra.me.REG[1] = p1;
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;
41 return;
42 }
43 val_t analysis___ToolContext___no_dead_method_removal(val_t p0){
44 struct {struct stack_frame_t me;} fra;
45 val_t REGB0;
46 val_t tmp;
47 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48 fra.me.file = LOCATE_analysis;
49 fra.me.line = 49;
50 fra.me.meth = LOCATE_analysis___ToolContext___no_dead_method_removal;
51 fra.me.has_broke = 0;
52 fra.me.REG_size = 1;
53 fra.me.REG[0] = NIT_NULL;
54 fra.me.REG[0] = p0;
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)) {
58 } else {
59 nit_abort("Uninitialized attribute %s", "_no_dead_method_removal", LOCATE_analysis, 49);
60 }
61 REGB0 = ATTR_analysis___ToolContext____no_dead_method_removal(fra.me.REG[0]);
62 stack_frame_head = fra.me.prev;
63 return REGB0;
64 }
65 void analysis___ToolContext___no_dead_method_removal__eq(val_t p0, val_t p1){
66 struct {struct stack_frame_t me;} fra;
67 val_t REGB0;
68 val_t tmp;
69 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
70 fra.me.file = LOCATE_analysis;
71 fra.me.line = 49;
72 fra.me.meth = LOCATE_analysis___ToolContext___no_dead_method_removal__eq;
73 fra.me.has_broke = 0;
74 fra.me.REG_size = 1;
75 fra.me.REG[0] = NIT_NULL;
76 fra.me.REG[0] = p0;
77 REGB0 = p1;
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;
81 return;
82 }
83 val_t analysis___ToolContext___no_inline_get_set(val_t p0){
84 struct {struct stack_frame_t me;} fra;
85 val_t REGB0;
86 val_t tmp;
87 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
88 fra.me.file = LOCATE_analysis;
89 fra.me.line = 50;
90 fra.me.meth = LOCATE_analysis___ToolContext___no_inline_get_set;
91 fra.me.has_broke = 0;
92 fra.me.REG_size = 1;
93 fra.me.REG[0] = NIT_NULL;
94 fra.me.REG[0] = p0;
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)) {
98 } else {
99 nit_abort("Uninitialized attribute %s", "_no_inline_get_set", LOCATE_analysis, 50);
100 }
101 REGB0 = ATTR_analysis___ToolContext____no_inline_get_set(fra.me.REG[0]);
102 stack_frame_head = fra.me.prev;
103 return REGB0;
104 }
105 void analysis___ToolContext___no_inline_get_set__eq(val_t p0, val_t p1){
106 struct {struct stack_frame_t me;} fra;
107 val_t REGB0;
108 val_t tmp;
109 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
110 fra.me.file = LOCATE_analysis;
111 fra.me.line = 50;
112 fra.me.meth = LOCATE_analysis___ToolContext___no_inline_get_set__eq;
113 fra.me.has_broke = 0;
114 fra.me.REG_size = 1;
115 fra.me.REG[0] = NIT_NULL;
116 fra.me.REG[0] = p0;
117 REGB0 = p1;
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;
121 return;
122 }
123 val_t analysis___ToolContext___no_callgraph_from_init(val_t p0){
124 struct {struct stack_frame_t me;} fra;
125 val_t REGB0;
126 val_t tmp;
127 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
128 fra.me.file = LOCATE_analysis;
129 fra.me.line = 51;
130 fra.me.meth = LOCATE_analysis___ToolContext___no_callgraph_from_init;
131 fra.me.has_broke = 0;
132 fra.me.REG_size = 1;
133 fra.me.REG[0] = NIT_NULL;
134 fra.me.REG[0] = p0;
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)) {
138 } else {
139 nit_abort("Uninitialized attribute %s", "_no_callgraph_from_init", LOCATE_analysis, 51);
140 }
141 REGB0 = ATTR_analysis___ToolContext____no_callgraph_from_init(fra.me.REG[0]);
142 stack_frame_head = fra.me.prev;
143 return REGB0;
144 }
145 void analysis___ToolContext___no_callgraph_from_init__eq(val_t p0, val_t p1){
146 struct {struct stack_frame_t me;} fra;
147 val_t REGB0;
148 val_t tmp;
149 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
150 fra.me.file = LOCATE_analysis;
151 fra.me.line = 51;
152 fra.me.meth = LOCATE_analysis___ToolContext___no_callgraph_from_init__eq;
153 fra.me.has_broke = 0;
154 fra.me.REG_size = 1;
155 fra.me.REG[0] = NIT_NULL;
156 fra.me.REG[0] = p0;
157 REGB0 = p1;
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;
161 return;
162 }
163 val_t analysis___ToolContext___no_out_of_init_get_test_removal(val_t p0){
164 struct {struct stack_frame_t me;} fra;
165 val_t REGB0;
166 val_t tmp;
167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
168 fra.me.file = LOCATE_analysis;
169 fra.me.line = 52;
170 fra.me.meth = LOCATE_analysis___ToolContext___no_out_of_init_get_test_removal;
171 fra.me.has_broke = 0;
172 fra.me.REG_size = 1;
173 fra.me.REG[0] = NIT_NULL;
174 fra.me.REG[0] = p0;
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)) {
178 } else {
179 nit_abort("Uninitialized attribute %s", "_no_out_of_init_get_test_removal", LOCATE_analysis, 52);
180 }
181 REGB0 = ATTR_analysis___ToolContext____no_out_of_init_get_test_removal(fra.me.REG[0]);
182 stack_frame_head = fra.me.prev;
183 return REGB0;
184 }
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;
187 val_t REGB0;
188 val_t tmp;
189 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
190 fra.me.file = LOCATE_analysis;
191 fra.me.line = 52;
192 fra.me.meth = LOCATE_analysis___ToolContext___no_out_of_init_get_test_removal__eq;
193 fra.me.has_broke = 0;
194 fra.me.REG_size = 1;
195 fra.me.REG[0] = NIT_NULL;
196 fra.me.REG[0] = p0;
197 REGB0 = p1;
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;
201 return;
202 }
203 void analysis___Program___do_global_analysis(val_t p0){
204 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
205 val_t REGB0;
206 val_t REGB1;
207 val_t tmp;
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;
212 fra.me.line = 56;
213 fra.me.meth = LOCATE_analysis___Program___do_global_analysis;
214 fra.me.has_broke = 0;
215 fra.me.REG_size = 3;
216 fra.me.REG[0] = NIT_NULL;
217 fra.me.REG[1] = NIT_NULL;
218 fra.me.REG[2] = NIT_NULL;
219 fra.me.REG[0] = p0;
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)) {
224 } else {
225 nit_abort("Assert failed", NULL, LOCATE_analysis, 58);
226 }
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]);
230 if (!once_value_1) {
231 fra.me.REG[2] = BOX_NativeString("cha");
232 REGB0 = TAG_Int(3);
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)) {
240 } else {
241 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
242 REGB0 = REGB1;
243 }
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]);
252 } else {
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]);
256 if (!once_value_2) {
257 fra.me.REG[1] = BOX_NativeString("rta");
258 REGB0 = TAG_Int(3);
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)) {
266 } else {
267 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
268 REGB0 = REGB1;
269 }
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]);
281 }
282 }
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)) {
287 } else {
288 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
289 if (UNTAG_Bool(REGB1)) {
290 REGB1 = TAG_Bool(false);
291 REGB0 = REGB1;
292 } else {
293 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
294 REGB0 = REGB1;
295 }
296 }
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]);
300 }
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)) {
305 } else {
306 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
307 if (UNTAG_Bool(REGB1)) {
308 REGB1 = TAG_Bool(false);
309 REGB0 = REGB1;
310 } else {
311 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
312 REGB0 = REGB1;
313 }
314 }
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]);
318 }
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]);
338 }
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)) {
343 } else {
344 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
345 if (UNTAG_Bool(REGB1)) {
346 REGB1 = TAG_Bool(false);
347 REGB0 = REGB1;
348 } else {
349 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
350 REGB0 = REGB1;
351 }
352 }
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]);
356 }
357 stack_frame_head = fra.me.prev;
358 return;
359 }
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;
362 val_t REGB0;
363 val_t tmp;
364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
365 fra.me.file = LOCATE_analysis;
366 fra.me.line = 88;
367 fra.me.meth = LOCATE_analysis___Program___do_global_pre_analysis_optimizations;
368 fra.me.has_broke = 0;
369 fra.me.REG_size = 2;
370 fra.me.REG[0] = NIT_NULL;
371 fra.me.REG[1] = NIT_NULL;
372 fra.me.REG[0] = p0;
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)) {
377 } else {
378 nit_abort("Assert failed", NULL, LOCATE_analysis, 91);
379 }
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]);
386 }
387 stack_frame_head = fra.me.prev;
388 return;
389 }
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;
392 val_t REGB0;
393 val_t tmp;
394 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
395 fra.me.file = LOCATE_analysis;
396 fra.me.line = 95;
397 fra.me.meth = LOCATE_analysis___Program___do_global_post_analysis_optimizations;
398 fra.me.has_broke = 0;
399 fra.me.REG_size = 2;
400 fra.me.REG[0] = NIT_NULL;
401 fra.me.REG[1] = NIT_NULL;
402 fra.me.REG[0] = p0;
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)) {
407 } else {
408 nit_abort("Assert failed", NULL, LOCATE_analysis, 98);
409 }
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]);
416 }
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]);
423 }
424 stack_frame_head = fra.me.prev;
425 return;
426 }
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;
429 val_t tmp;
430 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
431 fra.me.file = LOCATE_analysis;
432 fra.me.line = 103;
433 fra.me.meth = LOCATE_analysis___Program___dump_global_optimizations_information;
434 fra.me.has_broke = 0;
435 fra.me.REG_size = 2;
436 fra.me.REG[0] = NIT_NULL;
437 fra.me.REG[1] = NIT_NULL;
438 fra.me.REG[0] = p0;
439 fra.me.REG[1] = p1;
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;
447 return;
448 }
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;
451 val_t tmp;
452 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
453 fra.me.file = LOCATE_analysis;
454 fra.me.line = 109;
455 fra.me.meth = LOCATE_analysis___Program___dump_global_analysis_information;
456 fra.me.has_broke = 0;
457 fra.me.REG_size = 3;
458 fra.me.REG[0] = NIT_NULL;
459 fra.me.REG[1] = NIT_NULL;
460 fra.me.REG[2] = NIT_NULL;
461 fra.me.REG[0] = p0;
462 fra.me.REG[1] = p1;
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;
482 return;
483 }
484 void analysis___IRoutine___optimize(val_t p0, val_t p1){
485 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
486 val_t tmp;
487 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
488 fra.me.file = LOCATE_analysis;
489 fra.me.line = 122;
490 fra.me.meth = LOCATE_analysis___IRoutine___optimize;
491 fra.me.has_broke = 0;
492 fra.me.REG_size = 2;
493 fra.me.REG[0] = NIT_NULL;
494 fra.me.REG[1] = NIT_NULL;
495 fra.me.REG[0] = p0;
496 fra.me.REG[1] = p1;
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;
502 return;
503 }