c_src : Regenerated c_src to prevent use of String contructors
[nit.git] / c_src / global___rta_analysis._sep.c
1 /* This C file is generated by NIT to compile module global___rta_analysis. */
2 #include "global___rta_analysis._sep.h"
3 static const char LOCATE_global___rta_analysis___RtaContext___init[] = "rta_analysis::RtaContext::init";
4 void global___rta_analysis___RtaContext___init(val_t p0, int* init_table){
5 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___rta_analysis___RtaContext].i;
6 struct {struct stack_frame_t me;} fra;
7 val_t tmp;
8 if (init_table[itpos0]) return;
9 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
10 fra.me.file = LOCATE_global___rta_analysis;
11 fra.me.line = 28;
12 fra.me.meth = LOCATE_global___rta_analysis___RtaContext___init;
13 fra.me.has_broke = 0;
14 fra.me.REG_size = 1;
15 fra.me.nitni_local_ref_head = NULL;
16 fra.me.REG[0] = NIT_NULL;
17 fra.me.REG[0] = p0;
18 stack_frame_head = fra.me.prev;
19 init_table[itpos0] = 1;
20 return;
21 }
22 static const char LOCATE_global___rta_analysis___RtaContext___instanciated_classes[] = "rta_analysis::RtaContext::instanciated_classes";
23 val_t global___rta_analysis___RtaContext___instanciated_classes(val_t p0){
24 struct {struct stack_frame_t me;} fra;
25 val_t REGB0;
26 val_t tmp;
27 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
28 fra.me.file = LOCATE_global___rta_analysis;
29 fra.me.line = 29;
30 fra.me.meth = LOCATE_global___rta_analysis___RtaContext___instanciated_classes;
31 fra.me.has_broke = 0;
32 fra.me.REG_size = 1;
33 fra.me.nitni_local_ref_head = NULL;
34 fra.me.REG[0] = NIT_NULL;
35 fra.me.REG[0] = p0;
36 /* global/rta_analysis.nit:29 */
37 REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaContext____instanciated_classes(fra.me.REG[0])!=NIT_NULL);
38 if (UNTAG_Bool(REGB0)) {
39 } else {
40 nit_abort("Uninitialized attribute %s", "_instanciated_classes", LOCATE_global___rta_analysis, 29);
41 }
42 fra.me.REG[0] = ATTR_global___rta_analysis___RtaContext____instanciated_classes(fra.me.REG[0]);
43 stack_frame_head = fra.me.prev;
44 return fra.me.REG[0];
45 }
46 static const char LOCATE_global___rta_analysis___RtaContext___is_class_instantiated[] = "rta_analysis::RtaContext::(instantiated_type_analysis::InstantiatedTypeAnalysis::is_class_instantiated)";
47 val_t global___rta_analysis___RtaContext___is_class_instantiated(val_t p0, val_t p1){
48 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
49 val_t REGB0;
50 val_t tmp;
51 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
52 fra.me.file = LOCATE_global___rta_analysis;
53 fra.me.line = 31;
54 fra.me.meth = LOCATE_global___rta_analysis___RtaContext___is_class_instantiated;
55 fra.me.has_broke = 0;
56 fra.me.REG_size = 2;
57 fra.me.nitni_local_ref_head = NULL;
58 fra.me.REG[0] = NIT_NULL;
59 fra.me.REG[1] = NIT_NULL;
60 fra.me.REG[0] = p0;
61 fra.me.REG[1] = p1;
62 /* global/rta_analysis.nit:31 */
63 fra.me.REG[0] = CALL_global___rta_analysis___RtaContext___instanciated_classes(fra.me.REG[0])(fra.me.REG[0]);
64 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
65 goto label1;
66 label1: while(0);
67 stack_frame_head = fra.me.prev;
68 return REGB0;
69 }
70 static const char LOCATE_global___rta_analysis___RtaContext___reachable_iroutines[] = "rta_analysis::RtaContext::reachable_iroutines";
71 val_t global___rta_analysis___RtaContext___reachable_iroutines(val_t p0){
72 struct {struct stack_frame_t me;} fra;
73 val_t REGB0;
74 val_t tmp;
75 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
76 fra.me.file = LOCATE_global___rta_analysis;
77 fra.me.line = 33;
78 fra.me.meth = LOCATE_global___rta_analysis___RtaContext___reachable_iroutines;
79 fra.me.has_broke = 0;
80 fra.me.REG_size = 1;
81 fra.me.nitni_local_ref_head = NULL;
82 fra.me.REG[0] = NIT_NULL;
83 fra.me.REG[0] = p0;
84 /* global/rta_analysis.nit:33 */
85 REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaContext____reachable_iroutines(fra.me.REG[0])!=NIT_NULL);
86 if (UNTAG_Bool(REGB0)) {
87 } else {
88 nit_abort("Uninitialized attribute %s", "_reachable_iroutines", LOCATE_global___rta_analysis, 33);
89 }
90 fra.me.REG[0] = ATTR_global___rta_analysis___RtaContext____reachable_iroutines(fra.me.REG[0]);
91 stack_frame_head = fra.me.prev;
92 return fra.me.REG[0];
93 }
94 static const char LOCATE_global___rta_analysis___RtaContext___is_iroutine_reachable[] = "rta_analysis::RtaContext::(reachable_method_analysis::ReachableMethodAnalysis::is_iroutine_reachable)";
95 val_t global___rta_analysis___RtaContext___is_iroutine_reachable(val_t p0, val_t p1){
96 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
97 val_t REGB0;
98 val_t REGB1;
99 val_t tmp;
100 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
101 fra.me.file = LOCATE_global___rta_analysis;
102 fra.me.line = 35;
103 fra.me.meth = LOCATE_global___rta_analysis___RtaContext___is_iroutine_reachable;
104 fra.me.has_broke = 0;
105 fra.me.REG_size = 2;
106 fra.me.nitni_local_ref_head = NULL;
107 fra.me.REG[0] = NIT_NULL;
108 fra.me.REG[1] = NIT_NULL;
109 fra.me.REG[0] = p0;
110 fra.me.REG[1] = p1;
111 /* global/rta_analysis.nit:36 */
112 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
113 if (UNTAG_Bool(REGB0)) {
114 } else {
115 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
116 if (UNTAG_Bool(REGB1)) {
117 REGB1 = TAG_Bool(0);
118 REGB0 = REGB1;
119 } else {
120 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
121 REGB0 = REGB1;
122 }
123 }
124 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
125 if (UNTAG_Bool(REGB0)) {
126 fra.me.REG[0] = CALL_global___rta_analysis___RtaContext___reachable_iroutines(fra.me.REG[0])(fra.me.REG[0]);
127 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
128 } else {
129 REGB1 = TAG_Bool(0);
130 REGB0 = REGB1;
131 }
132 goto label1;
133 label1: while(0);
134 stack_frame_head = fra.me.prev;
135 return REGB0;
136 }
137 static const char LOCATE_global___rta_analysis___RtaContext___is_method_reachable[] = "rta_analysis::RtaContext::(reachable_method_analysis::ReachableMethodAnalysis::is_method_reachable)";
138 val_t global___rta_analysis___RtaContext___is_method_reachable(val_t p0, val_t p1){
139 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
140 val_t REGB0;
141 val_t tmp;
142 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
143 fra.me.file = LOCATE_global___rta_analysis;
144 fra.me.line = 39;
145 fra.me.meth = LOCATE_global___rta_analysis___RtaContext___is_method_reachable;
146 fra.me.has_broke = 0;
147 fra.me.REG_size = 2;
148 fra.me.nitni_local_ref_head = NULL;
149 fra.me.REG[0] = NIT_NULL;
150 fra.me.REG[1] = NIT_NULL;
151 fra.me.REG[0] = p0;
152 fra.me.REG[1] = p1;
153 /* global/rta_analysis.nit:40 */
154 fra.me.REG[1] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[1])(fra.me.REG[1]);
155 REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
156 goto label1;
157 label1: while(0);
158 stack_frame_head = fra.me.prev;
159 return REGB0;
160 }
161 static const char LOCATE_global___rta_analysis___RtaBuilder___context[] = "rta_analysis::RtaBuilder::context";
162 val_t global___rta_analysis___RtaBuilder___context(val_t p0){
163 struct {struct stack_frame_t me;} fra;
164 val_t REGB0;
165 val_t tmp;
166 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
167 fra.me.file = LOCATE_global___rta_analysis;
168 fra.me.line = 45;
169 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___context;
170 fra.me.has_broke = 0;
171 fra.me.REG_size = 1;
172 fra.me.nitni_local_ref_head = NULL;
173 fra.me.REG[0] = NIT_NULL;
174 fra.me.REG[0] = p0;
175 /* global/rta_analysis.nit:45 */
176 REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____context(fra.me.REG[0])!=NIT_NULL);
177 if (UNTAG_Bool(REGB0)) {
178 } else {
179 nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___rta_analysis, 45);
180 }
181 fra.me.REG[0] = ATTR_global___rta_analysis___RtaBuilder____context(fra.me.REG[0]);
182 stack_frame_head = fra.me.prev;
183 return fra.me.REG[0];
184 }
185 static const char LOCATE_global___rta_analysis___RtaBuilder___program[] = "rta_analysis::RtaBuilder::program";
186 val_t global___rta_analysis___RtaBuilder___program(val_t p0){
187 struct {struct stack_frame_t me;} fra;
188 val_t REGB0;
189 val_t tmp;
190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
191 fra.me.file = LOCATE_global___rta_analysis;
192 fra.me.line = 46;
193 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___program;
194 fra.me.has_broke = 0;
195 fra.me.REG_size = 1;
196 fra.me.nitni_local_ref_head = NULL;
197 fra.me.REG[0] = NIT_NULL;
198 fra.me.REG[0] = p0;
199 /* global/rta_analysis.nit:46 */
200 REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____program(fra.me.REG[0])!=NIT_NULL);
201 if (UNTAG_Bool(REGB0)) {
202 } else {
203 nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___rta_analysis, 46);
204 }
205 fra.me.REG[0] = ATTR_global___rta_analysis___RtaBuilder____program(fra.me.REG[0]);
206 stack_frame_head = fra.me.prev;
207 return fra.me.REG[0];
208 }
209 static const char LOCATE_global___rta_analysis___RtaBuilder___iroutine_to_search[] = "rta_analysis::RtaBuilder::iroutine_to_search";
210 val_t global___rta_analysis___RtaBuilder___iroutine_to_search(val_t p0){
211 struct {struct stack_frame_t me;} fra;
212 val_t REGB0;
213 val_t tmp;
214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
215 fra.me.file = LOCATE_global___rta_analysis;
216 fra.me.line = 47;
217 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___iroutine_to_search;
218 fra.me.has_broke = 0;
219 fra.me.REG_size = 1;
220 fra.me.nitni_local_ref_head = NULL;
221 fra.me.REG[0] = NIT_NULL;
222 fra.me.REG[0] = p0;
223 /* global/rta_analysis.nit:47 */
224 REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____iroutine_to_search(fra.me.REG[0])!=NIT_NULL);
225 if (UNTAG_Bool(REGB0)) {
226 } else {
227 nit_abort("Uninitialized attribute %s", "_iroutine_to_search", LOCATE_global___rta_analysis, 47);
228 }
229 fra.me.REG[0] = ATTR_global___rta_analysis___RtaBuilder____iroutine_to_search(fra.me.REG[0]);
230 stack_frame_head = fra.me.prev;
231 return fra.me.REG[0];
232 }
233 static const char LOCATE_global___rta_analysis___RtaBuilder___call_sites[] = "rta_analysis::RtaBuilder::call_sites";
234 val_t global___rta_analysis___RtaBuilder___call_sites(val_t p0){
235 struct {struct stack_frame_t me;} fra;
236 val_t REGB0;
237 val_t tmp;
238 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
239 fra.me.file = LOCATE_global___rta_analysis;
240 fra.me.line = 48;
241 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___call_sites;
242 fra.me.has_broke = 0;
243 fra.me.REG_size = 1;
244 fra.me.nitni_local_ref_head = NULL;
245 fra.me.REG[0] = NIT_NULL;
246 fra.me.REG[0] = p0;
247 /* global/rta_analysis.nit:48 */
248 REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____call_sites(fra.me.REG[0])!=NIT_NULL);
249 if (UNTAG_Bool(REGB0)) {
250 } else {
251 nit_abort("Uninitialized attribute %s", "_call_sites", LOCATE_global___rta_analysis, 48);
252 }
253 fra.me.REG[0] = ATTR_global___rta_analysis___RtaBuilder____call_sites(fra.me.REG[0]);
254 stack_frame_head = fra.me.prev;
255 return fra.me.REG[0];
256 }
257 static const char LOCATE_global___rta_analysis___RtaBuilder___called_methods[] = "rta_analysis::RtaBuilder::called_methods";
258 val_t global___rta_analysis___RtaBuilder___called_methods(val_t p0){
259 struct {struct stack_frame_t me;} fra;
260 val_t REGB0;
261 val_t tmp;
262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
263 fra.me.file = LOCATE_global___rta_analysis;
264 fra.me.line = 49;
265 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___called_methods;
266 fra.me.has_broke = 0;
267 fra.me.REG_size = 1;
268 fra.me.nitni_local_ref_head = NULL;
269 fra.me.REG[0] = NIT_NULL;
270 fra.me.REG[0] = p0;
271 /* global/rta_analysis.nit:49 */
272 REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaBuilder____called_methods(fra.me.REG[0])!=NIT_NULL);
273 if (UNTAG_Bool(REGB0)) {
274 } else {
275 nit_abort("Uninitialized attribute %s", "_called_methods", LOCATE_global___rta_analysis, 49);
276 }
277 fra.me.REG[0] = ATTR_global___rta_analysis___RtaBuilder____called_methods(fra.me.REG[0]);
278 stack_frame_head = fra.me.prev;
279 return fra.me.REG[0];
280 }
281 static const char LOCATE_global___rta_analysis___RtaBuilder___init[] = "rta_analysis::RtaBuilder::init";
282 void global___rta_analysis___RtaBuilder___init(val_t p0, val_t p1, int* init_table){
283 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___rta_analysis___RtaBuilder].i;
284 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
285 val_t tmp;
286 if (init_table[itpos1]) return;
287 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
288 fra.me.file = LOCATE_global___rta_analysis;
289 fra.me.line = 51;
290 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___init;
291 fra.me.has_broke = 0;
292 fra.me.REG_size = 3;
293 fra.me.nitni_local_ref_head = NULL;
294 fra.me.REG[0] = NIT_NULL;
295 fra.me.REG[1] = NIT_NULL;
296 fra.me.REG[2] = NIT_NULL;
297 fra.me.REG[0] = p0;
298 fra.me.REG[1] = p1;
299 /* global/rta_analysis.nit:52 */
300 fra.me.REG[2] = NEW_RtaContext_global___rta_analysis___RtaContext___init();
301 ATTR_global___rta_analysis___RtaBuilder____context(fra.me.REG[0]) = fra.me.REG[2];
302 /* global/rta_analysis.nit:53 */
303 ATTR_global___rta_analysis___RtaBuilder____program(fra.me.REG[0]) = fra.me.REG[1];
304 stack_frame_head = fra.me.prev;
305 init_table[itpos1] = 1;
306 return;
307 }
308 static const char LOCATE_global___rta_analysis___RtaBuilder___check_method[] = "rta_analysis::RtaBuilder::check_method";
309 val_t global___rta_analysis___RtaBuilder___check_method(val_t p0, val_t p1){
310 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
311 val_t REGB0;
312 val_t tmp;
313 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
314 fra.me.file = LOCATE_global___rta_analysis;
315 fra.me.line = 56;
316 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_method;
317 fra.me.has_broke = 0;
318 fra.me.REG_size = 4;
319 fra.me.nitni_local_ref_head = NULL;
320 fra.me.REG[0] = NIT_NULL;
321 fra.me.REG[1] = NIT_NULL;
322 fra.me.REG[2] = NIT_NULL;
323 fra.me.REG[3] = NIT_NULL;
324 fra.me.REG[0] = p0;
325 fra.me.REG[1] = p1;
326 /* global/rta_analysis.nit:60 */
327 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
328 fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
329 fra.me.REG[3] = CALL_program___Program___main_module(fra.me.REG[3])(fra.me.REG[3]);
330 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
331 /* global/rta_analysis.nit:62 */
332 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
333 REGB0 = CALL_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
334 if (UNTAG_Bool(REGB0)) {
335 REGB0 = TAG_Bool(1);
336 fra.me.REG[2] = REGB0;
337 goto label1;
338 }
339 /* global/rta_analysis.nit:64 */
340 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[3])(fra.me.REG[3]);
341 fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[3])(fra.me.REG[3]);
342 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___check_method_2));
343 switch ((&(fra.me))->has_broke) {
344 case 0: break;
345 case 1: (&(fra.me))->has_broke = 0; goto label1;
346 }
347 /* global/rta_analysis.nit:68 */
348 REGB0 = TAG_Bool(0);
349 fra.me.REG[2] = REGB0;
350 goto label1;
351 label1: while(0);
352 stack_frame_head = fra.me.prev;
353 return fra.me.REG[2];
354 }
355 void OC_global___rta_analysis___RtaBuilder___check_method_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
356 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
357 val_t REGB0;
358 val_t REGB1;
359 fun_t CREG[1];
360 val_t tmp;
361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
362 fra.me.file = LOCATE_global___rta_analysis;
363 fra.me.line = 0;
364 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_method;
365 fra.me.has_broke = 0;
366 fra.me.REG_size = 2;
367 fra.me.nitni_local_ref_head = NULL;
368 fra.me.REG[0] = NIT_NULL;
369 fra.me.REG[1] = NIT_NULL;
370 fra.me.closure_ctx = closctx_param;
371 fra.me.closure_funs = CREG;
372 fra.me.REG[0] = p0;
373 CREG[0] = clos_fun0;
374 /* global/rta_analysis.nit:65 */
375 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(closctx->REG[1])(closctx->REG[1]);
376 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
377 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[1]));
378 if (UNTAG_Bool(REGB0)) {
379 } else {
380 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[1]);
381 REGB0 = REGB1;
382 }
383 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
384 if (UNTAG_Bool(REGB0)) {
385 goto label3;
386 }
387 /* global/rta_analysis.nit:66 */
388 fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___context(closctx->REG[0])(closctx->REG[0]);
389 REGB0 = CALL_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
390 if (UNTAG_Bool(REGB0)) {
391 REGB0 = TAG_Bool(1);
392 closctx->REG[2] = REGB0;
393 closctx->has_broke = 1;
394 goto label3;
395 }
396 label3: while(0);
397 stack_frame_head = fra.me.prev;
398 return;
399 }
400 static const char LOCATE_global___rta_analysis___RtaBuilder___check_call_sites[] = "rta_analysis::RtaBuilder::check_call_sites";
401 void global___rta_analysis___RtaBuilder___check_call_sites(val_t p0){
402 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
403 val_t tmp;
404 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
405 fra.me.file = LOCATE_global___rta_analysis;
406 fra.me.line = 71;
407 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_call_sites;
408 fra.me.has_broke = 0;
409 fra.me.REG_size = 3;
410 fra.me.nitni_local_ref_head = NULL;
411 fra.me.REG[0] = NIT_NULL;
412 fra.me.REG[1] = NIT_NULL;
413 fra.me.REG[2] = NIT_NULL;
414 fra.me.REG[0] = p0;
415 /* global/rta_analysis.nit:74 */
416 fra.me.REG[1] = NEW_List_standard___collection___list___List___init();
417 /* global/rta_analysis.nit:75 */
418 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___call_sites(fra.me.REG[0])(fra.me.REG[0]);
419 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___check_call_sites_1));
420 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___check_call_sites_4));
421 stack_frame_head = fra.me.prev;
422 return;
423 }
424 void OC_global___rta_analysis___RtaBuilder___check_call_sites_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
425 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
426 val_t REGB0;
427 fun_t CREG[1];
428 val_t tmp;
429 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
430 fra.me.file = LOCATE_global___rta_analysis;
431 fra.me.line = 0;
432 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_call_sites;
433 fra.me.has_broke = 0;
434 fra.me.REG_size = 3;
435 fra.me.nitni_local_ref_head = NULL;
436 fra.me.REG[0] = NIT_NULL;
437 fra.me.REG[1] = NIT_NULL;
438 fra.me.REG[2] = NIT_NULL;
439 fra.me.closure_ctx = closctx_param;
440 fra.me.closure_funs = CREG;
441 fra.me.REG[0] = p0;
442 CREG[0] = clos_fun0;
443 /* global/rta_analysis.nit:76 */
444 fra.me.REG[1] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[0])(fra.me.REG[0]);
445 /* global/rta_analysis.nit:77 */
446 REGB0 = TAG_Bool(1);
447 closctx->REG[2] = REGB0;
448 /* global/rta_analysis.nit:80 */
449 REGB0 = CALL_global___rta_analysis___RtaBuilder___check_method(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
450 if (UNTAG_Bool(REGB0)) {
451 /* global/rta_analysis.nit:81 */
452 fra.me.REG[2] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[1])(fra.me.REG[1]);
453 CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(closctx->REG[0])(closctx->REG[0], fra.me.REG[2]);
454 } else {
455 /* global/rta_analysis.nit:83 */
456 REGB0 = TAG_Bool(0);
457 closctx->REG[2] = REGB0;
458 }
459 /* global/rta_analysis.nit:87 */
460 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[1])(fra.me.REG[1]);
461 fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[1])(fra.me.REG[1]);
462 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], closctx, ((fun_t)OC_global___rta_analysis___RtaBuilder___check_call_sites_2));
463 /* global/rta_analysis.nit:96 */
464 if (UNTAG_Bool(closctx->REG[2])) {
465 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
466 }
467 stack_frame_head = fra.me.prev;
468 return;
469 }
470 void OC_global___rta_analysis___RtaBuilder___check_call_sites_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
471 struct {struct stack_frame_t me;} fra;
472 val_t REGB0;
473 fun_t CREG[1];
474 val_t tmp;
475 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
476 fra.me.file = LOCATE_global___rta_analysis;
477 fra.me.line = 0;
478 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_call_sites;
479 fra.me.has_broke = 0;
480 fra.me.REG_size = 1;
481 fra.me.nitni_local_ref_head = NULL;
482 fra.me.REG[0] = NIT_NULL;
483 fra.me.closure_ctx = closctx_param;
484 fra.me.closure_funs = CREG;
485 fra.me.REG[0] = p0;
486 CREG[0] = clos_fun0;
487 /* global/rta_analysis.nit:88 */
488 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
489 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
490 if (UNTAG_Bool(REGB0)) {
491 goto label3;
492 }
493 /* global/rta_analysis.nit:89 */
494 REGB0 = CALL_global___rta_analysis___RtaBuilder___check_method(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
495 if (UNTAG_Bool(REGB0)) {
496 /* global/rta_analysis.nit:90 */
497 fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
498 CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
499 } else {
500 /* global/rta_analysis.nit:92 */
501 REGB0 = TAG_Bool(0);
502 closctx->REG[2] = REGB0;
503 }
504 label3: while(0);
505 stack_frame_head = fra.me.prev;
506 return;
507 }
508 void OC_global___rta_analysis___RtaBuilder___check_call_sites_4(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
509 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
510 fun_t CREG[1];
511 val_t tmp;
512 /* global/rta_analysis.nit:100 */
513 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
514 fra.me.file = LOCATE_global___rta_analysis;
515 fra.me.line = 0;
516 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___check_call_sites;
517 fra.me.has_broke = 0;
518 fra.me.REG_size = 2;
519 fra.me.nitni_local_ref_head = NULL;
520 fra.me.REG[0] = NIT_NULL;
521 fra.me.REG[1] = NIT_NULL;
522 fra.me.closure_ctx = closctx_param;
523 fra.me.closure_funs = CREG;
524 fra.me.REG[0] = p0;
525 CREG[0] = clos_fun0;
526 /* global/rta_analysis.nit:101 */
527 fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___call_sites(closctx->REG[0])(closctx->REG[0]);
528 CALL_standard___collection___abstract_collection___RemovableCollection___remove(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
529 stack_frame_head = fra.me.prev;
530 return;
531 }
532 static const char LOCATE_global___rta_analysis___RtaBuilder___add_instantiated_class[] = "rta_analysis::RtaBuilder::add_instantiated_class";
533 void global___rta_analysis___RtaBuilder___add_instantiated_class(val_t p0, val_t p1){
534 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
535 val_t REGB0;
536 val_t tmp;
537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
538 fra.me.file = LOCATE_global___rta_analysis;
539 fra.me.line = 105;
540 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___add_instantiated_class;
541 fra.me.has_broke = 0;
542 fra.me.REG_size = 3;
543 fra.me.nitni_local_ref_head = NULL;
544 fra.me.REG[0] = NIT_NULL;
545 fra.me.REG[1] = NIT_NULL;
546 fra.me.REG[2] = NIT_NULL;
547 fra.me.REG[0] = p0;
548 fra.me.REG[1] = p1;
549 /* global/rta_analysis.nit:106 */
550 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
551 REGB0 = CALL_global___instantiated_type_analysis___InstantiatedTypeAnalysis___is_class_instantiated(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
552 if (UNTAG_Bool(REGB0)) {
553 goto label1;
554 }
555 /* global/rta_analysis.nit:107 */
556 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
557 fra.me.REG[2] = CALL_global___rta_analysis___RtaContext___instanciated_classes(fra.me.REG[2])(fra.me.REG[2]);
558 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
559 /* global/rta_analysis.nit:109 */
560 CALL_global___rta_analysis___RtaBuilder___check_call_sites(fra.me.REG[0])(fra.me.REG[0]);
561 label1: while(0);
562 stack_frame_head = fra.me.prev;
563 return;
564 }
565 static const char LOCATE_global___rta_analysis___RtaBuilder___add_reachable_call[] = "rta_analysis::RtaBuilder::add_reachable_call";
566 void global___rta_analysis___RtaBuilder___add_reachable_call(val_t p0, val_t p1){
567 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
568 val_t REGB0;
569 val_t tmp;
570 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
571 fra.me.file = LOCATE_global___rta_analysis;
572 fra.me.line = 112;
573 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___add_reachable_call;
574 fra.me.has_broke = 0;
575 fra.me.REG_size = 4;
576 fra.me.nitni_local_ref_head = NULL;
577 fra.me.REG[0] = NIT_NULL;
578 fra.me.REG[1] = NIT_NULL;
579 fra.me.REG[2] = NIT_NULL;
580 fra.me.REG[3] = NIT_NULL;
581 fra.me.REG[0] = p0;
582 fra.me.REG[1] = p1;
583 /* global/rta_analysis.nit:113 */
584 fra.me.REG[2] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[1])(fra.me.REG[1]);
585 /* global/rta_analysis.nit:114 */
586 fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___called_methods(fra.me.REG[0])(fra.me.REG[0]);
587 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
588 if (UNTAG_Bool(REGB0)) {
589 goto label1;
590 }
591 /* global/rta_analysis.nit:115 */
592 fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___call_sites(fra.me.REG[0])(fra.me.REG[0]);
593 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
594 if (UNTAG_Bool(REGB0)) {
595 goto label1;
596 }
597 /* global/rta_analysis.nit:117 */
598 fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___call_sites(fra.me.REG[0])(fra.me.REG[0]);
599 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
600 /* global/rta_analysis.nit:118 */
601 fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___called_methods(fra.me.REG[0])(fra.me.REG[0]);
602 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
603 /* global/rta_analysis.nit:119 */
604 CALL_global___rta_analysis___RtaBuilder___check_call_sites(fra.me.REG[0])(fra.me.REG[0]);
605 label1: while(0);
606 stack_frame_head = fra.me.prev;
607 return;
608 }
609 static const char LOCATE_global___rta_analysis___RtaBuilder___add_reachable_iroutine[] = "rta_analysis::RtaBuilder::add_reachable_iroutine";
610 void global___rta_analysis___RtaBuilder___add_reachable_iroutine(val_t p0, val_t p1){
611 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
612 val_t REGB0;
613 val_t REGB1;
614 val_t tmp;
615 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
616 fra.me.file = LOCATE_global___rta_analysis;
617 fra.me.line = 122;
618 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___add_reachable_iroutine;
619 fra.me.has_broke = 0;
620 fra.me.REG_size = 3;
621 fra.me.nitni_local_ref_head = NULL;
622 fra.me.REG[0] = NIT_NULL;
623 fra.me.REG[1] = NIT_NULL;
624 fra.me.REG[2] = NIT_NULL;
625 fra.me.REG[0] = p0;
626 fra.me.REG[1] = p1;
627 /* global/rta_analysis.nit:123 */
628 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
629 if (UNTAG_Bool(REGB0)) {
630 } else {
631 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
632 if (UNTAG_Bool(REGB1)) {
633 REGB1 = TAG_Bool(0);
634 REGB0 = REGB1;
635 } else {
636 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
637 REGB0 = REGB1;
638 }
639 }
640 if (UNTAG_Bool(REGB0)) {
641 REGB0 = TAG_Bool(1);
642 } else {
643 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
644 REGB1 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
645 REGB0 = REGB1;
646 }
647 if (UNTAG_Bool(REGB0)) {
648 goto label1;
649 }
650 /* global/rta_analysis.nit:124 */
651 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___context(fra.me.REG[0])(fra.me.REG[0]);
652 fra.me.REG[2] = CALL_global___rta_analysis___RtaContext___reachable_iroutines(fra.me.REG[2])(fra.me.REG[2]);
653 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
654 /* global/rta_analysis.nit:125 */
655 fra.me.REG[0] = CALL_global___rta_analysis___RtaBuilder___iroutine_to_search(fra.me.REG[0])(fra.me.REG[0]);
656 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
657 label1: while(0);
658 stack_frame_head = fra.me.prev;
659 return;
660 }
661 static const char LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis[] = "rta_analysis::RtaBuilder::force_some_type_analysis";
662 void global___rta_analysis___RtaBuilder___force_some_type_analysis(val_t p0){
663 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
664 val_t REGB0;
665 val_t REGB1;
666 val_t REGB2;
667 val_t tmp;
668 static val_t once_value_1; /* Once value */
669 static val_t once_value_2; /* Once value */
670 static val_t once_value_3; /* Once value */
671 static val_t once_value_4; /* Once value */
672 static val_t once_value_5; /* Once value */
673 static val_t once_value_6; /* Once value */
674 static val_t once_value_7; /* Once value */
675 static val_t once_value_8; /* Once value */
676 static val_t once_value_9; /* Once value */
677 static val_t once_value_10; /* Once value */
678 static val_t once_value_13; /* Once value */
679 static val_t once_value_14; /* Once value */
680 static val_t once_value_16; /* Once value */
681 static val_t once_value_17; /* Once value */
682 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
683 fra.me.file = LOCATE_global___rta_analysis;
684 fra.me.line = 128;
685 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis;
686 fra.me.has_broke = 0;
687 fra.me.REG_size = 6;
688 fra.me.nitni_local_ref_head = NULL;
689 fra.me.REG[0] = NIT_NULL;
690 fra.me.REG[1] = NIT_NULL;
691 fra.me.REG[2] = NIT_NULL;
692 fra.me.REG[3] = NIT_NULL;
693 fra.me.REG[4] = NIT_NULL;
694 fra.me.REG[5] = NIT_NULL;
695 fra.me.REG[0] = p0;
696 /* global/rta_analysis.nit:130 */
697 REGB0 = TAG_Int(10);
698 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
699 if (!once_value_1) {
700 fra.me.REG[2] = BOX_NativeString("Object");
701 REGB0 = TAG_Int(6);
702 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
703 once_value_1 = fra.me.REG[2];
704 register_static_object(&once_value_1);
705 } else fra.me.REG[2] = once_value_1;
706 fra.me.REG[2] = fra.me.REG[2];
707 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
708 if (!once_value_2) {
709 fra.me.REG[2] = BOX_NativeString("Bool");
710 REGB0 = TAG_Int(4);
711 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
712 once_value_2 = fra.me.REG[2];
713 register_static_object(&once_value_2);
714 } else fra.me.REG[2] = once_value_2;
715 fra.me.REG[2] = fra.me.REG[2];
716 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
717 if (!once_value_3) {
718 fra.me.REG[2] = BOX_NativeString("Float");
719 REGB0 = TAG_Int(5);
720 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
721 once_value_3 = fra.me.REG[2];
722 register_static_object(&once_value_3);
723 } else fra.me.REG[2] = once_value_3;
724 fra.me.REG[2] = fra.me.REG[2];
725 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
726 if (!once_value_4) {
727 fra.me.REG[2] = BOX_NativeString("Int");
728 REGB0 = TAG_Int(3);
729 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
730 once_value_4 = fra.me.REG[2];
731 register_static_object(&once_value_4);
732 } else fra.me.REG[2] = once_value_4;
733 fra.me.REG[2] = fra.me.REG[2];
734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
735 if (!once_value_5) {
736 fra.me.REG[2] = BOX_NativeString("String");
737 REGB0 = TAG_Int(6);
738 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
739 once_value_5 = fra.me.REG[2];
740 register_static_object(&once_value_5);
741 } else fra.me.REG[2] = once_value_5;
742 fra.me.REG[2] = fra.me.REG[2];
743 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
744 if (!once_value_6) {
745 fra.me.REG[2] = BOX_NativeString("NativeString");
746 REGB0 = TAG_Int(12);
747 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
748 once_value_6 = fra.me.REG[2];
749 register_static_object(&once_value_6);
750 } else fra.me.REG[2] = once_value_6;
751 fra.me.REG[2] = fra.me.REG[2];
752 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
753 if (!once_value_7) {
754 fra.me.REG[2] = BOX_NativeString("Range");
755 REGB0 = TAG_Int(5);
756 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
757 once_value_7 = fra.me.REG[2];
758 register_static_object(&once_value_7);
759 } else fra.me.REG[2] = once_value_7;
760 fra.me.REG[2] = fra.me.REG[2];
761 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
762 if (!once_value_8) {
763 fra.me.REG[2] = BOX_NativeString("Array");
764 REGB0 = TAG_Int(5);
765 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
766 once_value_8 = fra.me.REG[2];
767 register_static_object(&once_value_8);
768 } else fra.me.REG[2] = once_value_8;
769 fra.me.REG[2] = fra.me.REG[2];
770 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
771 if (!once_value_9) {
772 fra.me.REG[2] = BOX_NativeString("ArrayIterator");
773 REGB0 = TAG_Int(13);
774 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
775 once_value_9 = fra.me.REG[2];
776 register_static_object(&once_value_9);
777 } else fra.me.REG[2] = once_value_9;
778 fra.me.REG[2] = fra.me.REG[2];
779 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
780 if (!once_value_10) {
781 fra.me.REG[2] = BOX_NativeString("Inline__");
782 REGB0 = TAG_Int(8);
783 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
784 once_value_10 = fra.me.REG[2];
785 register_static_object(&once_value_10);
786 } else fra.me.REG[2] = once_value_10;
787 fra.me.REG[2] = fra.me.REG[2];
788 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
789 /* ../lib/standard/collection/array.nit:270 */
790 REGB0 = TAG_Int(0);
791 /* ../lib/standard/collection/array.nit:271 */
792 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
793 if (UNTAG_Bool(REGB1)) {
794 } else {
795 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
796 }
797 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
798 /* ../lib/standard/collection/array.nit:272 */
799 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
800 /* ../lib/standard/collection/array.nit:273 */
801 while(1) {
802 /* ../lib/standard/collection/array.nit:24 */
803 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
804 if (UNTAG_Bool(REGB1)) {
805 } else {
806 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
807 }
808 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
809 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
810 if (UNTAG_Bool(REGB2)) {
811 } else {
812 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
813 }
814 /* ../lib/standard/kernel.nit:242 */
815 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
816 /* ../lib/standard/collection/array.nit:273 */
817 if (UNTAG_Bool(REGB1)) {
818 /* ../lib/standard/collection/array.nit:274 */
819 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
820 if (UNTAG_Bool(REGB1)) {
821 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
822 }
823 /* ../lib/standard/collection/array.nit:725 */
824 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
825 /* global/rta_analysis.nit:133 */
826 fra.me.REG[4] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
827 fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
828 fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
829 REGB1 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
830 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
831 if (UNTAG_Bool(REGB1)) {
832 goto label11;
833 }
834 /* global/rta_analysis.nit:134 */
835 fra.me.REG[5] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
836 fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
837 fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
838 fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
839 /* global/rta_analysis.nit:135 */
840 CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
841 label11: while(0);
842 /* ../lib/standard/collection/array.nit:275 */
843 REGB1 = TAG_Int(1);
844 /* ../lib/standard/kernel.nit:245 */
845 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
846 /* ../lib/standard/collection/array.nit:275 */
847 REGB0 = REGB1;
848 } else {
849 /* ../lib/standard/collection/array.nit:273 */
850 goto label12;
851 }
852 }
853 label12: while(0);
854 /* global/rta_analysis.nit:138 */
855 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
856 fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[2])(fra.me.REG[2]);
857 if (!once_value_13) {
858 fra.me.REG[1] = BOX_NativeString("Inline__");
859 REGB0 = TAG_Int(8);
860 fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
861 once_value_13 = fra.me.REG[1];
862 register_static_object(&once_value_13);
863 } else fra.me.REG[1] = once_value_13;
864 fra.me.REG[1] = fra.me.REG[1];
865 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
866 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
867 if (UNTAG_Bool(REGB0)) {
868 /* global/rta_analysis.nit:139 */
869 fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
870 fra.me.REG[1] = CALL_program___Program___main_module(fra.me.REG[1])(fra.me.REG[1]);
871 if (!once_value_14) {
872 fra.me.REG[2] = BOX_NativeString("Inline__");
873 REGB0 = TAG_Int(8);
874 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
875 once_value_14 = fra.me.REG[2];
876 register_static_object(&once_value_14);
877 } else fra.me.REG[2] = once_value_14;
878 fra.me.REG[2] = fra.me.REG[2];
879 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
880 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
881 /* global/rta_analysis.nit:143 */
882 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
883 fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[2])(fra.me.REG[2]);
884 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_15));
885 }
886 /* global/rta_analysis.nit:148 */
887 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
888 fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[2])(fra.me.REG[2]);
889 if (!once_value_16) {
890 fra.me.REG[1] = BOX_NativeString("Pointer");
891 REGB0 = TAG_Int(7);
892 fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
893 once_value_16 = fra.me.REG[1];
894 register_static_object(&once_value_16);
895 } else fra.me.REG[1] = once_value_16;
896 fra.me.REG[1] = fra.me.REG[1];
897 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
898 REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
899 if (UNTAG_Bool(REGB0)) {
900 /* global/rta_analysis.nit:149 */
901 fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
902 fra.me.REG[1] = CALL_program___Program___main_module(fra.me.REG[1])(fra.me.REG[1]);
903 if (!once_value_17) {
904 fra.me.REG[2] = BOX_NativeString("Pointer");
905 REGB0 = TAG_Int(7);
906 fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
907 once_value_17 = fra.me.REG[2];
908 register_static_object(&once_value_17);
909 } else fra.me.REG[2] = once_value_17;
910 fra.me.REG[2] = fra.me.REG[2];
911 fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
912 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
913 /* global/rta_analysis.nit:153 */
914 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
915 fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[2])(fra.me.REG[2]);
916 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_18));
917 }
918 /* global/rta_analysis.nit:158 */
919 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
920 fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[2])(fra.me.REG[2]);
921 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___global_classes(fra.me.REG[2])(fra.me.REG[2]);
922 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_19));
923 /* global/rta_analysis.nit:165 */
924 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[0])(fra.me.REG[0]);
925 CALL_program___Program___with_each_methods(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_21));
926 stack_frame_head = fra.me.prev;
927 return;
928 }
929 void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_15(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
930 struct {struct stack_frame_t me;} fra;
931 fun_t CREG[1];
932 val_t tmp;
933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
934 fra.me.file = LOCATE_global___rta_analysis;
935 fra.me.line = 0;
936 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis;
937 fra.me.has_broke = 0;
938 fra.me.REG_size = 1;
939 fra.me.nitni_local_ref_head = NULL;
940 fra.me.REG[0] = NIT_NULL;
941 fra.me.closure_ctx = closctx_param;
942 fra.me.closure_funs = CREG;
943 fra.me.REG[0] = p0;
944 CREG[0] = clos_fun0;
945 /* global/rta_analysis.nit:144 */
946 CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
947 stack_frame_head = fra.me.prev;
948 return;
949 }
950 void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_18(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
951 struct {struct stack_frame_t me;} fra;
952 fun_t CREG[1];
953 val_t tmp;
954 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
955 fra.me.file = LOCATE_global___rta_analysis;
956 fra.me.line = 0;
957 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis;
958 fra.me.has_broke = 0;
959 fra.me.REG_size = 1;
960 fra.me.nitni_local_ref_head = NULL;
961 fra.me.REG[0] = NIT_NULL;
962 fra.me.closure_ctx = closctx_param;
963 fra.me.closure_funs = CREG;
964 fra.me.REG[0] = p0;
965 CREG[0] = clos_fun0;
966 /* global/rta_analysis.nit:154 */
967 CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
968 stack_frame_head = fra.me.prev;
969 return;
970 }
971 void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_19(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
972 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
973 val_t REGB0;
974 val_t REGB1;
975 fun_t CREG[1];
976 val_t tmp;
977 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
978 fra.me.file = LOCATE_global___rta_analysis;
979 fra.me.line = 0;
980 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis;
981 fra.me.has_broke = 0;
982 fra.me.REG_size = 2;
983 fra.me.nitni_local_ref_head = NULL;
984 fra.me.REG[0] = NIT_NULL;
985 fra.me.REG[1] = NIT_NULL;
986 fra.me.closure_ctx = closctx_param;
987 fra.me.closure_funs = CREG;
988 fra.me.REG[0] = p0;
989 CREG[0] = clos_fun0;
990 /* global/rta_analysis.nit:159 */
991 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[0])(fra.me.REG[0]);
992 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
993 if (UNTAG_Bool(REGB0)) {
994 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[0])(fra.me.REG[0]);
995 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
996 } else {
997 REGB1 = TAG_Bool(0);
998 REGB0 = REGB1;
999 }
1000 if (UNTAG_Bool(REGB0)) {
1001 goto label20;
1002 }
1003 /* global/rta_analysis.nit:160 */
1004 fra.me.REG[1] = CALL_global___rta_analysis___RtaBuilder___program(closctx->REG[0])(closctx->REG[0]);
1005 fra.me.REG[1] = CALL_program___Program___main_module(fra.me.REG[1])(fra.me.REG[1]);
1006 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1007 CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
1008 label20: while(0);
1009 stack_frame_head = fra.me.prev;
1010 return;
1011 }
1012 void OC_global___rta_analysis___RtaBuilder___force_some_type_analysis_21(struct stack_frame_t *closctx, val_t p0){
1013 struct {struct stack_frame_t me;} fra;
1014 val_t REGB0;
1015 val_t tmp;
1016 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1017 fra.me.file = LOCATE_global___rta_analysis;
1018 fra.me.line = 165;
1019 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___force_some_type_analysis;
1020 fra.me.has_broke = 0;
1021 fra.me.REG_size = 1;
1022 fra.me.nitni_local_ref_head = NULL;
1023 fra.me.REG[0] = NIT_NULL;
1024 fra.me.REG[0] = p0;
1025 /* global/rta_analysis.nit:166 */
1026 REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra.me.REG[0])(fra.me.REG[0]);
1027 if (UNTAG_Bool(REGB0)) {
1028 /* global/rta_analysis.nit:167 */
1029 fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
1030 CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
1031 }
1032 stack_frame_head = fra.me.prev;
1033 return;
1034 }
1035 static const char LOCATE_global___rta_analysis___RtaBuilder___work[] = "rta_analysis::RtaBuilder::work";
1036 void global___rta_analysis___RtaBuilder___work(val_t p0){
1037 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1038 val_t REGB0;
1039 val_t REGB1;
1040 val_t REGB2;
1041 val_t tmp;
1042 static val_t once_value_1; /* Once value */
1043 static val_t once_value_2; /* Once value */
1044 static val_t once_value_3; /* Once value */
1045 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1046 fra.me.file = LOCATE_global___rta_analysis;
1047 fra.me.line = 172;
1048 fra.me.meth = LOCATE_global___rta_analysis___RtaBuilder___work;
1049 fra.me.has_broke = 0;
1050 fra.me.REG_size = 7;
1051 fra.me.nitni_local_ref_head = NULL;
1052 fra.me.REG[0] = NIT_NULL;
1053 fra.me.REG[1] = NIT_NULL;
1054 fra.me.REG[2] = NIT_NULL;
1055 fra.me.REG[3] = NIT_NULL;
1056 fra.me.REG[4] = NIT_NULL;
1057 fra.me.REG[5] = NIT_NULL;
1058 fra.me.REG[6] = NIT_NULL;
1059 fra.me.REG[0] = p0;
1060 /* global/rta_analysis.nit:172 */
1061 fra.me.REG[1] = fra.me.REG[0];
1062 /* global/rta_analysis.nit:174 */
1063 fra.me.REG[2] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
1064 fra.me.REG[2] = CALL_program___Program___main_method(fra.me.REG[2])(fra.me.REG[2]);
1065 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1066 if (UNTAG_Bool(REGB0)) {
1067 } else {
1068 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1069 if (UNTAG_Bool(REGB1)) {
1070 REGB1 = TAG_Bool(0);
1071 REGB0 = REGB1;
1072 } else {
1073 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1074 REGB0 = REGB1;
1075 }
1076 }
1077 if (UNTAG_Bool(REGB0)) {
1078 /* global/rta_analysis.nit:176 */
1079 REGB0 = TAG_Int(3);
1080 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
1081 if (!once_value_1) {
1082 fra.me.REG[3] = BOX_NativeString("Int");
1083 REGB0 = TAG_Int(3);
1084 fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
1085 once_value_1 = fra.me.REG[3];
1086 register_static_object(&once_value_1);
1087 } else fra.me.REG[3] = once_value_1;
1088 fra.me.REG[3] = fra.me.REG[3];
1089 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1090 if (!once_value_2) {
1091 fra.me.REG[3] = BOX_NativeString("Char");
1092 REGB0 = TAG_Int(4);
1093 fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
1094 once_value_2 = fra.me.REG[3];
1095 register_static_object(&once_value_2);
1096 } else fra.me.REG[3] = once_value_2;
1097 fra.me.REG[3] = fra.me.REG[3];
1098 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1099 if (!once_value_3) {
1100 fra.me.REG[3] = BOX_NativeString("Bool");
1101 REGB0 = TAG_Int(4);
1102 fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
1103 once_value_3 = fra.me.REG[3];
1104 register_static_object(&once_value_3);
1105 } else fra.me.REG[3] = once_value_3;
1106 fra.me.REG[3] = fra.me.REG[3];
1107 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1108 /* ../lib/standard/collection/array.nit:270 */
1109 REGB0 = TAG_Int(0);
1110 /* ../lib/standard/collection/array.nit:271 */
1111 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1112 if (UNTAG_Bool(REGB1)) {
1113 } else {
1114 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
1115 }
1116 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1117 /* ../lib/standard/collection/array.nit:272 */
1118 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
1119 /* ../lib/standard/collection/array.nit:273 */
1120 while(1) {
1121 /* ../lib/standard/collection/array.nit:24 */
1122 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1123 if (UNTAG_Bool(REGB1)) {
1124 } else {
1125 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1126 }
1127 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1128 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1129 if (UNTAG_Bool(REGB2)) {
1130 } else {
1131 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1132 }
1133 /* ../lib/standard/kernel.nit:242 */
1134 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1135 /* ../lib/standard/collection/array.nit:273 */
1136 if (UNTAG_Bool(REGB1)) {
1137 /* ../lib/standard/collection/array.nit:274 */
1138 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1139 if (UNTAG_Bool(REGB1)) {
1140 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
1141 }
1142 /* ../lib/standard/collection/array.nit:725 */
1143 fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
1144 /* global/rta_analysis.nit:177 */
1145 fra.me.REG[5] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
1146 fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
1147 fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
1148 REGB1 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1149 if (UNTAG_Bool(REGB1)) {
1150 /* global/rta_analysis.nit:178 */
1151 fra.me.REG[6] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
1152 fra.me.REG[6] = CALL_program___Program___main_module(fra.me.REG[6])(fra.me.REG[6]);
1153 fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
1154 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
1155 CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
1156 }
1157 /* ../lib/standard/collection/array.nit:275 */
1158 REGB1 = TAG_Int(1);
1159 /* ../lib/standard/kernel.nit:245 */
1160 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1161 /* ../lib/standard/collection/array.nit:275 */
1162 REGB0 = REGB1;
1163 } else {
1164 /* ../lib/standard/collection/array.nit:273 */
1165 goto label4;
1166 }
1167 }
1168 label4: while(0);
1169 /* global/rta_analysis.nit:181 */
1170 goto label5;
1171 }
1172 /* global/rta_analysis.nit:184 */
1173 fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
1174 fra.me.REG[3] = CALL_program___Program___main_class(fra.me.REG[3])(fra.me.REG[3]);
1175 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_metamodel___abstractmetamodel___MMLocalClass, ID_metamodel___abstractmetamodel___MMLocalClass)) /*cast MMLocalClass*/;
1176 if (UNTAG_Bool(REGB0)) {
1177 } else {
1178 nit_abort("Cast failed", NULL, LOCATE_global___rta_analysis, 184);
1179 }
1180 CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1181 /* global/rta_analysis.nit:185 */
1182 fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[1])(fra.me.REG[1]);
1183 fra.me.REG[3] = CALL_program___Program___main_method(fra.me.REG[3])(fra.me.REG[3]);
1184 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
1185 if (UNTAG_Bool(REGB0)) {
1186 } else {
1187 nit_abort("Cast failed", NULL, LOCATE_global___rta_analysis, 185);
1188 }
1189 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1190 if (UNTAG_Bool(REGB0)) {
1191 nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 185);
1192 }
1193 fra.me.REG[3] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[3])(fra.me.REG[3]);
1194 CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1195 /* global/rta_analysis.nit:186 */
1196 CALL_global___rta_analysis___RtaBuilder___force_some_type_analysis(fra.me.REG[1])(fra.me.REG[1]);
1197 /* global/rta_analysis.nit:188 */
1198 while(1) {
1199 fra.me.REG[3] = CALL_global___rta_analysis___RtaBuilder___iroutine_to_search(fra.me.REG[1])(fra.me.REG[1]);
1200 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
1201 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1202 if (UNTAG_Bool(REGB0)) {
1203 /* global/rta_analysis.nit:189 */
1204 fra.me.REG[3] = NEW_RtaVisitor_global___rta_analysis___RtaVisitor___init(fra.me.REG[1]);
1205 /* global/rta_analysis.nit:190 */
1206 fra.me.REG[0] = CALL_global___rta_analysis___RtaBuilder___iroutine_to_search(fra.me.REG[1])(fra.me.REG[1]);
1207 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
1208 /* global/rta_analysis.nit:191 */
1209 fra.me.REG[0] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[0])(fra.me.REG[0]);
1210 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1211 } else {
1212 /* global/rta_analysis.nit:188 */
1213 goto label6;
1214 }
1215 }
1216 label6: while(0);
1217 label5: while(0);
1218 stack_frame_head = fra.me.prev;
1219 return;
1220 }
1221 static const char LOCATE_global___rta_analysis___RtaVisitor___builder[] = "rta_analysis::RtaVisitor::builder";
1222 val_t global___rta_analysis___RtaVisitor___builder(val_t p0){
1223 struct {struct stack_frame_t me;} fra;
1224 val_t REGB0;
1225 val_t tmp;
1226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1227 fra.me.file = LOCATE_global___rta_analysis;
1228 fra.me.line = 198;
1229 fra.me.meth = LOCATE_global___rta_analysis___RtaVisitor___builder;
1230 fra.me.has_broke = 0;
1231 fra.me.REG_size = 1;
1232 fra.me.nitni_local_ref_head = NULL;
1233 fra.me.REG[0] = NIT_NULL;
1234 fra.me.REG[0] = p0;
1235 /* global/rta_analysis.nit:198 */
1236 REGB0 = TAG_Bool(ATTR_global___rta_analysis___RtaVisitor____builder(fra.me.REG[0])!=NIT_NULL);
1237 if (UNTAG_Bool(REGB0)) {
1238 } else {
1239 nit_abort("Uninitialized attribute %s", "_builder", LOCATE_global___rta_analysis, 198);
1240 }
1241 fra.me.REG[0] = ATTR_global___rta_analysis___RtaVisitor____builder(fra.me.REG[0]);
1242 stack_frame_head = fra.me.prev;
1243 return fra.me.REG[0];
1244 }
1245 static const char LOCATE_global___rta_analysis___RtaVisitor___visit_icode[] = "rta_analysis::RtaVisitor::(icode_tools::ICodeVisitor::visit_icode)";
1246 void global___rta_analysis___RtaVisitor___visit_icode(val_t p0, val_t p1){
1247 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1248 val_t REGB0;
1249 val_t tmp;
1250 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1251 fra.me.file = LOCATE_global___rta_analysis;
1252 fra.me.line = 200;
1253 fra.me.meth = LOCATE_global___rta_analysis___RtaVisitor___visit_icode;
1254 fra.me.has_broke = 0;
1255 fra.me.REG_size = 7;
1256 fra.me.nitni_local_ref_head = NULL;
1257 fra.me.REG[0] = NIT_NULL;
1258 fra.me.REG[1] = NIT_NULL;
1259 fra.me.REG[2] = NIT_NULL;
1260 fra.me.REG[3] = NIT_NULL;
1261 fra.me.REG[4] = NIT_NULL;
1262 fra.me.REG[5] = NIT_NULL;
1263 fra.me.REG[6] = NIT_NULL;
1264 fra.me.REG[0] = p0;
1265 fra.me.REG[1] = p1;
1266 /* global/rta_analysis.nit:200 */
1267 fra.me.REG[2] = fra.me.REG[0];
1268 fra.me.REG[3] = fra.me.REG[1];
1269 /* global/rta_analysis.nit:202 */
1270 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IStaticCall, ID_icode___icode_base___IStaticCall)) /*cast IStaticCall*/;
1271 if (UNTAG_Bool(REGB0)) {
1272 /* global/rta_analysis.nit:204 */
1273 fra.me.REG[4] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
1274 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1275 if (UNTAG_Bool(REGB0)) {
1276 nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 204);
1277 }
1278 fra.me.REG[5] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
1279 fra.me.REG[5] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[5])(fra.me.REG[5]);
1280 CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1281 } else {
1282 /* global/rta_analysis.nit:205 */
1283 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___INew, ID_icode___icode_base___INew)) /*cast INew*/;
1284 if (UNTAG_Bool(REGB0)) {
1285 /* global/rta_analysis.nit:207 */
1286 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1287 if (UNTAG_Bool(REGB0)) {
1288 nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 207);
1289 }
1290 fra.me.REG[5] = CALL_icode___icode_base___INew___stype(fra.me.REG[3])(fra.me.REG[3]);
1291 /* global/rta_analysis.nit:208 */
1292 fra.me.REG[4] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
1293 fra.me.REG[4] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[4])(fra.me.REG[4]);
1294 fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
1295 fra.me.REG[4] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
1296 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
1297 /* global/rta_analysis.nit:209 */
1298 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
1299 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[5])(fra.me.REG[5]);
1300 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1301 if (UNTAG_Bool(REGB0)) {
1302 /* global/rta_analysis.nit:210 */
1303 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1304 if (UNTAG_Bool(REGB0)) {
1305 nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 210);
1306 }
1307 fra.me.REG[5] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
1308 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[5])(fra.me.REG[5]);
1309 fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1310 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
1311 if (UNTAG_Bool(REGB0)) {
1312 } else {
1313 nit_abort("Cast failed", NULL, LOCATE_global___rta_analysis, 210);
1314 }
1315 /* global/rta_analysis.nit:211 */
1316 fra.me.REG[6] = CALL_program___MMLocalClass___new_instance_iroutine(fra.me.REG[4])(fra.me.REG[4]);
1317 fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1318 /* global/rta_analysis.nit:212 */
1319 fra.me.REG[6] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
1320 CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1321 }
1322 /* global/rta_analysis.nit:214 */
1323 fra.me.REG[5] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
1324 CALL_global___rta_analysis___RtaBuilder___add_instantiated_class(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
1325 } else {
1326 /* global/rta_analysis.nit:215 */
1327 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ISuper, ID_icode___icode_base___ISuper)) /*cast ISuper*/;
1328 if (UNTAG_Bool(REGB0)) {
1329 /* global/rta_analysis.nit:217 */
1330 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1331 if (UNTAG_Bool(REGB0)) {
1332 nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 217);
1333 }
1334 fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
1335 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[4])(fra.me.REG[4]);
1336 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[4])(fra.me.REG[4]);
1337 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_global___rta_analysis___RtaVisitor___visit_icode_1));
1338 } else {
1339 /* global/rta_analysis.nit:222 */
1340 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICall, ID_icode___icode_base___ICall)) /*cast ICall*/;
1341 if (UNTAG_Bool(REGB0)) {
1342 /* global/rta_analysis.nit:223 */
1343 fra.me.REG[4] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
1344 CALL_global___rta_analysis___RtaBuilder___add_reachable_call(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1345 } else {
1346 /* global/rta_analysis.nit:224 */
1347 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICheckInstance, ID_icode___icode_base___ICheckInstance)) /*cast ICheckInstance*/;
1348 if (UNTAG_Bool(REGB0)) {
1349 /* global/rta_analysis.nit:225 */
1350 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1351 if (UNTAG_Bool(REGB0)) {
1352 nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 225);
1353 }
1354 fra.me.REG[4] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[3])(fra.me.REG[3]);
1355 /* global/rta_analysis.nit:226 */
1356 fra.me.REG[5] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
1357 fra.me.REG[5] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
1358 fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
1359 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1360 fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
1361 /* global/rta_analysis.nit:227 */
1362 fra.me.REG[5] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[5])(fra.me.REG[5]);
1363 /* global/rta_analysis.nit:228 */
1364 fra.me.REG[4] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
1365 CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
1366 } else {
1367 /* global/rta_analysis.nit:229 */
1368 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IInitAttributes, ID_icode___icode_base___IInitAttributes)) /*cast IInitAttributes*/;
1369 if (UNTAG_Bool(REGB0)) {
1370 /* global/rta_analysis.nit:230 */
1371 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1372 if (UNTAG_Bool(REGB0)) {
1373 nit_abort("Reciever is null", NULL, LOCATE_global___rta_analysis, 230);
1374 }
1375 fra.me.REG[3] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[3])(fra.me.REG[3]);
1376 /* global/rta_analysis.nit:231 */
1377 fra.me.REG[5] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
1378 fra.me.REG[5] = CALL_global___rta_analysis___RtaBuilder___program(fra.me.REG[5])(fra.me.REG[5]);
1379 fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
1380 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
1381 fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
1382 /* global/rta_analysis.nit:232 */
1383 fra.me.REG[5] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[5])(fra.me.REG[5]);
1384 /* global/rta_analysis.nit:233 */
1385 fra.me.REG[2] = CALL_global___rta_analysis___RtaVisitor___builder(fra.me.REG[2])(fra.me.REG[2]);
1386 CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
1387 }
1388 }
1389 }
1390 }
1391 }
1392 }
1393 /* global/rta_analysis.nit:235 */
1394 CALL_SUPER_global___rta_analysis___RtaVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1395 stack_frame_head = fra.me.prev;
1396 return;
1397 }
1398 void OC_global___rta_analysis___RtaVisitor___visit_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
1399 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1400 val_t REGB0;
1401 fun_t CREG[1];
1402 val_t tmp;
1403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1404 fra.me.file = LOCATE_global___rta_analysis;
1405 fra.me.line = 0;
1406 fra.me.meth = LOCATE_global___rta_analysis___RtaVisitor___visit_icode;
1407 fra.me.has_broke = 0;
1408 fra.me.REG_size = 2;
1409 fra.me.nitni_local_ref_head = NULL;
1410 fra.me.REG[0] = NIT_NULL;
1411 fra.me.REG[1] = NIT_NULL;
1412 fra.me.closure_ctx = closctx_param;
1413 fra.me.closure_funs = CREG;
1414 fra.me.REG[0] = p0;
1415 CREG[0] = clos_fun0;
1416 /* global/rta_analysis.nit:218 */
1417 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
1418 if (UNTAG_Bool(REGB0)) {
1419 /* global/rta_analysis.nit:219 */
1420 fra.me.REG[1] = CALL_global___rta_analysis___RtaVisitor___builder(closctx->REG[2])(closctx->REG[2]);
1421 fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
1422 CALL_global___rta_analysis___RtaBuilder___add_reachable_iroutine(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1423 }
1424 stack_frame_head = fra.me.prev;
1425 return;
1426 }
1427 static const char LOCATE_global___rta_analysis___RtaVisitor___init[] = "rta_analysis::RtaVisitor::init";
1428 void global___rta_analysis___RtaVisitor___init(val_t p0, val_t p1, int* init_table){
1429 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___rta_analysis___RtaVisitor].i;
1430 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1431 val_t tmp;
1432 if (init_table[itpos2]) return;
1433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1434 fra.me.file = LOCATE_global___rta_analysis;
1435 fra.me.line = 238;
1436 fra.me.meth = LOCATE_global___rta_analysis___RtaVisitor___init;
1437 fra.me.has_broke = 0;
1438 fra.me.REG_size = 3;
1439 fra.me.nitni_local_ref_head = NULL;
1440 fra.me.REG[0] = NIT_NULL;
1441 fra.me.REG[1] = NIT_NULL;
1442 fra.me.REG[2] = NIT_NULL;
1443 fra.me.REG[0] = p0;
1444 fra.me.REG[1] = p1;
1445 /* global/rta_analysis.nit:238 */
1446 fra.me.REG[2] = fra.me.REG[0];
1447 CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
1448 /* global/rta_analysis.nit:240 */
1449 ATTR_global___rta_analysis___RtaVisitor____builder(fra.me.REG[2]) = fra.me.REG[1];
1450 stack_frame_head = fra.me.prev;
1451 init_table[itpos2] = 1;
1452 return;
1453 }