1 /* This C file is generated by NIT to compile module analysis___allocate_iregister_slots. */
2 #include "analysis___allocate_iregister_slots._sep.h"
3 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
11 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality
;
14 fra
.me
.nitni_local_ref_head
= NULL
;
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
;
21 /* analysis/allocate_iregister_slots.nit:39 */
22 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
23 if (UNTAG_Bool(REGB0
)) {
25 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 39);
27 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
28 if (UNTAG_Bool(REGB0
)) {
29 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]);
30 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
31 if (UNTAG_Bool(REGB0
)) {
33 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 39);
35 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
36 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[2]));
37 if (UNTAG_Bool(REGB0
)) {
39 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
40 if (UNTAG_Bool(REGB1
)) {
41 REGB1
= TAG_Bool(false);
44 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
48 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
50 REGB1
= TAG_Bool(false);
53 if (UNTAG_Bool(REGB0
)) {
54 /* analysis/allocate_iregister_slots.nit:40 */
55 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]);
56 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
57 if (UNTAG_Bool(REGB0
)) {
59 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
60 if (UNTAG_Bool(REGB1
)) {
61 REGB1
= TAG_Bool(false);
64 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
68 if (UNTAG_Bool(REGB0
)) {
69 /* analysis/allocate_iregister_slots.nit:41 */
70 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
71 if (UNTAG_Bool(REGB0
)) {
73 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 41);
75 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
76 ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]) = fra
.me
.REG
[0];
78 /* analysis/allocate_iregister_slots.nit:43 */
79 REGB0
= TAG_Bool(false);
80 ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]) = REGB0
;
83 stack_frame_head
= fra
.me
.prev
;
86 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read(val_t p0
, val_t p1
, val_t p2
){
87 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
92 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
93 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
95 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read
;
98 fra
.me
.nitni_local_ref_head
= NULL
;
99 fra
.me
.REG
[0] = NIT_NULL
;
100 fra
.me
.REG
[1] = NIT_NULL
;
101 fra
.me
.REG
[2] = NIT_NULL
;
102 fra
.me
.REG
[3] = NIT_NULL
;
106 /* analysis/allocate_iregister_slots.nit:52 */
107 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0])!=NIT_NULL
);
108 if (UNTAG_Bool(REGB0
)) {
110 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 52);
112 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]);
113 /* analysis/allocate_iregister_slots.nit:53 */
115 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
116 if (UNTAG_Bool(REGB2
)) {
118 /* ../lib/standard/kernel.nit:227 */
119 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
120 /* analysis/allocate_iregister_slots.nit:53 */
123 if (UNTAG_Bool(REGB2
)) {
124 /* analysis/allocate_iregister_slots.nit:54 */
125 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
126 /* analysis/allocate_iregister_slots.nit:55 */
127 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
128 /* analysis/allocate_iregister_slots.nit:56 */
129 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[2]) = NIT_NULL
;
131 /* analysis/allocate_iregister_slots.nit:57 */
133 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
134 if (UNTAG_Bool(REGB1
)) {
136 /* ../lib/standard/kernel.nit:227 */
137 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
138 /* analysis/allocate_iregister_slots.nit:57 */
141 if (UNTAG_Bool(REGB1
)) {
142 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
143 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
144 if (UNTAG_Bool(REGB1
)) {
146 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
147 if (UNTAG_Bool(REGB2
)) {
148 REGB2
= TAG_Bool(false);
151 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
156 REGB2
= TAG_Bool(false);
159 if (UNTAG_Bool(REGB1
)) {
160 /* analysis/allocate_iregister_slots.nit:58 */
161 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
164 stack_frame_head
= fra
.me
.prev
;
167 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write(val_t p0
, val_t p1
, val_t p2
){
168 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
173 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
174 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
176 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write
;
177 fra
.me
.has_broke
= 0;
179 fra
.me
.nitni_local_ref_head
= NULL
;
180 fra
.me
.REG
[0] = NIT_NULL
;
181 fra
.me
.REG
[1] = NIT_NULL
;
182 fra
.me
.REG
[2] = NIT_NULL
;
183 fra
.me
.REG
[3] = NIT_NULL
;
187 /* analysis/allocate_iregister_slots.nit:64 */
188 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0])!=NIT_NULL
);
189 if (UNTAG_Bool(REGB0
)) {
191 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 64);
193 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]);
194 /* analysis/allocate_iregister_slots.nit:65 */
196 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
197 if (UNTAG_Bool(REGB2
)) {
199 /* ../lib/standard/kernel.nit:227 */
200 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
201 /* analysis/allocate_iregister_slots.nit:65 */
204 if (UNTAG_Bool(REGB2
)) {
205 /* analysis/allocate_iregister_slots.nit:66 */
206 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
207 /* analysis/allocate_iregister_slots.nit:67 */
208 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[2]) = NIT_NULL
;
209 /* analysis/allocate_iregister_slots.nit:69 */
210 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]);
211 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
212 if (UNTAG_Bool(REGB2
)) {
214 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
215 if (UNTAG_Bool(REGB1
)) {
216 REGB1
= TAG_Bool(false);
219 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
223 if (UNTAG_Bool(REGB2
)) {
224 ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
226 /* analysis/allocate_iregister_slots.nit:71 */
227 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
228 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
229 if (UNTAG_Bool(REGB2
)) {
231 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
232 if (UNTAG_Bool(REGB1
)) {
233 REGB1
= TAG_Bool(false);
236 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
240 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
241 if (UNTAG_Bool(REGB2
)) {
242 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
245 /* analysis/allocate_iregister_slots.nit:72 */
247 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
248 if (UNTAG_Bool(REGB1
)) {
250 /* ../lib/standard/kernel.nit:227 */
251 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
252 /* analysis/allocate_iregister_slots.nit:72 */
255 if (UNTAG_Bool(REGB1
)) {
256 /* analysis/allocate_iregister_slots.nit:73 */
257 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]);
258 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
259 if (UNTAG_Bool(REGB1
)) {
261 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
262 if (UNTAG_Bool(REGB2
)) {
263 REGB2
= TAG_Bool(false);
266 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
270 if (UNTAG_Bool(REGB1
)) {
271 /* analysis/allocate_iregister_slots.nit:74 */
272 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
274 /* analysis/allocate_iregister_slots.nit:75 */
275 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
276 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
277 if (UNTAG_Bool(REGB1
)) {
279 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
280 if (UNTAG_Bool(REGB2
)) {
281 REGB2
= TAG_Bool(false);
284 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
288 if (UNTAG_Bool(REGB1
)) {
289 /* analysis/allocate_iregister_slots.nit:76 */
290 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
295 stack_frame_head
= fra
.me
.prev
;
298 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(val_t p0
){
299 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
304 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
305 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
307 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free
;
308 fra
.me
.has_broke
= 0;
310 fra
.me
.nitni_local_ref_head
= NULL
;
311 fra
.me
.REG
[0] = NIT_NULL
;
312 fra
.me
.REG
[1] = NIT_NULL
;
313 fra
.me
.REG
[2] = NIT_NULL
;
315 /* analysis/allocate_iregister_slots.nit:98 */
316 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
317 if (UNTAG_Bool(REGB0
)) {
319 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_analysis___allocate_iregister_slots
, 98);
321 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
322 fra
.me
.REG
[1] = CALL_standard___collection___abstract_collection___Collection___iterator(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
323 /* analysis/allocate_iregister_slots.nit:99 */
324 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
325 if (UNTAG_Bool(REGB0
)) {
327 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 99);
329 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
330 /* analysis/allocate_iregister_slots.nit:100 */
332 REGB1
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
333 if (UNTAG_Bool(REGB1
)) {
334 /* analysis/allocate_iregister_slots.nit:101 */
335 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
336 /* analysis/allocate_iregister_slots.nit:102 */
337 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[2])!=NIT_NULL
);
338 if (UNTAG_Bool(REGB1
)) {
340 nit_abort("Uninitialized attribute %s", "_born_rank", LOCATE_analysis___allocate_iregister_slots
, 102);
342 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[2]);
343 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
344 if (UNTAG_Bool(REGB2
)) {
346 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
348 /* ../lib/standard/kernel.nit:233 */
349 REGB1
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB0
));
350 /* analysis/allocate_iregister_slots.nit:102 */
351 if (UNTAG_Bool(REGB1
)) {
352 /* analysis/allocate_iregister_slots.nit:103 */
353 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
354 /* analysis/allocate_iregister_slots.nit:104 */
355 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
357 /* analysis/allocate_iregister_slots.nit:106 */
358 CALL_standard___collection___abstract_collection___Iterator___next(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
360 /* analysis/allocate_iregister_slots.nit:100 */
365 stack_frame_head
= fra
.me
.prev
;
368 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(val_t p0
, val_t p1
){
369 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
374 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
375 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
377 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode
;
378 fra
.me
.has_broke
= 0;
380 fra
.me
.nitni_local_ref_head
= NULL
;
381 fra
.me
.REG
[0] = NIT_NULL
;
382 fra
.me
.REG
[1] = NIT_NULL
;
383 fra
.me
.REG
[2] = NIT_NULL
;
384 fra
.me
.REG
[3] = NIT_NULL
;
387 /* analysis/allocate_iregister_slots.nit:110 */
388 fra
.me
.REG
[2] = fra
.me
.REG
[0];
389 fra
.me
.REG
[3] = fra
.me
.REG
[1];
390 /* analysis/allocate_iregister_slots.nit:112 */
391 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
392 if (UNTAG_Bool(REGB0
)) {
394 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 112);
396 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
398 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
399 if (UNTAG_Bool(REGB2
)) {
401 /* ../lib/standard/kernel.nit:227 */
402 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
403 /* analysis/allocate_iregister_slots.nit:112 */
406 if (UNTAG_Bool(REGB2
)) {
407 REGB2
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___ILoop
, ID_icode___icode_base___ILoop
)) /*cast ILoop*/;
409 REGB1
= TAG_Bool(false);
412 if (UNTAG_Bool(REGB2
)) {
413 /* analysis/allocate_iregister_slots.nit:113 */
414 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2])!=NIT_NULL
);
415 if (UNTAG_Bool(REGB2
)) {
417 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 113);
419 REGB2
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]);
420 /* analysis/allocate_iregister_slots.nit:114 */
421 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
423 /* ../lib/standard/kernel.nit:235 */
424 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
425 /* analysis/allocate_iregister_slots.nit:114 */
426 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]) = REGB0
;
427 /* analysis/allocate_iregister_slots.nit:115 */
428 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2])!=NIT_NULL
);
429 if (UNTAG_Bool(REGB0
)) {
431 nit_abort("Uninitialized attribute %s", "_max_rank", LOCATE_analysis___allocate_iregister_slots
, 115);
433 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
434 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB0
;
435 /* analysis/allocate_iregister_slots.nit:116 */
436 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
437 /* analysis/allocate_iregister_slots.nit:117 */
438 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB2
;
439 /* analysis/allocate_iregister_slots.nit:118 */
440 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
442 /* analysis/allocate_iregister_slots.nit:120 */
443 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
445 stack_frame_head
= fra
.me
.prev
;
448 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(val_t p0
, val_t p1
){
449 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
454 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
455 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
457 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs
;
458 fra
.me
.has_broke
= 0;
460 fra
.me
.nitni_local_ref_head
= NULL
;
461 fra
.me
.REG
[0] = NIT_NULL
;
462 fra
.me
.REG
[1] = NIT_NULL
;
463 fra
.me
.REG
[2] = NIT_NULL
;
466 /* analysis/allocate_iregister_slots.nit:124 */
467 fra
.me
.REG
[2] = fra
.me
.REG
[0];
468 /* analysis/allocate_iregister_slots.nit:126 */
469 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
470 if (UNTAG_Bool(REGB0
)) {
472 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 126);
474 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
476 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
477 if (UNTAG_Bool(REGB2
)) {
479 /* ../lib/standard/kernel.nit:227 */
480 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
481 /* analysis/allocate_iregister_slots.nit:126 */
484 if (UNTAG_Bool(REGB2
)) {
485 /* analysis/allocate_iregister_slots.nit:127 */
486 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2])!=NIT_NULL
);
487 if (UNTAG_Bool(REGB2
)) {
489 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 127);
491 REGB2
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]);
492 /* analysis/allocate_iregister_slots.nit:128 */
493 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
495 /* ../lib/standard/kernel.nit:235 */
496 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
497 /* analysis/allocate_iregister_slots.nit:128 */
498 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]) = REGB0
;
499 /* analysis/allocate_iregister_slots.nit:129 */
500 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2])!=NIT_NULL
);
501 if (UNTAG_Bool(REGB0
)) {
503 nit_abort("Uninitialized attribute %s", "_max_rank", LOCATE_analysis___allocate_iregister_slots
, 129);
505 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
506 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB0
;
507 /* analysis/allocate_iregister_slots.nit:130 */
508 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
509 /* analysis/allocate_iregister_slots.nit:131 */
510 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB2
;
511 /* analysis/allocate_iregister_slots.nit:132 */
512 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
514 /* analysis/allocate_iregister_slots.nit:134 */
515 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
517 stack_frame_head
= fra
.me
.prev
;
520 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(val_t p0
, val_t p1
){
521 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
526 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
527 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
529 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
530 fra
.me
.has_broke
= 0;
532 fra
.me
.nitni_local_ref_head
= NULL
;
533 fra
.me
.REG
[0] = NIT_NULL
;
534 fra
.me
.REG
[1] = NIT_NULL
;
535 fra
.me
.REG
[2] = NIT_NULL
;
536 fra
.me
.REG
[3] = NIT_NULL
;
537 fra
.me
.REG
[4] = NIT_NULL
;
538 fra
.me
.REG
[5] = NIT_NULL
;
539 fra
.me
.REG
[6] = NIT_NULL
;
540 fra
.me
.REG
[7] = NIT_NULL
;
543 /* analysis/allocate_iregister_slots.nit:142 */
544 fra
.me
.REG
[2] = fra
.me
.REG
[0];
545 fra
.me
.REG
[3] = fra
.me
.REG
[1];
546 /* analysis/allocate_iregister_slots.nit:144 */
547 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
548 /* analysis/allocate_iregister_slots.nit:145 */
549 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
550 if (UNTAG_Bool(REGB0
)) {
552 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 145);
554 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
556 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
557 if (UNTAG_Bool(REGB2
)) {
559 /* ../lib/standard/kernel.nit:227 */
560 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
561 /* analysis/allocate_iregister_slots.nit:145 */
564 if (UNTAG_Bool(REGB2
)) {
565 /* analysis/allocate_iregister_slots.nit:146 */
566 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2])!=NIT_NULL
);
567 if (UNTAG_Bool(REGB2
)) {
569 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 146);
571 fra
.me
.REG
[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]);
572 /* analysis/allocate_iregister_slots.nit:147 */
573 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
574 /* analysis/allocate_iregister_slots.nit:148 */
575 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
576 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[6])(fra
.me
.REG
[6], (&(fra
.me
)), ((fun_t
)OC_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine_1
));
577 /* analysis/allocate_iregister_slots.nit:152 */
578 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
579 /* analysis/allocate_iregister_slots.nit:153 */
580 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
581 if (UNTAG_Bool(REGB2
)) {
583 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
584 if (UNTAG_Bool(REGB1
)) {
585 REGB1
= TAG_Bool(false);
588 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
592 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
593 if (UNTAG_Bool(REGB2
)) {
594 /* analysis/allocate_iregister_slots.nit:154 */
595 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[4]) = fra
.me
.REG
[2];
596 /* analysis/allocate_iregister_slots.nit:155 */
597 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
599 /* analysis/allocate_iregister_slots.nit:157 */
600 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
602 /* analysis/allocate_iregister_slots.nit:159 */
603 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2])!=NIT_NULL
);
604 if (UNTAG_Bool(REGB2
)) {
606 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 159);
608 fra
.me
.REG
[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]);
609 /* analysis/allocate_iregister_slots.nit:160 */
610 fra
.me
.REG
[6] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
611 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
612 /* analysis/allocate_iregister_slots.nit:161 */
613 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2])!=NIT_NULL
);
614 if (UNTAG_Bool(REGB2
)) {
616 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 161);
618 fra
.me
.REG
[6] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]);
619 /* analysis/allocate_iregister_slots.nit:162 */
620 REGB2
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___IClosureDef
, ID_icode___icode_base___IClosureDef
)) /*cast IClosureDef*/;
621 if (UNTAG_Bool(REGB2
)) {
622 /* analysis/allocate_iregister_slots.nit:163 */
623 fra
.me
.REG
[7] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
624 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[7];
626 /* analysis/allocate_iregister_slots.nit:165 */
627 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
628 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[7])(fra
.me
.REG
[7], (&(fra
.me
)), ((fun_t
)OC_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine_2
));
629 /* analysis/allocate_iregister_slots.nit:168 */
630 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
631 /* analysis/allocate_iregister_slots.nit:169 */
632 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
633 if (UNTAG_Bool(REGB2
)) {
635 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
636 if (UNTAG_Bool(REGB1
)) {
637 REGB1
= TAG_Bool(false);
640 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
644 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
645 if (UNTAG_Bool(REGB2
)) {
646 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
648 /* analysis/allocate_iregister_slots.nit:170 */
649 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2])!=NIT_NULL
);
650 if (UNTAG_Bool(REGB2
)) {
652 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 170);
654 fra
.me
.REG
[4] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]);
655 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[4])!=NIT_NULL
);
656 if (UNTAG_Bool(REGB2
)) {
658 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_analysis___allocate_iregister_slots
, 170);
660 REGB2
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[4]);
661 ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[3]) = REGB2
;
662 /* analysis/allocate_iregister_slots.nit:171 */
663 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
664 /* analysis/allocate_iregister_slots.nit:172 */
665 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2])!=NIT_NULL
);
666 if (UNTAG_Bool(REGB2
)) {
668 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 172);
670 fra
.me
.REG
[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]);
671 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[5])!=NIT_NULL
);
672 if (UNTAG_Bool(REGB2
)) {
674 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_analysis___allocate_iregister_slots
, 172);
676 REGB2
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[5]);
677 ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[3]) = REGB2
;
678 /* analysis/allocate_iregister_slots.nit:173 */
679 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
681 stack_frame_head
= fra
.me
.prev
;
684 void OC_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
685 struct {struct stack_frame_t me
;} fra
;
688 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
689 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
691 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
692 fra
.me
.has_broke
= 0;
694 fra
.me
.nitni_local_ref_head
= NULL
;
695 fra
.me
.REG
[0] = NIT_NULL
;
696 fra
.me
.closure_ctx
= closctx_param
;
697 fra
.me
.closure_funs
= CREG
;
700 /* analysis/allocate_iregister_slots.nit:149 */
701 ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[0]) = closctx
->REG
[2];
702 /* analysis/allocate_iregister_slots.nit:150 */
703 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
704 stack_frame_head
= fra
.me
.prev
;
707 void OC_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
708 struct {struct stack_frame_t me
;} fra
;
711 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
712 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
714 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
715 fra
.me
.has_broke
= 0;
717 fra
.me
.nitni_local_ref_head
= NULL
;
718 fra
.me
.REG
[0] = NIT_NULL
;
719 fra
.me
.closure_ctx
= closctx_param
;
720 fra
.me
.closure_funs
= CREG
;
723 /* analysis/allocate_iregister_slots.nit:166 */
724 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
725 stack_frame_head
= fra
.me
.prev
;
728 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(val_t p0
, val_t p1
){
729 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
733 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
734 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
736 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register
;
737 fra
.me
.has_broke
= 0;
739 fra
.me
.nitni_local_ref_head
= NULL
;
740 fra
.me
.REG
[0] = NIT_NULL
;
741 fra
.me
.REG
[1] = NIT_NULL
;
742 fra
.me
.REG
[2] = NIT_NULL
;
745 /* analysis/allocate_iregister_slots.nit:190 */
746 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]);
747 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
748 if (UNTAG_Bool(REGB0
)) {
750 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
751 if (UNTAG_Bool(REGB1
)) {
752 REGB1
= TAG_Bool(false);
755 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
759 if (UNTAG_Bool(REGB0
)) {
762 /* analysis/allocate_iregister_slots.nit:191 */
763 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
764 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
765 if (UNTAG_Bool(REGB0
)) {
767 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
768 if (UNTAG_Bool(REGB1
)) {
769 REGB1
= TAG_Bool(false);
772 /* ../lib/standard/kernel.nit:227 */
773 REGB1
= TAG_Bool((fra
.me
.REG
[2])==(NIT_NULL
));
774 /* analysis/allocate_iregister_slots.nit:191 */
778 if (UNTAG_Bool(REGB0
)) {
780 nit_abort("Assert failed", NULL
, LOCATE_analysis___allocate_iregister_slots
, 191);
782 /* analysis/allocate_iregister_slots.nit:192 */
783 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
784 if (UNTAG_Bool(REGB0
)) {
786 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 192);
788 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
789 ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1]) = REGB0
;
790 /* analysis/allocate_iregister_slots.nit:193 */
791 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
792 if (UNTAG_Bool(REGB0
)) {
794 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 193);
796 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
797 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
798 if (UNTAG_Bool(REGB0
)) {
799 /* analysis/allocate_iregister_slots.nit:194 */
800 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0])!=NIT_NULL
);
801 if (UNTAG_Bool(REGB0
)) {
803 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_analysis___allocate_iregister_slots
, 194);
805 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0]);
806 CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
808 /* analysis/allocate_iregister_slots.nit:195 */
809 fra
.me
.REG
[2] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
810 REGB0
= CALL_primitive_info___MMType___is_tagged(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
811 if (UNTAG_Bool(REGB0
)) {
812 /* analysis/allocate_iregister_slots.nit:196 */
813 REGB0
= TAG_Bool(true);
814 ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1]) = REGB0
;
815 /* analysis/allocate_iregister_slots.nit:197 */
816 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
817 if (UNTAG_Bool(REGB0
)) {
819 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 197);
821 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0]);
822 CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
824 /* analysis/allocate_iregister_slots.nit:199 */
825 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0])!=NIT_NULL
);
826 if (UNTAG_Bool(REGB0
)) {
828 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 199);
830 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0]);
831 CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
835 stack_frame_head
= fra
.me
.prev
;
838 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(val_t p0
, val_t p1
){
839 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
844 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
845 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
847 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
;
848 fra
.me
.has_broke
= 0;
850 fra
.me
.nitni_local_ref_head
= NULL
;
851 fra
.me
.REG
[0] = NIT_NULL
;
852 fra
.me
.REG
[1] = NIT_NULL
;
853 fra
.me
.REG
[2] = NIT_NULL
;
856 /* analysis/allocate_iregister_slots.nit:207 */
857 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
858 /* analysis/allocate_iregister_slots.nit:208 */
859 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
860 if (UNTAG_Bool(REGB0
)) {
862 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
863 if (UNTAG_Bool(REGB1
)) {
864 REGB1
= TAG_Bool(false);
867 /* ../lib/standard/kernel.nit:227 */
868 REGB1
= TAG_Bool((fra
.me
.REG
[2])==(NIT_NULL
));
869 /* analysis/allocate_iregister_slots.nit:208 */
873 if (UNTAG_Bool(REGB0
)) {
876 /* analysis/allocate_iregister_slots.nit:209 */
877 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1])!=NIT_NULL
);
878 if (UNTAG_Bool(REGB0
)) {
880 nit_abort("Uninitialized attribute %s", "_born_rank", LOCATE_analysis___allocate_iregister_slots
, 209);
882 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1]);
883 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
884 if (UNTAG_Bool(REGB1
)) {
886 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 209);
888 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
889 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
890 if (UNTAG_Bool(REGB2
)) {
892 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
894 /* ../lib/standard/kernel.nit:232 */
895 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
896 /* analysis/allocate_iregister_slots.nit:209 */
897 if (UNTAG_Bool(REGB1
)) {
898 /* analysis/allocate_iregister_slots.nit:210 */
899 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
900 if (UNTAG_Bool(REGB1
)) {
902 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_analysis___allocate_iregister_slots
, 210);
904 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
905 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
907 /* analysis/allocate_iregister_slots.nit:211 */
908 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]);
909 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
910 if (UNTAG_Bool(REGB1
)) {
912 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
913 if (UNTAG_Bool(REGB0
)) {
914 REGB0
= TAG_Bool(false);
917 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
921 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
922 if (UNTAG_Bool(REGB1
)) {
923 /* analysis/allocate_iregister_slots.nit:212 */
924 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1])!=NIT_NULL
);
925 if (UNTAG_Bool(REGB1
)) {
927 nit_abort("Uninitialized attribute %s", "_in_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 212);
929 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1]);
930 if (UNTAG_Bool(REGB1
)) {
931 /* analysis/allocate_iregister_slots.nit:213 */
932 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
933 if (UNTAG_Bool(REGB1
)) {
935 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 213);
937 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0]);
938 CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
940 /* analysis/allocate_iregister_slots.nit:214 */
941 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
942 if (UNTAG_Bool(REGB1
)) {
944 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 214);
946 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
947 if (UNTAG_Bool(REGB1
)) {
948 /* analysis/allocate_iregister_slots.nit:215 */
949 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0])!=NIT_NULL
);
950 if (UNTAG_Bool(REGB1
)) {
952 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 215);
954 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0]);
955 CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
957 /* analysis/allocate_iregister_slots.nit:217 */
958 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0])!=NIT_NULL
);
959 if (UNTAG_Bool(REGB1
)) {
961 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_analysis___allocate_iregister_slots
, 217);
963 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0]);
964 CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
967 /* analysis/allocate_iregister_slots.nit:219 */
968 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]) = NIT_NULL
;
972 stack_frame_head
= fra
.me
.prev
;
975 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(val_t p0
){
976 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
979 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
980 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
982 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation
;
983 fra
.me
.has_broke
= 0;
985 fra
.me
.nitni_local_ref_head
= NULL
;
986 fra
.me
.REG
[0] = NIT_NULL
;
987 fra
.me
.REG
[1] = NIT_NULL
;
989 /* analysis/allocate_iregister_slots.nit:226 */
990 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
991 if (UNTAG_Bool(REGB0
)) {
993 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 226);
995 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
996 /* analysis/allocate_iregister_slots.nit:227 */
997 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
998 /* analysis/allocate_iregister_slots.nit:228 */
1000 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]) = REGB0
;
1001 /* analysis/allocate_iregister_slots.nit:229 */
1002 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1003 /* analysis/allocate_iregister_slots.nit:230 */
1004 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
1005 if (UNTAG_Bool(REGB0
)) {
1007 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_analysis___allocate_iregister_slots
, 230);
1009 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
1010 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1011 if (UNTAG_Bool(REGB0
)) {
1013 nit_abort("Assert failed", NULL
, LOCATE_analysis___allocate_iregister_slots
, 230);
1015 stack_frame_head
= fra
.me
.prev
;
1018 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(val_t p0
, val_t p1
, int* init_table
){
1019 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor
].i
;
1020 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1023 if (init_table
[itpos0
]) return;
1024 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1025 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1027 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init
;
1028 fra
.me
.has_broke
= 0;
1029 fra
.me
.REG_size
= 3;
1030 fra
.me
.nitni_local_ref_head
= NULL
;
1031 fra
.me
.REG
[0] = NIT_NULL
;
1032 fra
.me
.REG
[1] = NIT_NULL
;
1033 fra
.me
.REG
[2] = NIT_NULL
;
1036 /* analysis/allocate_iregister_slots.nit:233 */
1037 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1038 CALL_icode___icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
1039 /* analysis/allocate_iregister_slots.nit:235 */
1040 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1041 /* analysis/allocate_iregister_slots.nit:236 */
1042 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[2])!=NIT_NULL
);
1043 if (UNTAG_Bool(REGB0
)) {
1045 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_analysis___allocate_iregister_slots
, 236);
1047 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[2]);
1048 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1049 stack_frame_head
= fra
.me
.prev
;
1050 init_table
[itpos0
] = 1;
1053 void analysis___allocate_iregister_slots___SlotGroup___register(val_t p0
, val_t p1
){
1054 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1058 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1059 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1061 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___SlotGroup___register
;
1062 fra
.me
.has_broke
= 0;
1063 fra
.me
.REG_size
= 3;
1064 fra
.me
.nitni_local_ref_head
= NULL
;
1065 fra
.me
.REG
[0] = NIT_NULL
;
1066 fra
.me
.REG
[1] = NIT_NULL
;
1067 fra
.me
.REG
[2] = NIT_NULL
;
1070 /* analysis/allocate_iregister_slots.nit:251 */
1071 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1072 if (UNTAG_Bool(REGB0
)) {
1074 nit_abort("Uninitialized attribute %s", "_free", LOCATE_analysis___allocate_iregister_slots
, 251);
1076 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1077 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1078 if (UNTAG_Bool(REGB0
)) {
1079 /* analysis/allocate_iregister_slots.nit:252 */
1080 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0])!=NIT_NULL
);
1081 if (UNTAG_Bool(REGB0
)) {
1083 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_analysis___allocate_iregister_slots
, 252);
1085 REGB0
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]);
1086 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]) = REGB0
;
1087 /* analysis/allocate_iregister_slots.nit:253 */
1088 REGB0
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]);
1090 /* ../lib/standard/kernel.nit:235 */
1091 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1092 /* analysis/allocate_iregister_slots.nit:253 */
1093 ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]) = REGB1
;
1095 /* analysis/allocate_iregister_slots.nit:255 */
1096 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1097 if (UNTAG_Bool(REGB1
)) {
1099 nit_abort("Uninitialized attribute %s", "_free", LOCATE_analysis___allocate_iregister_slots
, 255);
1101 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1102 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___Sequence___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1103 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]) = fra
.me
.REG
[0];
1105 stack_frame_head
= fra
.me
.prev
;
1108 void analysis___allocate_iregister_slots___SlotGroup___free(val_t p0
, val_t p1
){
1109 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1112 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1113 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1115 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___SlotGroup___free
;
1116 fra
.me
.has_broke
= 0;
1117 fra
.me
.REG_size
= 3;
1118 fra
.me
.nitni_local_ref_head
= NULL
;
1119 fra
.me
.REG
[0] = NIT_NULL
;
1120 fra
.me
.REG
[1] = NIT_NULL
;
1121 fra
.me
.REG
[2] = NIT_NULL
;
1124 /* analysis/allocate_iregister_slots.nit:259 */
1125 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1126 /* analysis/allocate_iregister_slots.nit:262 */
1127 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[2])!=NIT_NULL
);
1128 if (UNTAG_Bool(REGB0
)) {
1130 nit_abort("Uninitialized attribute %s", "_free", LOCATE_analysis___allocate_iregister_slots
, 262);
1132 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[2]);
1133 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
1134 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1135 if (UNTAG_Bool(REGB0
)) {
1137 nit_abort("Cast failed", NULL
, LOCATE_analysis___allocate_iregister_slots
, 262);
1139 CALL_standard___collection___abstract_collection___Sequence___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1140 stack_frame_head
= fra
.me
.prev
;
1143 void analysis___allocate_iregister_slots___SlotGroup___init(val_t p0
, int* init_table
){
1144 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_analysis___allocate_iregister_slots___SlotGroup
].i
;
1145 struct {struct stack_frame_t me
;} fra
;
1147 if (init_table
[itpos1
]) return;
1148 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1149 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1151 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___SlotGroup___init
;
1152 fra
.me
.has_broke
= 0;
1153 fra
.me
.REG_size
= 0;
1154 fra
.me
.nitni_local_ref_head
= NULL
;
1155 stack_frame_head
= fra
.me
.prev
;
1156 init_table
[itpos1
] = 1;
1159 val_t
analysis___allocate_iregister_slots___IRoutine___std_slots_nb(val_t p0
){
1160 struct {struct stack_frame_t me
;} fra
;
1163 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1164 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1166 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRoutine___std_slots_nb
;
1167 fra
.me
.has_broke
= 0;
1168 fra
.me
.REG_size
= 1;
1169 fra
.me
.nitni_local_ref_head
= NULL
;
1170 fra
.me
.REG
[0] = NIT_NULL
;
1172 /* analysis/allocate_iregister_slots.nit:267 */
1173 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[0])!=NIT_NULL
);
1174 if (UNTAG_Bool(REGB0
)) {
1176 nit_abort("Uninitialized attribute %s", "_std_slots_nb", LOCATE_analysis___allocate_iregister_slots
, 267);
1178 REGB0
= ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[0]);
1179 stack_frame_head
= fra
.me
.prev
;
1182 val_t
analysis___allocate_iregister_slots___IRoutine___tag_slots_nb(val_t p0
){
1183 struct {struct stack_frame_t me
;} fra
;
1186 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1187 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1189 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRoutine___tag_slots_nb
;
1190 fra
.me
.has_broke
= 0;
1191 fra
.me
.REG_size
= 1;
1192 fra
.me
.nitni_local_ref_head
= NULL
;
1193 fra
.me
.REG
[0] = NIT_NULL
;
1195 /* analysis/allocate_iregister_slots.nit:270 */
1196 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[0])!=NIT_NULL
);
1197 if (UNTAG_Bool(REGB0
)) {
1199 nit_abort("Uninitialized attribute %s", "_tag_slots_nb", LOCATE_analysis___allocate_iregister_slots
, 270);
1201 REGB0
= ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[0]);
1202 stack_frame_head
= fra
.me
.prev
;
1205 void analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots(val_t p0
){
1206 struct {struct stack_frame_t me
;} fra
;
1208 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1209 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1211 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots
;
1212 fra
.me
.has_broke
= 0;
1213 fra
.me
.REG_size
= 1;
1214 fra
.me
.nitni_local_ref_head
= NULL
;
1215 fra
.me
.REG
[0] = NIT_NULL
;
1217 /* analysis/allocate_iregister_slots.nit:275 */
1218 fra
.me
.REG
[0] = NEW_IRegisterSlotAllocationVisitor_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(fra
.me
.REG
[0]);
1219 /* analysis/allocate_iregister_slots.nit:276 */
1220 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1221 stack_frame_head
= fra
.me
.prev
;
1224 val_t
analysis___allocate_iregister_slots___IRegister___slot_index(val_t p0
){
1225 struct {struct stack_frame_t me
;} fra
;
1227 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1228 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1230 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___slot_index
;
1231 fra
.me
.has_broke
= 0;
1232 fra
.me
.REG_size
= 1;
1233 fra
.me
.nitni_local_ref_head
= NULL
;
1234 fra
.me
.REG
[0] = NIT_NULL
;
1236 /* analysis/allocate_iregister_slots.nit:281 */
1237 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[0]);
1238 stack_frame_head
= fra
.me
.prev
;
1239 return fra
.me
.REG
[0];
1241 void analysis___allocate_iregister_slots___IRegister___slot_index__eq(val_t p0
, val_t p1
){
1242 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1244 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1245 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1247 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___slot_index__eq
;
1248 fra
.me
.has_broke
= 0;
1249 fra
.me
.REG_size
= 2;
1250 fra
.me
.nitni_local_ref_head
= NULL
;
1251 fra
.me
.REG
[0] = NIT_NULL
;
1252 fra
.me
.REG
[1] = NIT_NULL
;
1255 /* analysis/allocate_iregister_slots.nit:281 */
1256 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1257 stack_frame_head
= fra
.me
.prev
;
1260 val_t
analysis___allocate_iregister_slots___IRegister___is_local(val_t p0
){
1261 struct {struct stack_frame_t me
;} fra
;
1264 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1265 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1267 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___is_local
;
1268 fra
.me
.has_broke
= 0;
1269 fra
.me
.REG_size
= 1;
1270 fra
.me
.nitni_local_ref_head
= NULL
;
1271 fra
.me
.REG
[0] = NIT_NULL
;
1273 /* analysis/allocate_iregister_slots.nit:286 */
1274 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0])!=NIT_NULL
);
1275 if (UNTAG_Bool(REGB0
)) {
1277 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 286);
1279 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0]);
1280 stack_frame_head
= fra
.me
.prev
;
1283 void analysis___allocate_iregister_slots___IRegister___is_local__eq(val_t p0
, val_t p1
){
1284 struct {struct stack_frame_t me
;} fra
;
1287 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1288 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1290 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___is_local__eq
;
1291 fra
.me
.has_broke
= 0;
1292 fra
.me
.REG_size
= 1;
1293 fra
.me
.nitni_local_ref_head
= NULL
;
1294 fra
.me
.REG
[0] = NIT_NULL
;
1297 /* analysis/allocate_iregister_slots.nit:286 */
1298 ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0]) = REGB0
;
1299 stack_frame_head
= fra
.me
.prev
;
1302 val_t
analysis___allocate_iregister_slots___IRegister___local_iroutine(val_t p0
){
1303 struct {struct stack_frame_t me
;} fra
;
1305 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1306 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1308 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___local_iroutine
;
1309 fra
.me
.has_broke
= 0;
1310 fra
.me
.REG_size
= 1;
1311 fra
.me
.nitni_local_ref_head
= NULL
;
1312 fra
.me
.REG
[0] = NIT_NULL
;
1314 /* analysis/allocate_iregister_slots.nit:289 */
1315 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[0]);
1316 stack_frame_head
= fra
.me
.prev
;
1317 return fra
.me
.REG
[0];
1319 void analysis___allocate_iregister_slots___IRegister___local_iroutine__eq(val_t p0
, val_t p1
){
1320 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1322 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1323 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1325 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___local_iroutine__eq
;
1326 fra
.me
.has_broke
= 0;
1327 fra
.me
.REG_size
= 2;
1328 fra
.me
.nitni_local_ref_head
= NULL
;
1329 fra
.me
.REG
[0] = NIT_NULL
;
1330 fra
.me
.REG
[1] = NIT_NULL
;
1333 /* analysis/allocate_iregister_slots.nit:289 */
1334 ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1335 stack_frame_head
= fra
.me
.prev
;
1338 val_t
analysis___allocate_iregister_slots___IRegister___in_tag_slots(val_t p0
){
1339 struct {struct stack_frame_t me
;} fra
;
1342 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1343 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1345 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___in_tag_slots
;
1346 fra
.me
.has_broke
= 0;
1347 fra
.me
.REG_size
= 1;
1348 fra
.me
.nitni_local_ref_head
= NULL
;
1349 fra
.me
.REG
[0] = NIT_NULL
;
1351 /* analysis/allocate_iregister_slots.nit:292 */
1352 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
1353 if (UNTAG_Bool(REGB0
)) {
1355 nit_abort("Uninitialized attribute %s", "_in_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 292);
1357 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0]);
1358 stack_frame_head
= fra
.me
.prev
;
1361 void analysis___allocate_iregister_slots___IRegister___in_tag_slots__eq(val_t p0
, val_t p1
){
1362 struct {struct stack_frame_t me
;} fra
;
1365 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1366 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1368 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___in_tag_slots__eq
;
1369 fra
.me
.has_broke
= 0;
1370 fra
.me
.REG_size
= 1;
1371 fra
.me
.nitni_local_ref_head
= NULL
;
1372 fra
.me
.REG
[0] = NIT_NULL
;
1375 /* analysis/allocate_iregister_slots.nit:292 */
1376 ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0]) = REGB0
;
1377 stack_frame_head
= fra
.me
.prev
;