1 /* This C file is generated by NIT to compile module allocate_iregister_slots. */
2 #include "allocate_iregister_slots._sep.h"
3 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read(val_t p0
, val_t p1
, val_t p2
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
9 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
12 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read
;
15 fra
.me
.REG
[0] = NIT_NULL
;
16 fra
.me
.REG
[1] = NIT_NULL
;
17 fra
.me
.REG
[2] = NIT_NULL
;
18 fra
.me
.REG
[3] = NIT_NULL
;
22 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0])!=NIT_NULL
);
23 /* ./analysis//allocate_iregister_slots.nit:50 */
24 if (UNTAG_Bool(REGB0
)) {
26 fprintf(stderr
, "Uninitialized attribute %s", "_pass");
27 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 50);
30 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]);
32 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
33 /* ./analysis//allocate_iregister_slots.nit:51 */
34 if (UNTAG_Bool(REGB2
)) {
36 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
38 /* ./analysis//allocate_iregister_slots.nit:51 */
40 if (UNTAG_Bool(REGB2
)) {
41 /* ./analysis//allocate_iregister_slots.nit:52 */
42 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
43 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0])!=NIT_NULL
);
44 /* ./analysis//allocate_iregister_slots.nit:53 */
45 if (UNTAG_Bool(REGB2
)) {
47 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
48 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 53);
51 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0]);
52 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
53 /* ./analysis//allocate_iregister_slots.nit:54 */
54 ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[2]) = NIT_NULL
;
57 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
58 /* ./analysis//allocate_iregister_slots.nit:55 */
59 if (UNTAG_Bool(REGB1
)) {
61 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
63 /* ./analysis//allocate_iregister_slots.nit:55 */
65 if (UNTAG_Bool(REGB1
)) {
66 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0])!=NIT_NULL
);
67 if (UNTAG_Bool(REGB1
)) {
69 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
70 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 55);
73 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0]);
74 REGB1
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
76 REGB2
= TAG_Bool(false);
79 if (UNTAG_Bool(REGB1
)) {
80 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0])!=NIT_NULL
);
81 if (UNTAG_Bool(REGB1
)) {
83 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
84 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 55);
87 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0]);
88 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
89 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
90 if (UNTAG_Bool(REGB1
)) {
92 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
93 if (UNTAG_Bool(REGB2
)) {
94 REGB2
= TAG_Bool(false);
97 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
102 REGB2
= TAG_Bool(false);
105 if (UNTAG_Bool(REGB1
)) {
106 /* ./analysis//allocate_iregister_slots.nit:56 */
107 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
110 stack_frame_head
= fra
.me
.prev
;
113 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write(val_t p0
, val_t p1
, val_t p2
){
114 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
119 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
120 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
122 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write
;
123 fra
.me
.has_broke
= 0;
125 fra
.me
.REG
[0] = NIT_NULL
;
126 fra
.me
.REG
[1] = NIT_NULL
;
127 fra
.me
.REG
[2] = NIT_NULL
;
128 fra
.me
.REG
[3] = NIT_NULL
;
132 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0])!=NIT_NULL
);
133 /* ./analysis//allocate_iregister_slots.nit:62 */
134 if (UNTAG_Bool(REGB0
)) {
136 fprintf(stderr
, "Uninitialized attribute %s", "_pass");
137 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 62);
140 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]);
142 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
143 /* ./analysis//allocate_iregister_slots.nit:63 */
144 if (UNTAG_Bool(REGB2
)) {
146 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
148 /* ./analysis//allocate_iregister_slots.nit:63 */
150 if (UNTAG_Bool(REGB2
)) {
151 /* ./analysis//allocate_iregister_slots.nit:64 */
152 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
153 /* ./analysis//allocate_iregister_slots.nit:65 */
154 ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[2]) = NIT_NULL
;
155 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____firsts(fra
.me
.REG
[0])!=NIT_NULL
);
156 /* ./analysis//allocate_iregister_slots.nit:67 */
157 if (UNTAG_Bool(REGB2
)) {
159 fprintf(stderr
, "Uninitialized attribute %s", "_firsts");
160 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 67);
163 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____firsts(fra
.me
.REG
[0]);
164 REGB2
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
165 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
166 if (UNTAG_Bool(REGB2
)) {
167 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____firsts(fra
.me
.REG
[0])!=NIT_NULL
);
168 if (UNTAG_Bool(REGB2
)) {
170 fprintf(stderr
, "Uninitialized attribute %s", "_firsts");
171 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 67);
174 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____firsts(fra
.me
.REG
[0]);
175 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
177 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0])!=NIT_NULL
);
178 /* ./analysis//allocate_iregister_slots.nit:69 */
179 if (UNTAG_Bool(REGB2
)) {
181 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
182 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 69);
185 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0]);
186 REGB2
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
187 if (UNTAG_Bool(REGB2
)) {
188 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0])!=NIT_NULL
);
189 if (UNTAG_Bool(REGB2
)) {
191 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
192 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 69);
195 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0]);
196 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2], fra
.me
.REG
[1]);
200 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
201 /* ./analysis//allocate_iregister_slots.nit:70 */
202 if (UNTAG_Bool(REGB1
)) {
204 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
206 /* ./analysis//allocate_iregister_slots.nit:70 */
208 if (UNTAG_Bool(REGB1
)) {
209 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____firsts(fra
.me
.REG
[0])!=NIT_NULL
);
210 /* ./analysis//allocate_iregister_slots.nit:71 */
211 if (UNTAG_Bool(REGB1
)) {
213 fprintf(stderr
, "Uninitialized attribute %s", "_firsts");
214 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 71);
217 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____firsts(fra
.me
.REG
[0]);
218 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
219 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
220 if (UNTAG_Bool(REGB1
)) {
222 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
223 if (UNTAG_Bool(REGB2
)) {
224 REGB2
= TAG_Bool(false);
227 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
231 if (UNTAG_Bool(REGB1
)) {
232 /* ./analysis//allocate_iregister_slots.nit:72 */
233 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
235 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0])!=NIT_NULL
);
236 /* ./analysis//allocate_iregister_slots.nit:73 */
237 if (UNTAG_Bool(REGB1
)) {
239 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
240 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 73);
243 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0]);
244 REGB1
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
245 if (UNTAG_Bool(REGB1
)) {
246 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0])!=NIT_NULL
);
247 if (UNTAG_Bool(REGB1
)) {
249 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
250 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 73);
253 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0]);
254 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
255 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
256 if (UNTAG_Bool(REGB1
)) {
258 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
259 if (UNTAG_Bool(REGB2
)) {
260 REGB2
= TAG_Bool(false);
263 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
268 REGB2
= TAG_Bool(false);
271 if (UNTAG_Bool(REGB1
)) {
272 /* ./analysis//allocate_iregister_slots.nit:74 */
273 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
278 stack_frame_head
= fra
.me
.prev
;
281 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(val_t p0
, val_t p1
){
282 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
287 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
288 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
290 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode
;
291 fra
.me
.has_broke
= 0;
293 fra
.me
.REG
[0] = NIT_NULL
;
294 fra
.me
.REG
[1] = NIT_NULL
;
295 fra
.me
.REG
[2] = NIT_NULL
;
296 fra
.me
.REG
[3] = NIT_NULL
;
297 fra
.me
.REG
[4] = NIT_NULL
;
300 fra
.me
.REG
[2] = fra
.me
.REG
[0];
301 fra
.me
.REG
[3] = fra
.me
.REG
[1];
302 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
303 /* ./analysis//allocate_iregister_slots.nit:107 */
304 if (UNTAG_Bool(REGB0
)) {
306 fprintf(stderr
, "Uninitialized attribute %s", "_pass");
307 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 107);
310 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
312 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
313 if (UNTAG_Bool(REGB2
)) {
315 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
317 /* ./analysis//allocate_iregister_slots.nit:107 */
319 if (UNTAG_Bool(REGB2
)) {
320 REGB2
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_ILoop
, ID_ILoop
)) /*cast ILoop*/;
322 REGB1
= TAG_Bool(false);
325 if (UNTAG_Bool(REGB2
)) {
326 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[2])!=NIT_NULL
);
327 /* ./analysis//allocate_iregister_slots.nit:108 */
328 if (UNTAG_Bool(REGB2
)) {
330 fprintf(stderr
, "Uninitialized attribute %s", "_live");
331 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 108);
334 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[2]);
335 fra
.me
.REG
[4] = NEW_HashSet_hash_collection___HashSet___init();
336 /* ./analysis//allocate_iregister_slots.nit:110 */
337 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
338 /* ./analysis//allocate_iregister_slots.nit:111 */
339 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
340 /* ./analysis//allocate_iregister_slots.nit:112 */
341 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
342 /* ./analysis//allocate_iregister_slots.nit:113 */
343 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
345 /* ./analysis//allocate_iregister_slots.nit:115 */
346 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
348 stack_frame_head
= fra
.me
.prev
;
351 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(val_t p0
, val_t p1
){
352 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
357 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
358 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
360 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs
;
361 fra
.me
.has_broke
= 0;
363 fra
.me
.REG
[0] = NIT_NULL
;
364 fra
.me
.REG
[1] = NIT_NULL
;
365 fra
.me
.REG
[2] = NIT_NULL
;
366 fra
.me
.REG
[3] = NIT_NULL
;
367 fra
.me
.REG
[4] = NIT_NULL
;
370 fra
.me
.REG
[2] = fra
.me
.REG
[0];
371 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
372 /* ./analysis//allocate_iregister_slots.nit:121 */
373 if (UNTAG_Bool(REGB0
)) {
375 fprintf(stderr
, "Uninitialized attribute %s", "_pass");
376 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 121);
379 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
381 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
382 if (UNTAG_Bool(REGB2
)) {
384 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
386 /* ./analysis//allocate_iregister_slots.nit:121 */
388 if (UNTAG_Bool(REGB2
)) {
389 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[2])!=NIT_NULL
);
390 /* ./analysis//allocate_iregister_slots.nit:122 */
391 if (UNTAG_Bool(REGB2
)) {
393 fprintf(stderr
, "Uninitialized attribute %s", "_live");
394 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 122);
397 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[2]);
398 fra
.me
.REG
[4] = NEW_HashSet_hash_collection___HashSet___init();
399 /* ./analysis//allocate_iregister_slots.nit:124 */
400 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[2]) = fra
.me
.REG
[4];
401 /* ./analysis//allocate_iregister_slots.nit:125 */
402 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
403 /* ./analysis//allocate_iregister_slots.nit:126 */
404 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
405 /* ./analysis//allocate_iregister_slots.nit:127 */
406 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
408 /* ./analysis//allocate_iregister_slots.nit:129 */
409 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
411 stack_frame_head
= fra
.me
.prev
;
414 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(val_t p0
, val_t p1
){
415 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
420 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
421 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
423 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
424 fra
.me
.has_broke
= 0;
426 fra
.me
.REG
[0] = NIT_NULL
;
427 fra
.me
.REG
[1] = NIT_NULL
;
428 fra
.me
.REG
[2] = NIT_NULL
;
429 fra
.me
.REG
[3] = NIT_NULL
;
430 fra
.me
.REG
[4] = NIT_NULL
;
431 fra
.me
.REG
[5] = NIT_NULL
;
432 fra
.me
.REG
[6] = NIT_NULL
;
433 fra
.me
.REG
[7] = NIT_NULL
;
434 fra
.me
.REG
[8] = NIT_NULL
;
437 fra
.me
.REG
[2] = fra
.me
.REG
[0];
438 fra
.me
.REG
[3] = fra
.me
.REG
[1];
439 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
440 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
441 /* ./analysis//allocate_iregister_slots.nit:140 */
442 if (UNTAG_Bool(REGB0
)) {
444 fprintf(stderr
, "Uninitialized attribute %s", "_pass");
445 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 140);
448 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
450 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
451 if (UNTAG_Bool(REGB2
)) {
453 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
455 /* ./analysis//allocate_iregister_slots.nit:140 */
457 if (UNTAG_Bool(REGB2
)) {
458 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2])!=NIT_NULL
);
459 /* ./analysis//allocate_iregister_slots.nit:141 */
460 if (UNTAG_Bool(REGB2
)) {
462 fprintf(stderr
, "Uninitialized attribute %s", "_current_ir");
463 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 141);
466 fra
.me
.REG
[5] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]);
467 /* ./analysis//allocate_iregister_slots.nit:142 */
468 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
469 fra
.me
.REG
[6] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
470 fra
.me
.REG
[6] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
471 /* ./analysis//allocate_iregister_slots.nit:143 */
473 REGB2
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
474 if (UNTAG_Bool(REGB2
)) {
475 fra
.me
.REG
[7] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
476 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____firsts(fra
.me
.REG
[2])!=NIT_NULL
);
477 /* ./analysis//allocate_iregister_slots.nit:144 */
478 if (UNTAG_Bool(REGB2
)) {
480 fprintf(stderr
, "Uninitialized attribute %s", "_firsts");
481 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 144);
484 fra
.me
.REG
[8] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____firsts(fra
.me
.REG
[2]);
485 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[7], fra
.me
.REG
[2]);
486 /* ./analysis//allocate_iregister_slots.nit:145 */
487 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[7]);
489 /* ./analysis//allocate_iregister_slots.nit:143 */
492 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
495 /* ./analysis//allocate_iregister_slots.nit:147 */
496 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
497 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
498 /* ./analysis//allocate_iregister_slots.nit:148 */
499 if (UNTAG_Bool(REGB2
)) {
501 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
502 if (UNTAG_Bool(REGB1
)) {
503 REGB1
= TAG_Bool(false);
506 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
510 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
511 if (UNTAG_Bool(REGB2
)) {
512 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[2])!=NIT_NULL
);
513 /* ./analysis//allocate_iregister_slots.nit:149 */
514 if (UNTAG_Bool(REGB2
)) {
516 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
517 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 149);
520 fra
.me
.REG
[6] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[2]);
521 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[4], fra
.me
.REG
[2]);
522 /* ./analysis//allocate_iregister_slots.nit:150 */
523 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
525 /* ./analysis//allocate_iregister_slots.nit:152 */
526 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
528 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2])!=NIT_NULL
);
529 /* ./analysis//allocate_iregister_slots.nit:154 */
530 if (UNTAG_Bool(REGB2
)) {
532 fprintf(stderr
, "Uninitialized attribute %s", "_tag_slots");
533 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 154);
536 fra
.me
.REG
[5] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]);
537 fra
.me
.REG
[6] = NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init();
538 /* ./analysis//allocate_iregister_slots.nit:155 */
539 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
540 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2])!=NIT_NULL
);
541 /* ./analysis//allocate_iregister_slots.nit:156 */
542 if (UNTAG_Bool(REGB2
)) {
544 fprintf(stderr
, "Uninitialized attribute %s", "_std_slots");
545 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 156);
548 fra
.me
.REG
[6] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]);
549 REGB2
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_IClosureDef
, ID_IClosureDef
)) /*cast IClosureDef*/;
550 /* ./analysis//allocate_iregister_slots.nit:157 */
551 if (UNTAG_Bool(REGB2
)) {
552 fra
.me
.REG
[7] = NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init();
553 /* ./analysis//allocate_iregister_slots.nit:158 */
554 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[7];
556 fra
.me
.REG
[7] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
557 fra
.me
.REG
[7] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
558 /* ./analysis//allocate_iregister_slots.nit:160 */
560 REGB2
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
561 if (UNTAG_Bool(REGB2
)) {
562 fra
.me
.REG
[8] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
563 /* ./analysis//allocate_iregister_slots.nit:161 */
564 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[8]);
566 /* ./analysis//allocate_iregister_slots.nit:160 */
569 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
572 /* ./analysis//allocate_iregister_slots.nit:163 */
573 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
574 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
575 /* ./analysis//allocate_iregister_slots.nit:164 */
576 if (UNTAG_Bool(REGB2
)) {
578 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
579 if (UNTAG_Bool(REGB1
)) {
580 REGB1
= TAG_Bool(false);
583 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
587 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
588 if (UNTAG_Bool(REGB2
)) {
589 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
591 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2])!=NIT_NULL
);
592 /* ./analysis//allocate_iregister_slots.nit:165 */
593 if (UNTAG_Bool(REGB2
)) {
595 fprintf(stderr
, "Uninitialized attribute %s", "_tag_slots");
596 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 165);
599 fra
.me
.REG
[4] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]);
600 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[4])!=NIT_NULL
);
601 if (UNTAG_Bool(REGB2
)) {
603 fprintf(stderr
, "Uninitialized attribute %s", "_next_index");
604 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 165);
607 REGB2
= ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[4]);
608 ATTR_allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[3]) = REGB2
;
609 /* ./analysis//allocate_iregister_slots.nit:166 */
610 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
611 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2])!=NIT_NULL
);
612 /* ./analysis//allocate_iregister_slots.nit:167 */
613 if (UNTAG_Bool(REGB2
)) {
615 fprintf(stderr
, "Uninitialized attribute %s", "_std_slots");
616 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 167);
619 fra
.me
.REG
[5] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]);
620 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[5])!=NIT_NULL
);
621 if (UNTAG_Bool(REGB2
)) {
623 fprintf(stderr
, "Uninitialized attribute %s", "_next_index");
624 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 167);
627 REGB2
= ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[5]);
628 ATTR_allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[3]) = REGB2
;
629 /* ./analysis//allocate_iregister_slots.nit:168 */
630 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
632 stack_frame_head
= fra
.me
.prev
;
635 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(val_t p0
, val_t p1
){
636 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
640 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
641 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
643 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality
;
644 fra
.me
.has_broke
= 0;
646 fra
.me
.REG
[0] = NIT_NULL
;
647 fra
.me
.REG
[1] = NIT_NULL
;
648 fra
.me
.REG
[2] = NIT_NULL
;
649 fra
.me
.REG
[3] = NIT_NULL
;
652 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
653 /* ./analysis//allocate_iregister_slots.nit:39 */
654 if (UNTAG_Bool(REGB0
)) {
656 fprintf(stderr
, "Uninitialized attribute %s", "_is_local");
657 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 39);
660 REGB0
= ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
661 if (UNTAG_Bool(REGB0
)) {
662 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]);
663 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
664 if (UNTAG_Bool(REGB0
)) {
666 fprintf(stderr
, "Uninitialized attribute %s", "_current_ir");
667 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 39);
670 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
671 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[2]));
672 if (UNTAG_Bool(REGB0
)) {
674 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
675 if (UNTAG_Bool(REGB1
)) {
676 REGB1
= TAG_Bool(false);
679 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
683 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
685 REGB1
= TAG_Bool(false);
688 if (UNTAG_Bool(REGB0
)) {
689 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]);
690 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
691 /* ./analysis//allocate_iregister_slots.nit:40 */
692 if (UNTAG_Bool(REGB0
)) {
694 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
695 if (UNTAG_Bool(REGB1
)) {
696 REGB1
= TAG_Bool(false);
699 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
703 if (UNTAG_Bool(REGB0
)) {
704 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
705 /* ./analysis//allocate_iregister_slots.nit:41 */
706 if (UNTAG_Bool(REGB0
)) {
708 fprintf(stderr
, "Uninitialized attribute %s", "_current_ir");
709 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 41);
712 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
713 ATTR_allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]) = fra
.me
.REG
[0];
715 REGB0
= TAG_Bool(false);
716 /* ./analysis//allocate_iregister_slots.nit:43 */
717 ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]) = REGB0
;
720 stack_frame_head
= fra
.me
.prev
;
723 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(val_t p0
, val_t p1
){
724 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
727 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
728 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
730 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free
;
731 fra
.me
.has_broke
= 0;
733 fra
.me
.REG
[0] = NIT_NULL
;
734 fra
.me
.REG
[1] = NIT_NULL
;
735 fra
.me
.REG
[2] = NIT_NULL
;
738 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred(fra
.me
.REG
[0])!=NIT_NULL
);
739 /* ./analysis//allocate_iregister_slots.nit:95 */
740 if (UNTAG_Bool(REGB0
)) {
742 fprintf(stderr
, "Uninitialized attribute %s", "_deferred");
743 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 95);
746 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred(fra
.me
.REG
[0]);
747 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
748 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
749 /* ./analysis//allocate_iregister_slots.nit:96 */
750 if (UNTAG_Bool(REGB0
)) {
751 /* ./analysis//allocate_iregister_slots.nit:97 */
752 CALL_abstract_collection___RemovableCollection___clear(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
753 /* ./analysis//allocate_iregister_slots.nit:98 */
754 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
755 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
756 /* ./analysis//allocate_iregister_slots.nit:99 */
758 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
759 if (UNTAG_Bool(REGB0
)) {
760 fra
.me
.REG
[1] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
761 /* ./analysis//allocate_iregister_slots.nit:100 */
762 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
764 /* ./analysis//allocate_iregister_slots.nit:99 */
767 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
771 stack_frame_head
= fra
.me
.prev
;
774 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(val_t p0
, val_t p1
){
775 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
779 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
780 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
782 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___register
;
783 fra
.me
.has_broke
= 0;
785 fra
.me
.REG
[0] = NIT_NULL
;
786 fra
.me
.REG
[1] = NIT_NULL
;
787 fra
.me
.REG
[2] = NIT_NULL
;
790 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0])!=NIT_NULL
);
791 /* ./analysis//allocate_iregister_slots.nit:185 */
792 if (UNTAG_Bool(REGB0
)) {
794 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
795 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 185);
798 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0]);
799 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
800 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
801 if (UNTAG_Bool(REGB0
)) {
804 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
805 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
806 /* ./analysis//allocate_iregister_slots.nit:186 */
807 if (UNTAG_Bool(REGB0
)) {
809 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
810 if (UNTAG_Bool(REGB1
)) {
811 REGB1
= TAG_Bool(false);
814 REGB1
= TAG_Bool((fra
.me
.REG
[2])==(NIT_NULL
));
816 /* ./analysis//allocate_iregister_slots.nit:186 */
819 if (UNTAG_Bool(REGB0
)) {
821 fprintf(stderr
, "Assert failed");
822 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 186);
825 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[0])!=NIT_NULL
);
826 /* ./analysis//allocate_iregister_slots.nit:187 */
827 if (UNTAG_Bool(REGB0
)) {
829 fprintf(stderr
, "Uninitialized attribute %s", "_live");
830 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 187);
833 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[0]);
834 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
835 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
836 /* ./analysis//allocate_iregister_slots.nit:188 */
837 if (UNTAG_Bool(REGB0
)) {
839 fprintf(stderr
, "Uninitialized attribute %s", "_is_local");
840 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 188);
843 REGB0
= ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
844 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
845 if (UNTAG_Bool(REGB0
)) {
846 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0])!=NIT_NULL
);
847 /* ./analysis//allocate_iregister_slots.nit:189 */
848 if (UNTAG_Bool(REGB0
)) {
850 fprintf(stderr
, "Uninitialized attribute %s", "_global_slots");
851 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 189);
854 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0]);
855 CALL_allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
857 fra
.me
.REG
[2] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
858 REGB0
= CALL_primitive_info___MMType___is_tagged(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
859 /* ./analysis//allocate_iregister_slots.nit:190 */
860 if (UNTAG_Bool(REGB0
)) {
861 REGB0
= TAG_Bool(true);
862 /* ./analysis//allocate_iregister_slots.nit:191 */
863 ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1]) = REGB0
;
864 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
865 /* ./analysis//allocate_iregister_slots.nit:192 */
866 if (UNTAG_Bool(REGB0
)) {
868 fprintf(stderr
, "Uninitialized attribute %s", "_tag_slots");
869 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 192);
872 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0]);
873 CALL_allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
875 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0])!=NIT_NULL
);
876 /* ./analysis//allocate_iregister_slots.nit:194 */
877 if (UNTAG_Bool(REGB0
)) {
879 fprintf(stderr
, "Uninitialized attribute %s", "_std_slots");
880 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 194);
883 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0]);
884 CALL_allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
888 stack_frame_head
= fra
.me
.prev
;
891 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(val_t p0
, val_t p1
){
892 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
896 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
897 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
899 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
;
900 fra
.me
.has_broke
= 0;
902 fra
.me
.REG
[0] = NIT_NULL
;
903 fra
.me
.REG
[1] = NIT_NULL
;
904 fra
.me
.REG
[2] = NIT_NULL
;
907 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
908 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
909 /* ./analysis//allocate_iregister_slots.nit:202 */
910 if (UNTAG_Bool(REGB0
)) {
912 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
913 if (UNTAG_Bool(REGB1
)) {
914 REGB1
= TAG_Bool(false);
917 REGB1
= TAG_Bool((fra
.me
.REG
[2])==(NIT_NULL
));
919 /* ./analysis//allocate_iregister_slots.nit:202 */
922 if (UNTAG_Bool(REGB0
)) {
925 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[0])!=NIT_NULL
);
926 /* ./analysis//allocate_iregister_slots.nit:203 */
927 if (UNTAG_Bool(REGB0
)) {
929 fprintf(stderr
, "Uninitialized attribute %s", "_live");
930 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 203);
933 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____live(fra
.me
.REG
[0]);
934 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
935 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
936 if (UNTAG_Bool(REGB0
)) {
937 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred(fra
.me
.REG
[0])!=NIT_NULL
);
938 /* ./analysis//allocate_iregister_slots.nit:204 */
939 if (UNTAG_Bool(REGB0
)) {
941 fprintf(stderr
, "Uninitialized attribute %s", "_deferred");
942 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 204);
945 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred(fra
.me
.REG
[0]);
946 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
948 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0])!=NIT_NULL
);
949 /* ./analysis//allocate_iregister_slots.nit:205 */
950 if (UNTAG_Bool(REGB0
)) {
952 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
953 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 205);
956 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0]);
957 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
958 if (UNTAG_Bool(REGB0
)) {
959 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1])!=NIT_NULL
);
960 /* ./analysis//allocate_iregister_slots.nit:206 */
961 if (UNTAG_Bool(REGB0
)) {
963 fprintf(stderr
, "Uninitialized attribute %s", "_in_tag_slots");
964 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 206);
967 REGB0
= ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1]);
968 if (UNTAG_Bool(REGB0
)) {
969 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
970 /* ./analysis//allocate_iregister_slots.nit:207 */
971 if (UNTAG_Bool(REGB0
)) {
973 fprintf(stderr
, "Uninitialized attribute %s", "_tag_slots");
974 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 207);
977 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0]);
978 CALL_allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
980 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
981 /* ./analysis//allocate_iregister_slots.nit:208 */
982 if (UNTAG_Bool(REGB0
)) {
984 fprintf(stderr
, "Uninitialized attribute %s", "_is_local");
985 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 208);
988 REGB0
= ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
989 if (UNTAG_Bool(REGB0
)) {
990 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0])!=NIT_NULL
);
991 /* ./analysis//allocate_iregister_slots.nit:209 */
992 if (UNTAG_Bool(REGB0
)) {
994 fprintf(stderr
, "Uninitialized attribute %s", "_std_slots");
995 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 209);
998 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0]);
999 CALL_allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1001 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0])!=NIT_NULL
);
1002 /* ./analysis//allocate_iregister_slots.nit:211 */
1003 if (UNTAG_Bool(REGB0
)) {
1005 fprintf(stderr
, "Uninitialized attribute %s", "_global_slots");
1006 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 211);
1009 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0]);
1010 CALL_allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1013 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0])!=NIT_NULL
);
1014 /* ./analysis//allocate_iregister_slots.nit:213 */
1015 if (UNTAG_Bool(REGB0
)) {
1017 fprintf(stderr
, "Uninitialized attribute %s", "_lasts");
1018 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 213);
1021 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____lasts(fra
.me
.REG
[0]);
1022 CALL_abstract_collection___Map___remove_at(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1026 stack_frame_head
= fra
.me
.prev
;
1029 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(val_t p0
){
1030 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1033 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1034 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1036 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation
;
1037 fra
.me
.has_broke
= 0;
1038 fra
.me
.REG_size
= 2;
1039 fra
.me
.REG
[0] = NIT_NULL
;
1040 fra
.me
.REG
[1] = NIT_NULL
;
1042 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
1043 /* ./analysis//allocate_iregister_slots.nit:229 */
1044 if (UNTAG_Bool(REGB0
)) {
1046 fprintf(stderr
, "Uninitialized attribute %s", "_current_ir");
1047 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 229);
1050 fra
.me
.REG
[1] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
1051 /* ./analysis//allocate_iregister_slots.nit:230 */
1052 CALL_icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1054 /* ./analysis//allocate_iregister_slots.nit:231 */
1055 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]) = REGB0
;
1056 /* ./analysis//allocate_iregister_slots.nit:232 */
1057 CALL_icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1058 stack_frame_head
= fra
.me
.prev
;
1061 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(val_t p0
, val_t p1
, int* init_table
){
1062 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_IRegisterSlotAllocationVisitor
].i
;
1063 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1066 if (init_table
[itpos0
]) return;
1067 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1068 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1070 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___init
;
1071 fra
.me
.has_broke
= 0;
1072 fra
.me
.REG_size
= 3;
1073 fra
.me
.REG
[0] = NIT_NULL
;
1074 fra
.me
.REG
[1] = NIT_NULL
;
1075 fra
.me
.REG
[2] = NIT_NULL
;
1078 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1079 /* ./analysis//allocate_iregister_slots.nit:235 */
1080 CALL_icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
1081 /* ./analysis//allocate_iregister_slots.nit:237 */
1082 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1083 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[2])!=NIT_NULL
);
1084 /* ./analysis//allocate_iregister_slots.nit:238 */
1085 if (UNTAG_Bool(REGB0
)) {
1087 fprintf(stderr
, "Uninitialized attribute %s", "_global_slots");
1088 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 238);
1091 fra
.me
.REG
[1] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[2]);
1092 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1093 stack_frame_head
= fra
.me
.prev
;
1094 init_table
[itpos0
] = 1;
1097 void allocate_iregister_slots___SlotGroup___register(val_t p0
, val_t p1
){
1098 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1102 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1103 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1105 fra
.me
.meth
= LOCATE_allocate_iregister_slots___SlotGroup___register
;
1106 fra
.me
.has_broke
= 0;
1107 fra
.me
.REG_size
= 3;
1108 fra
.me
.REG
[0] = NIT_NULL
;
1109 fra
.me
.REG
[1] = NIT_NULL
;
1110 fra
.me
.REG
[2] = NIT_NULL
;
1113 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1114 /* ./analysis//allocate_iregister_slots.nit:253 */
1115 if (UNTAG_Bool(REGB0
)) {
1117 fprintf(stderr
, "Uninitialized attribute %s", "_free");
1118 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 253);
1121 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1122 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1123 if (UNTAG_Bool(REGB0
)) {
1124 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0])!=NIT_NULL
);
1125 /* ./analysis//allocate_iregister_slots.nit:254 */
1126 if (UNTAG_Bool(REGB0
)) {
1128 fprintf(stderr
, "Uninitialized attribute %s", "_next_index");
1129 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 254);
1132 REGB0
= ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]);
1133 ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]) = REGB0
;
1134 REGB0
= ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]);
1136 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1137 /* ./analysis//allocate_iregister_slots.nit:255 */
1138 ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]) = REGB1
;
1140 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1141 /* ./analysis//allocate_iregister_slots.nit:257 */
1142 if (UNTAG_Bool(REGB1
)) {
1144 fprintf(stderr
, "Uninitialized attribute %s", "_free");
1145 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 257);
1148 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1149 fra
.me
.REG
[0] = CALL_abstract_collection___Sequence___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1150 ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]) = fra
.me
.REG
[0];
1152 stack_frame_head
= fra
.me
.prev
;
1155 void allocate_iregister_slots___SlotGroup___free(val_t p0
, val_t p1
){
1156 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1159 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1160 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1162 fra
.me
.meth
= LOCATE_allocate_iregister_slots___SlotGroup___free
;
1163 fra
.me
.has_broke
= 0;
1164 fra
.me
.REG_size
= 2;
1165 fra
.me
.REG
[0] = NIT_NULL
;
1166 fra
.me
.REG
[1] = NIT_NULL
;
1169 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1170 /* ./analysis//allocate_iregister_slots.nit:264 */
1171 if (UNTAG_Bool(REGB0
)) {
1173 fprintf(stderr
, "Uninitialized attribute %s", "_free");
1174 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 264);
1177 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1178 fra
.me
.REG
[1] = ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
1179 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1180 if (UNTAG_Bool(REGB0
)) {
1182 fprintf(stderr
, "Cast failed");
1183 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 264);
1186 CALL_abstract_collection___Sequence___push(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1187 stack_frame_head
= fra
.me
.prev
;
1190 void allocate_iregister_slots___SlotGroup___init(val_t p0
, int* init_table
){
1191 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_SlotGroup
].i
;
1192 struct {struct stack_frame_t me
;} fra
;
1194 if (init_table
[itpos1
]) return;
1195 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1196 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1198 fra
.me
.meth
= LOCATE_allocate_iregister_slots___SlotGroup___init
;
1199 fra
.me
.has_broke
= 0;
1200 fra
.me
.REG_size
= 0;
1201 stack_frame_head
= fra
.me
.prev
;
1202 init_table
[itpos1
] = 1;
1205 val_t
allocate_iregister_slots___IRoutine___std_slots_nb(val_t p0
){
1206 struct {struct stack_frame_t me
;} fra
;
1209 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1210 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1212 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRoutine___std_slots_nb
;
1213 fra
.me
.has_broke
= 0;
1214 fra
.me
.REG_size
= 1;
1215 fra
.me
.REG
[0] = NIT_NULL
;
1217 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[0])!=NIT_NULL
);
1218 /* ./analysis//allocate_iregister_slots.nit:269 */
1219 if (UNTAG_Bool(REGB0
)) {
1221 fprintf(stderr
, "Uninitialized attribute %s", "_std_slots_nb");
1222 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 269);
1225 REGB0
= ATTR_allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[0]);
1226 stack_frame_head
= fra
.me
.prev
;
1229 val_t
allocate_iregister_slots___IRoutine___tag_slots_nb(val_t p0
){
1230 struct {struct stack_frame_t me
;} fra
;
1233 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1234 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1236 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRoutine___tag_slots_nb
;
1237 fra
.me
.has_broke
= 0;
1238 fra
.me
.REG_size
= 1;
1239 fra
.me
.REG
[0] = NIT_NULL
;
1241 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[0])!=NIT_NULL
);
1242 /* ./analysis//allocate_iregister_slots.nit:272 */
1243 if (UNTAG_Bool(REGB0
)) {
1245 fprintf(stderr
, "Uninitialized attribute %s", "_tag_slots_nb");
1246 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 272);
1249 REGB0
= ATTR_allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[0]);
1250 stack_frame_head
= fra
.me
.prev
;
1253 void allocate_iregister_slots___IRoutine___allocate_iregister_slots(val_t p0
){
1254 struct {struct stack_frame_t me
;} fra
;
1256 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1257 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1259 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRoutine___allocate_iregister_slots
;
1260 fra
.me
.has_broke
= 0;
1261 fra
.me
.REG_size
= 1;
1262 fra
.me
.REG
[0] = NIT_NULL
;
1264 fra
.me
.REG
[0] = NEW_IRegisterSlotAllocationVisitor_allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(fra
.me
.REG
[0]);
1265 /* ./analysis//allocate_iregister_slots.nit:278 */
1266 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1267 stack_frame_head
= fra
.me
.prev
;
1270 val_t
allocate_iregister_slots___IRegister___slot_index(val_t p0
){
1271 struct {struct stack_frame_t me
;} fra
;
1273 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1274 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1276 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___slot_index
;
1277 fra
.me
.has_broke
= 0;
1278 fra
.me
.REG_size
= 1;
1279 fra
.me
.REG
[0] = NIT_NULL
;
1281 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[0]);
1282 /* ./analysis//allocate_iregister_slots.nit:283 */
1283 stack_frame_head
= fra
.me
.prev
;
1284 return fra
.me
.REG
[0];
1286 void allocate_iregister_slots___IRegister___slot_index__eq(val_t p0
, val_t p1
){
1287 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1289 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1290 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1292 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___slot_index__eq
;
1293 fra
.me
.has_broke
= 0;
1294 fra
.me
.REG_size
= 2;
1295 fra
.me
.REG
[0] = NIT_NULL
;
1296 fra
.me
.REG
[1] = NIT_NULL
;
1299 /* ./analysis//allocate_iregister_slots.nit:283 */
1300 ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1301 stack_frame_head
= fra
.me
.prev
;
1304 val_t
allocate_iregister_slots___IRegister___is_local(val_t p0
){
1305 struct {struct stack_frame_t me
;} fra
;
1308 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1309 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1311 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___is_local
;
1312 fra
.me
.has_broke
= 0;
1313 fra
.me
.REG_size
= 1;
1314 fra
.me
.REG
[0] = NIT_NULL
;
1316 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0])!=NIT_NULL
);
1317 /* ./analysis//allocate_iregister_slots.nit:288 */
1318 if (UNTAG_Bool(REGB0
)) {
1320 fprintf(stderr
, "Uninitialized attribute %s", "_is_local");
1321 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 288);
1324 REGB0
= ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0]);
1325 stack_frame_head
= fra
.me
.prev
;
1328 void allocate_iregister_slots___IRegister___is_local__eq(val_t p0
, val_t p1
){
1329 struct {struct stack_frame_t me
;} fra
;
1332 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1333 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1335 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___is_local__eq
;
1336 fra
.me
.has_broke
= 0;
1337 fra
.me
.REG_size
= 1;
1338 fra
.me
.REG
[0] = NIT_NULL
;
1341 /* ./analysis//allocate_iregister_slots.nit:288 */
1342 ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0]) = REGB0
;
1343 stack_frame_head
= fra
.me
.prev
;
1346 val_t
allocate_iregister_slots___IRegister___local_iroutine(val_t p0
){
1347 struct {struct stack_frame_t me
;} fra
;
1349 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1350 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1352 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___local_iroutine
;
1353 fra
.me
.has_broke
= 0;
1354 fra
.me
.REG_size
= 1;
1355 fra
.me
.REG
[0] = NIT_NULL
;
1357 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[0]);
1358 /* ./analysis//allocate_iregister_slots.nit:291 */
1359 stack_frame_head
= fra
.me
.prev
;
1360 return fra
.me
.REG
[0];
1362 void allocate_iregister_slots___IRegister___local_iroutine__eq(val_t p0
, val_t p1
){
1363 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1365 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1366 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1368 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___local_iroutine__eq
;
1369 fra
.me
.has_broke
= 0;
1370 fra
.me
.REG_size
= 2;
1371 fra
.me
.REG
[0] = NIT_NULL
;
1372 fra
.me
.REG
[1] = NIT_NULL
;
1375 /* ./analysis//allocate_iregister_slots.nit:291 */
1376 ATTR_allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1377 stack_frame_head
= fra
.me
.prev
;
1380 val_t
allocate_iregister_slots___IRegister___in_tag_slots(val_t p0
){
1381 struct {struct stack_frame_t me
;} fra
;
1384 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1385 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1387 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___in_tag_slots
;
1388 fra
.me
.has_broke
= 0;
1389 fra
.me
.REG_size
= 1;
1390 fra
.me
.REG
[0] = NIT_NULL
;
1392 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
1393 /* ./analysis//allocate_iregister_slots.nit:294 */
1394 if (UNTAG_Bool(REGB0
)) {
1396 fprintf(stderr
, "Uninitialized attribute %s", "_in_tag_slots");
1397 fprintf(stderr
, " (%s:%d)\n", LOCATE_allocate_iregister_slots
, 294);
1400 REGB0
= ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0]);
1401 stack_frame_head
= fra
.me
.prev
;
1404 void allocate_iregister_slots___IRegister___in_tag_slots__eq(val_t p0
, val_t p1
){
1405 struct {struct stack_frame_t me
;} fra
;
1408 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1409 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1411 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___in_tag_slots__eq
;
1412 fra
.me
.has_broke
= 0;
1413 fra
.me
.REG_size
= 1;
1414 fra
.me
.REG
[0] = NIT_NULL
;
1417 /* ./analysis//allocate_iregister_slots.nit:294 */
1418 ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0]) = REGB0
;
1419 stack_frame_head
= fra
.me
.prev
;