1 /* This C file is generated by NIT to compile module analysis___allocate_iregister_slots. */
2 #include "analysis___allocate_iregister_slots._sep.h"
3 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::mark_locality";
4 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(val_t p0
, val_t p1
){
5 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_analysis___allocate_iregister_slots
;
12 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality
;
15 fra
.me
.nitni_local_ref_head
= NULL
;
16 fra
.me
.REG
[0] = NIT_NULL
;
17 fra
.me
.REG
[1] = NIT_NULL
;
18 fra
.me
.REG
[2] = NIT_NULL
;
19 fra
.me
.REG
[3] = NIT_NULL
;
22 /* analysis/allocate_iregister_slots.nit:39 */
23 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
24 if (UNTAG_Bool(REGB0
)) {
26 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 39);
28 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
29 if (UNTAG_Bool(REGB0
)) {
30 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]);
31 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
32 if (UNTAG_Bool(REGB0
)) {
34 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 39);
36 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
37 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[2]));
38 if (UNTAG_Bool(REGB0
)) {
40 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
41 if (UNTAG_Bool(REGB1
)) {
45 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
49 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
54 if (UNTAG_Bool(REGB0
)) {
55 /* analysis/allocate_iregister_slots.nit:40 */
56 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]);
57 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
58 if (UNTAG_Bool(REGB0
)) {
60 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
61 if (UNTAG_Bool(REGB1
)) {
65 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
69 if (UNTAG_Bool(REGB0
)) {
70 /* analysis/allocate_iregister_slots.nit:41 */
71 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
72 if (UNTAG_Bool(REGB0
)) {
74 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 41);
76 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
77 ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]) = fra
.me
.REG
[0];
79 /* analysis/allocate_iregister_slots.nit:43 */
81 ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]) = REGB0
;
84 stack_frame_head
= fra
.me
.prev
;
87 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::(icode_tools::ICodeVisitor::visit_iregister_read)";
88 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read(val_t p0
, val_t p1
, val_t p2
){
89 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
94 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
95 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
97 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read
;
100 fra
.me
.nitni_local_ref_head
= NULL
;
101 fra
.me
.REG
[0] = NIT_NULL
;
102 fra
.me
.REG
[1] = NIT_NULL
;
103 fra
.me
.REG
[2] = NIT_NULL
;
104 fra
.me
.REG
[3] = NIT_NULL
;
108 /* analysis/allocate_iregister_slots.nit:52 */
109 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0])!=NIT_NULL
);
110 if (UNTAG_Bool(REGB0
)) {
112 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 52);
114 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]);
115 /* analysis/allocate_iregister_slots.nit:53 */
117 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
118 if (UNTAG_Bool(REGB2
)) {
120 /* ../lib/standard/kernel.nit:230 */
121 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
122 /* analysis/allocate_iregister_slots.nit:53 */
125 if (UNTAG_Bool(REGB2
)) {
126 /* analysis/allocate_iregister_slots.nit:54 */
127 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
128 /* analysis/allocate_iregister_slots.nit:55 */
129 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
130 /* analysis/allocate_iregister_slots.nit:56 */
131 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[2]) = NIT_NULL
;
133 /* analysis/allocate_iregister_slots.nit:57 */
135 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
136 if (UNTAG_Bool(REGB1
)) {
138 /* ../lib/standard/kernel.nit:230 */
139 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
140 /* analysis/allocate_iregister_slots.nit:57 */
143 if (UNTAG_Bool(REGB1
)) {
144 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
145 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
146 if (UNTAG_Bool(REGB1
)) {
148 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
149 if (UNTAG_Bool(REGB2
)) {
153 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
161 if (UNTAG_Bool(REGB1
)) {
162 /* analysis/allocate_iregister_slots.nit:58 */
163 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
166 stack_frame_head
= fra
.me
.prev
;
169 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::(icode_tools::ICodeVisitor::visit_iregister_write)";
170 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write(val_t p0
, val_t p1
, val_t p2
){
171 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
176 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
177 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
179 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write
;
180 fra
.me
.has_broke
= 0;
182 fra
.me
.nitni_local_ref_head
= NULL
;
183 fra
.me
.REG
[0] = NIT_NULL
;
184 fra
.me
.REG
[1] = NIT_NULL
;
185 fra
.me
.REG
[2] = NIT_NULL
;
186 fra
.me
.REG
[3] = NIT_NULL
;
190 /* analysis/allocate_iregister_slots.nit:64 */
191 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0])!=NIT_NULL
);
192 if (UNTAG_Bool(REGB0
)) {
194 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 64);
196 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]);
197 /* analysis/allocate_iregister_slots.nit:65 */
199 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
200 if (UNTAG_Bool(REGB2
)) {
202 /* ../lib/standard/kernel.nit:230 */
203 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
204 /* analysis/allocate_iregister_slots.nit:65 */
207 if (UNTAG_Bool(REGB2
)) {
208 /* analysis/allocate_iregister_slots.nit:66 */
209 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
210 /* analysis/allocate_iregister_slots.nit:67 */
211 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[2]) = NIT_NULL
;
212 /* analysis/allocate_iregister_slots.nit:69 */
213 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]);
214 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
215 if (UNTAG_Bool(REGB2
)) {
217 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
218 if (UNTAG_Bool(REGB1
)) {
222 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
226 if (UNTAG_Bool(REGB2
)) {
227 ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
229 /* analysis/allocate_iregister_slots.nit:71 */
230 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
231 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
232 if (UNTAG_Bool(REGB2
)) {
234 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
235 if (UNTAG_Bool(REGB1
)) {
239 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
243 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
244 if (UNTAG_Bool(REGB2
)) {
245 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
248 /* analysis/allocate_iregister_slots.nit:72 */
250 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
251 if (UNTAG_Bool(REGB1
)) {
253 /* ../lib/standard/kernel.nit:230 */
254 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
255 /* analysis/allocate_iregister_slots.nit:72 */
258 if (UNTAG_Bool(REGB1
)) {
259 /* analysis/allocate_iregister_slots.nit:73 */
260 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]);
261 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
262 if (UNTAG_Bool(REGB1
)) {
264 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
265 if (UNTAG_Bool(REGB2
)) {
269 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
273 if (UNTAG_Bool(REGB1
)) {
274 /* analysis/allocate_iregister_slots.nit:74 */
275 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
277 /* analysis/allocate_iregister_slots.nit:75 */
278 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
279 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
280 if (UNTAG_Bool(REGB1
)) {
282 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
283 if (UNTAG_Bool(REGB2
)) {
287 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
291 if (UNTAG_Bool(REGB1
)) {
292 /* analysis/allocate_iregister_slots.nit:76 */
293 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
298 stack_frame_head
= fra
.me
.prev
;
301 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::deferred_free";
302 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(val_t p0
){
303 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
308 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
309 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
311 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free
;
312 fra
.me
.has_broke
= 0;
314 fra
.me
.nitni_local_ref_head
= NULL
;
315 fra
.me
.REG
[0] = NIT_NULL
;
316 fra
.me
.REG
[1] = NIT_NULL
;
317 fra
.me
.REG
[2] = NIT_NULL
;
319 /* analysis/allocate_iregister_slots.nit:98 */
320 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
321 if (UNTAG_Bool(REGB0
)) {
323 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_analysis___allocate_iregister_slots
, 98);
325 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
326 fra
.me
.REG
[1] = CALL_standard___collection___abstract_collection___Collection___iterator(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
327 /* analysis/allocate_iregister_slots.nit:99 */
328 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
329 if (UNTAG_Bool(REGB0
)) {
331 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 99);
333 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
334 /* analysis/allocate_iregister_slots.nit:100 */
336 REGB1
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
337 if (UNTAG_Bool(REGB1
)) {
338 /* analysis/allocate_iregister_slots.nit:101 */
339 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
340 /* analysis/allocate_iregister_slots.nit:102 */
341 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[2])!=NIT_NULL
);
342 if (UNTAG_Bool(REGB1
)) {
344 nit_abort("Uninitialized attribute %s", "_born_rank", LOCATE_analysis___allocate_iregister_slots
, 102);
346 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[2]);
347 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
348 if (UNTAG_Bool(REGB2
)) {
350 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
352 /* ../lib/standard/kernel.nit:236 */
353 REGB1
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB0
));
354 /* analysis/allocate_iregister_slots.nit:102 */
355 if (UNTAG_Bool(REGB1
)) {
356 /* analysis/allocate_iregister_slots.nit:103 */
357 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
358 /* analysis/allocate_iregister_slots.nit:104 */
359 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
361 /* analysis/allocate_iregister_slots.nit:106 */
362 CALL_standard___collection___abstract_collection___Iterator___next(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
364 /* analysis/allocate_iregister_slots.nit:100 */
369 stack_frame_head
= fra
.me
.prev
;
372 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::(icode_tools::ICodeVisitor::visit_icode)";
373 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(val_t p0
, val_t p1
){
374 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
379 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
380 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
382 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode
;
383 fra
.me
.has_broke
= 0;
385 fra
.me
.nitni_local_ref_head
= NULL
;
386 fra
.me
.REG
[0] = NIT_NULL
;
387 fra
.me
.REG
[1] = NIT_NULL
;
388 fra
.me
.REG
[2] = NIT_NULL
;
389 fra
.me
.REG
[3] = NIT_NULL
;
392 /* analysis/allocate_iregister_slots.nit:110 */
393 fra
.me
.REG
[2] = fra
.me
.REG
[0];
394 fra
.me
.REG
[3] = fra
.me
.REG
[1];
395 /* analysis/allocate_iregister_slots.nit:112 */
396 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
397 if (UNTAG_Bool(REGB0
)) {
399 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 112);
401 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
403 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
404 if (UNTAG_Bool(REGB2
)) {
406 /* ../lib/standard/kernel.nit:230 */
407 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
408 /* analysis/allocate_iregister_slots.nit:112 */
411 if (UNTAG_Bool(REGB2
)) {
412 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*/;
417 if (UNTAG_Bool(REGB2
)) {
418 /* analysis/allocate_iregister_slots.nit:113 */
419 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2])!=NIT_NULL
);
420 if (UNTAG_Bool(REGB2
)) {
422 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 113);
424 REGB2
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]);
425 /* analysis/allocate_iregister_slots.nit:114 */
426 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
428 /* ../lib/standard/kernel.nit:238 */
429 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
430 /* analysis/allocate_iregister_slots.nit:114 */
431 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]) = REGB0
;
432 /* analysis/allocate_iregister_slots.nit:115 */
433 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2])!=NIT_NULL
);
434 if (UNTAG_Bool(REGB0
)) {
436 nit_abort("Uninitialized attribute %s", "_max_rank", LOCATE_analysis___allocate_iregister_slots
, 115);
438 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
439 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB0
;
440 /* analysis/allocate_iregister_slots.nit:116 */
441 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
442 /* analysis/allocate_iregister_slots.nit:117 */
443 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB2
;
444 /* analysis/allocate_iregister_slots.nit:118 */
445 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
447 /* analysis/allocate_iregister_slots.nit:120 */
448 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
450 stack_frame_head
= fra
.me
.prev
;
453 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::(icode_tools::ICodeVisitor::visit_closure_defs)";
454 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(val_t p0
, val_t p1
){
455 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
460 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
461 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
463 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs
;
464 fra
.me
.has_broke
= 0;
466 fra
.me
.nitni_local_ref_head
= NULL
;
467 fra
.me
.REG
[0] = NIT_NULL
;
468 fra
.me
.REG
[1] = NIT_NULL
;
469 fra
.me
.REG
[2] = NIT_NULL
;
472 /* analysis/allocate_iregister_slots.nit:124 */
473 fra
.me
.REG
[2] = fra
.me
.REG
[0];
474 /* analysis/allocate_iregister_slots.nit:126 */
475 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
476 if (UNTAG_Bool(REGB0
)) {
478 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 126);
480 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
482 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
483 if (UNTAG_Bool(REGB2
)) {
485 /* ../lib/standard/kernel.nit:230 */
486 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
487 /* analysis/allocate_iregister_slots.nit:126 */
490 if (UNTAG_Bool(REGB2
)) {
491 /* analysis/allocate_iregister_slots.nit:127 */
492 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2])!=NIT_NULL
);
493 if (UNTAG_Bool(REGB2
)) {
495 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 127);
497 REGB2
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]);
498 /* analysis/allocate_iregister_slots.nit:128 */
499 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
501 /* ../lib/standard/kernel.nit:238 */
502 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
503 /* analysis/allocate_iregister_slots.nit:128 */
504 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]) = REGB0
;
505 /* analysis/allocate_iregister_slots.nit:129 */
506 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2])!=NIT_NULL
);
507 if (UNTAG_Bool(REGB0
)) {
509 nit_abort("Uninitialized attribute %s", "_max_rank", LOCATE_analysis___allocate_iregister_slots
, 129);
511 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
512 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB0
;
513 /* analysis/allocate_iregister_slots.nit:130 */
514 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
515 /* analysis/allocate_iregister_slots.nit:131 */
516 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB2
;
517 /* analysis/allocate_iregister_slots.nit:132 */
518 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
520 /* analysis/allocate_iregister_slots.nit:134 */
521 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
523 stack_frame_head
= fra
.me
.prev
;
526 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::(icode_tools::ICodeVisitor::visit_iroutine)";
527 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(val_t p0
, val_t p1
){
528 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
533 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
534 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
536 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
537 fra
.me
.has_broke
= 0;
539 fra
.me
.nitni_local_ref_head
= NULL
;
540 fra
.me
.REG
[0] = NIT_NULL
;
541 fra
.me
.REG
[1] = NIT_NULL
;
542 fra
.me
.REG
[2] = NIT_NULL
;
543 fra
.me
.REG
[3] = NIT_NULL
;
544 fra
.me
.REG
[4] = NIT_NULL
;
545 fra
.me
.REG
[5] = NIT_NULL
;
546 fra
.me
.REG
[6] = NIT_NULL
;
547 fra
.me
.REG
[7] = NIT_NULL
;
550 /* analysis/allocate_iregister_slots.nit:142 */
551 fra
.me
.REG
[2] = fra
.me
.REG
[0];
552 fra
.me
.REG
[3] = fra
.me
.REG
[1];
553 /* analysis/allocate_iregister_slots.nit:144 */
554 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
555 /* analysis/allocate_iregister_slots.nit:145 */
556 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
557 if (UNTAG_Bool(REGB0
)) {
559 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 145);
561 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
563 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
564 if (UNTAG_Bool(REGB2
)) {
566 /* ../lib/standard/kernel.nit:230 */
567 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
568 /* analysis/allocate_iregister_slots.nit:145 */
571 if (UNTAG_Bool(REGB2
)) {
572 /* analysis/allocate_iregister_slots.nit:146 */
573 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2])!=NIT_NULL
);
574 if (UNTAG_Bool(REGB2
)) {
576 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 146);
578 fra
.me
.REG
[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]);
579 /* analysis/allocate_iregister_slots.nit:147 */
580 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
581 /* analysis/allocate_iregister_slots.nit:148 */
582 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
583 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
));
584 /* analysis/allocate_iregister_slots.nit:152 */
585 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
586 /* analysis/allocate_iregister_slots.nit:153 */
587 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
588 if (UNTAG_Bool(REGB2
)) {
590 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
591 if (UNTAG_Bool(REGB1
)) {
595 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
599 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
600 if (UNTAG_Bool(REGB2
)) {
601 /* analysis/allocate_iregister_slots.nit:154 */
602 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[4]) = fra
.me
.REG
[2];
603 /* analysis/allocate_iregister_slots.nit:155 */
604 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
606 /* analysis/allocate_iregister_slots.nit:157 */
607 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
609 /* analysis/allocate_iregister_slots.nit:159 */
610 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2])!=NIT_NULL
);
611 if (UNTAG_Bool(REGB2
)) {
613 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 159);
615 fra
.me
.REG
[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]);
616 /* analysis/allocate_iregister_slots.nit:160 */
617 fra
.me
.REG
[6] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
618 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
619 /* analysis/allocate_iregister_slots.nit:161 */
620 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2])!=NIT_NULL
);
621 if (UNTAG_Bool(REGB2
)) {
623 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 161);
625 fra
.me
.REG
[6] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]);
626 /* analysis/allocate_iregister_slots.nit:162 */
627 REGB2
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___IClosureDef
, ID_icode___icode_base___IClosureDef
)) /*cast IClosureDef*/;
628 if (UNTAG_Bool(REGB2
)) {
629 /* analysis/allocate_iregister_slots.nit:163 */
630 fra
.me
.REG
[7] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
631 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[7];
633 /* analysis/allocate_iregister_slots.nit:165 */
634 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
635 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
));
636 /* analysis/allocate_iregister_slots.nit:168 */
637 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
638 /* analysis/allocate_iregister_slots.nit:169 */
639 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
640 if (UNTAG_Bool(REGB2
)) {
642 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
643 if (UNTAG_Bool(REGB1
)) {
647 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
651 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
652 if (UNTAG_Bool(REGB2
)) {
653 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
655 /* analysis/allocate_iregister_slots.nit:170 */
656 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2])!=NIT_NULL
);
657 if (UNTAG_Bool(REGB2
)) {
659 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 170);
661 fra
.me
.REG
[4] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]);
662 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[4])!=NIT_NULL
);
663 if (UNTAG_Bool(REGB2
)) {
665 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_analysis___allocate_iregister_slots
, 170);
667 REGB2
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[4]);
668 ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[3]) = REGB2
;
669 /* analysis/allocate_iregister_slots.nit:171 */
670 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
671 /* analysis/allocate_iregister_slots.nit:172 */
672 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2])!=NIT_NULL
);
673 if (UNTAG_Bool(REGB2
)) {
675 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 172);
677 fra
.me
.REG
[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]);
678 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[5])!=NIT_NULL
);
679 if (UNTAG_Bool(REGB2
)) {
681 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_analysis___allocate_iregister_slots
, 172);
683 REGB2
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[5]);
684 ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[3]) = REGB2
;
685 /* analysis/allocate_iregister_slots.nit:173 */
686 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
688 stack_frame_head
= fra
.me
.prev
;
691 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
){
692 struct {struct stack_frame_t me
;} fra
;
695 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
696 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
698 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
699 fra
.me
.has_broke
= 0;
701 fra
.me
.nitni_local_ref_head
= NULL
;
702 fra
.me
.REG
[0] = NIT_NULL
;
703 fra
.me
.closure_ctx
= closctx_param
;
704 fra
.me
.closure_funs
= CREG
;
707 /* analysis/allocate_iregister_slots.nit:149 */
708 ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[0]) = closctx
->REG
[2];
709 /* analysis/allocate_iregister_slots.nit:150 */
710 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
711 stack_frame_head
= fra
.me
.prev
;
714 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
){
715 struct {struct stack_frame_t me
;} fra
;
718 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
719 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
721 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
722 fra
.me
.has_broke
= 0;
724 fra
.me
.nitni_local_ref_head
= NULL
;
725 fra
.me
.REG
[0] = NIT_NULL
;
726 fra
.me
.closure_ctx
= closctx_param
;
727 fra
.me
.closure_funs
= CREG
;
730 /* analysis/allocate_iregister_slots.nit:166 */
731 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
732 stack_frame_head
= fra
.me
.prev
;
735 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::register";
736 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(val_t p0
, val_t p1
){
737 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
741 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
742 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
744 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register
;
745 fra
.me
.has_broke
= 0;
747 fra
.me
.nitni_local_ref_head
= NULL
;
748 fra
.me
.REG
[0] = NIT_NULL
;
749 fra
.me
.REG
[1] = NIT_NULL
;
750 fra
.me
.REG
[2] = NIT_NULL
;
753 /* analysis/allocate_iregister_slots.nit:190 */
754 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]);
755 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
756 if (UNTAG_Bool(REGB0
)) {
758 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
759 if (UNTAG_Bool(REGB1
)) {
763 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
767 if (UNTAG_Bool(REGB0
)) {
770 /* analysis/allocate_iregister_slots.nit:191 */
771 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
772 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
773 if (UNTAG_Bool(REGB0
)) {
775 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
776 if (UNTAG_Bool(REGB1
)) {
780 /* ../lib/standard/kernel.nit:230 */
781 REGB1
= TAG_Bool((fra
.me
.REG
[2])==(NIT_NULL
));
782 /* analysis/allocate_iregister_slots.nit:191 */
786 if (UNTAG_Bool(REGB0
)) {
788 nit_abort("Assert failed", NULL
, LOCATE_analysis___allocate_iregister_slots
, 191);
790 /* analysis/allocate_iregister_slots.nit:192 */
791 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
792 if (UNTAG_Bool(REGB0
)) {
794 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 192);
796 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
797 ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1]) = REGB0
;
798 /* analysis/allocate_iregister_slots.nit:193 */
799 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
800 if (UNTAG_Bool(REGB0
)) {
802 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 193);
804 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
805 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
806 if (UNTAG_Bool(REGB0
)) {
807 /* analysis/allocate_iregister_slots.nit:194 */
808 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0])!=NIT_NULL
);
809 if (UNTAG_Bool(REGB0
)) {
811 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_analysis___allocate_iregister_slots
, 194);
813 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0]);
814 CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
816 /* analysis/allocate_iregister_slots.nit:195 */
817 fra
.me
.REG
[2] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
818 REGB0
= CALL_primitive_info___MMType___is_tagged(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
819 if (UNTAG_Bool(REGB0
)) {
820 /* analysis/allocate_iregister_slots.nit:196 */
822 ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1]) = REGB0
;
823 /* analysis/allocate_iregister_slots.nit:197 */
824 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
825 if (UNTAG_Bool(REGB0
)) {
827 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 197);
829 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0]);
830 CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
832 /* analysis/allocate_iregister_slots.nit:199 */
833 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0])!=NIT_NULL
);
834 if (UNTAG_Bool(REGB0
)) {
836 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 199);
838 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0]);
839 CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
843 stack_frame_head
= fra
.me
.prev
;
846 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::free";
847 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(val_t p0
, val_t p1
){
848 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
853 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
854 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
856 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
;
857 fra
.me
.has_broke
= 0;
859 fra
.me
.nitni_local_ref_head
= NULL
;
860 fra
.me
.REG
[0] = NIT_NULL
;
861 fra
.me
.REG
[1] = NIT_NULL
;
862 fra
.me
.REG
[2] = NIT_NULL
;
865 /* analysis/allocate_iregister_slots.nit:207 */
866 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
867 /* analysis/allocate_iregister_slots.nit:208 */
868 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
869 if (UNTAG_Bool(REGB0
)) {
871 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
872 if (UNTAG_Bool(REGB1
)) {
876 /* ../lib/standard/kernel.nit:230 */
877 REGB1
= TAG_Bool((fra
.me
.REG
[2])==(NIT_NULL
));
878 /* analysis/allocate_iregister_slots.nit:208 */
882 if (UNTAG_Bool(REGB0
)) {
885 /* analysis/allocate_iregister_slots.nit:209 */
886 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1])!=NIT_NULL
);
887 if (UNTAG_Bool(REGB0
)) {
889 nit_abort("Uninitialized attribute %s", "_born_rank", LOCATE_analysis___allocate_iregister_slots
, 209);
891 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1]);
892 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
893 if (UNTAG_Bool(REGB1
)) {
895 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 209);
897 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
898 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
899 if (UNTAG_Bool(REGB2
)) {
901 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
903 /* ../lib/standard/kernel.nit:235 */
904 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
905 /* analysis/allocate_iregister_slots.nit:209 */
906 if (UNTAG_Bool(REGB1
)) {
907 /* analysis/allocate_iregister_slots.nit:210 */
908 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
909 if (UNTAG_Bool(REGB1
)) {
911 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_analysis___allocate_iregister_slots
, 210);
913 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
914 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
916 /* analysis/allocate_iregister_slots.nit:211 */
917 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]);
918 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
919 if (UNTAG_Bool(REGB1
)) {
921 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
922 if (UNTAG_Bool(REGB0
)) {
926 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
930 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
931 if (UNTAG_Bool(REGB1
)) {
932 /* analysis/allocate_iregister_slots.nit:212 */
933 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1])!=NIT_NULL
);
934 if (UNTAG_Bool(REGB1
)) {
936 nit_abort("Uninitialized attribute %s", "_in_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 212);
938 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1]);
939 if (UNTAG_Bool(REGB1
)) {
940 /* analysis/allocate_iregister_slots.nit:213 */
941 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
942 if (UNTAG_Bool(REGB1
)) {
944 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 213);
946 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0]);
947 CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
949 /* analysis/allocate_iregister_slots.nit:214 */
950 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
951 if (UNTAG_Bool(REGB1
)) {
953 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 214);
955 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
956 if (UNTAG_Bool(REGB1
)) {
957 /* analysis/allocate_iregister_slots.nit:215 */
958 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0])!=NIT_NULL
);
959 if (UNTAG_Bool(REGB1
)) {
961 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 215);
963 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0]);
964 CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
966 /* analysis/allocate_iregister_slots.nit:217 */
967 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0])!=NIT_NULL
);
968 if (UNTAG_Bool(REGB1
)) {
970 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_analysis___allocate_iregister_slots
, 217);
972 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0]);
973 CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
976 /* analysis/allocate_iregister_slots.nit:219 */
977 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]) = NIT_NULL
;
981 stack_frame_head
= fra
.me
.prev
;
984 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::iroutine_slot_allocation";
985 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(val_t p0
){
986 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
989 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
990 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
992 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation
;
993 fra
.me
.has_broke
= 0;
995 fra
.me
.nitni_local_ref_head
= NULL
;
996 fra
.me
.REG
[0] = NIT_NULL
;
997 fra
.me
.REG
[1] = NIT_NULL
;
999 /* analysis/allocate_iregister_slots.nit:226 */
1000 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
1001 if (UNTAG_Bool(REGB0
)) {
1003 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 226);
1005 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
1006 /* analysis/allocate_iregister_slots.nit:227 */
1007 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1008 /* analysis/allocate_iregister_slots.nit:228 */
1010 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]) = REGB0
;
1011 /* analysis/allocate_iregister_slots.nit:229 */
1012 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1013 /* analysis/allocate_iregister_slots.nit:230 */
1014 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
1015 if (UNTAG_Bool(REGB0
)) {
1017 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_analysis___allocate_iregister_slots
, 230);
1019 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
1020 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1021 if (UNTAG_Bool(REGB0
)) {
1023 nit_abort("Assert failed", NULL
, LOCATE_analysis___allocate_iregister_slots
, 230);
1025 stack_frame_head
= fra
.me
.prev
;
1028 static const char LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init
[] = "allocate_iregister_slots::IRegisterSlotAllocationVisitor::init";
1029 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(val_t p0
, val_t p1
, int* init_table
){
1030 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor
].i
;
1031 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1034 if (init_table
[itpos0
]) return;
1035 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1036 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1038 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init
;
1039 fra
.me
.has_broke
= 0;
1040 fra
.me
.REG_size
= 3;
1041 fra
.me
.nitni_local_ref_head
= NULL
;
1042 fra
.me
.REG
[0] = NIT_NULL
;
1043 fra
.me
.REG
[1] = NIT_NULL
;
1044 fra
.me
.REG
[2] = NIT_NULL
;
1047 /* analysis/allocate_iregister_slots.nit:233 */
1048 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1049 CALL_icode___icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
1050 /* analysis/allocate_iregister_slots.nit:235 */
1051 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1052 /* analysis/allocate_iregister_slots.nit:236 */
1053 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[2])!=NIT_NULL
);
1054 if (UNTAG_Bool(REGB0
)) {
1056 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_analysis___allocate_iregister_slots
, 236);
1058 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[2]);
1059 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1060 stack_frame_head
= fra
.me
.prev
;
1061 init_table
[itpos0
] = 1;
1064 static const char LOCATE_analysis___allocate_iregister_slots___SlotGroup___register
[] = "allocate_iregister_slots::SlotGroup::register";
1065 void analysis___allocate_iregister_slots___SlotGroup___register(val_t p0
, val_t p1
){
1066 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1070 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1071 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1073 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___SlotGroup___register
;
1074 fra
.me
.has_broke
= 0;
1075 fra
.me
.REG_size
= 3;
1076 fra
.me
.nitni_local_ref_head
= NULL
;
1077 fra
.me
.REG
[0] = NIT_NULL
;
1078 fra
.me
.REG
[1] = NIT_NULL
;
1079 fra
.me
.REG
[2] = NIT_NULL
;
1082 /* analysis/allocate_iregister_slots.nit:251 */
1083 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1084 if (UNTAG_Bool(REGB0
)) {
1086 nit_abort("Uninitialized attribute %s", "_free", LOCATE_analysis___allocate_iregister_slots
, 251);
1088 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1089 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1090 if (UNTAG_Bool(REGB0
)) {
1091 /* analysis/allocate_iregister_slots.nit:252 */
1092 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0])!=NIT_NULL
);
1093 if (UNTAG_Bool(REGB0
)) {
1095 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_analysis___allocate_iregister_slots
, 252);
1097 REGB0
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]);
1098 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]) = REGB0
;
1099 /* analysis/allocate_iregister_slots.nit:253 */
1100 REGB0
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]);
1102 /* ../lib/standard/kernel.nit:238 */
1103 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1104 /* analysis/allocate_iregister_slots.nit:253 */
1105 ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]) = REGB1
;
1107 /* analysis/allocate_iregister_slots.nit:255 */
1108 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1109 if (UNTAG_Bool(REGB1
)) {
1111 nit_abort("Uninitialized attribute %s", "_free", LOCATE_analysis___allocate_iregister_slots
, 255);
1113 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1114 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___Sequence___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1115 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]) = fra
.me
.REG
[0];
1117 stack_frame_head
= fra
.me
.prev
;
1120 static const char LOCATE_analysis___allocate_iregister_slots___SlotGroup___free
[] = "allocate_iregister_slots::SlotGroup::free";
1121 void analysis___allocate_iregister_slots___SlotGroup___free(val_t p0
, val_t p1
){
1122 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1125 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1126 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1128 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___SlotGroup___free
;
1129 fra
.me
.has_broke
= 0;
1130 fra
.me
.REG_size
= 3;
1131 fra
.me
.nitni_local_ref_head
= NULL
;
1132 fra
.me
.REG
[0] = NIT_NULL
;
1133 fra
.me
.REG
[1] = NIT_NULL
;
1134 fra
.me
.REG
[2] = NIT_NULL
;
1137 /* analysis/allocate_iregister_slots.nit:259 */
1138 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1139 /* analysis/allocate_iregister_slots.nit:262 */
1140 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[2])!=NIT_NULL
);
1141 if (UNTAG_Bool(REGB0
)) {
1143 nit_abort("Uninitialized attribute %s", "_free", LOCATE_analysis___allocate_iregister_slots
, 262);
1145 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[2]);
1146 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
1147 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1148 if (UNTAG_Bool(REGB0
)) {
1150 nit_abort("Cast failed", NULL
, LOCATE_analysis___allocate_iregister_slots
, 262);
1152 CALL_standard___collection___abstract_collection___Sequence___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1153 stack_frame_head
= fra
.me
.prev
;
1156 static const char LOCATE_analysis___allocate_iregister_slots___SlotGroup___init
[] = "allocate_iregister_slots::SlotGroup::init";
1157 void analysis___allocate_iregister_slots___SlotGroup___init(val_t p0
, int* init_table
){
1158 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_analysis___allocate_iregister_slots___SlotGroup
].i
;
1159 struct {struct stack_frame_t me
;} fra
;
1161 if (init_table
[itpos1
]) return;
1162 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1163 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1165 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___SlotGroup___init
;
1166 fra
.me
.has_broke
= 0;
1167 fra
.me
.REG_size
= 0;
1168 fra
.me
.nitni_local_ref_head
= NULL
;
1169 stack_frame_head
= fra
.me
.prev
;
1170 init_table
[itpos1
] = 1;
1173 static const char LOCATE_analysis___allocate_iregister_slots___IRoutine___std_slots_nb
[] = "allocate_iregister_slots::IRoutine::std_slots_nb";
1174 val_t
analysis___allocate_iregister_slots___IRoutine___std_slots_nb(val_t p0
){
1175 struct {struct stack_frame_t me
;} fra
;
1178 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1179 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1181 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRoutine___std_slots_nb
;
1182 fra
.me
.has_broke
= 0;
1183 fra
.me
.REG_size
= 1;
1184 fra
.me
.nitni_local_ref_head
= NULL
;
1185 fra
.me
.REG
[0] = NIT_NULL
;
1187 /* analysis/allocate_iregister_slots.nit:267 */
1188 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[0])!=NIT_NULL
);
1189 if (UNTAG_Bool(REGB0
)) {
1191 nit_abort("Uninitialized attribute %s", "_std_slots_nb", LOCATE_analysis___allocate_iregister_slots
, 267);
1193 REGB0
= ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[0]);
1194 stack_frame_head
= fra
.me
.prev
;
1197 static const char LOCATE_analysis___allocate_iregister_slots___IRoutine___tag_slots_nb
[] = "allocate_iregister_slots::IRoutine::tag_slots_nb";
1198 val_t
analysis___allocate_iregister_slots___IRoutine___tag_slots_nb(val_t p0
){
1199 struct {struct stack_frame_t me
;} fra
;
1202 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1203 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1205 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRoutine___tag_slots_nb
;
1206 fra
.me
.has_broke
= 0;
1207 fra
.me
.REG_size
= 1;
1208 fra
.me
.nitni_local_ref_head
= NULL
;
1209 fra
.me
.REG
[0] = NIT_NULL
;
1211 /* analysis/allocate_iregister_slots.nit:270 */
1212 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[0])!=NIT_NULL
);
1213 if (UNTAG_Bool(REGB0
)) {
1215 nit_abort("Uninitialized attribute %s", "_tag_slots_nb", LOCATE_analysis___allocate_iregister_slots
, 270);
1217 REGB0
= ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[0]);
1218 stack_frame_head
= fra
.me
.prev
;
1221 static const char LOCATE_analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots
[] = "allocate_iregister_slots::IRoutine::allocate_iregister_slots";
1222 void analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots(val_t p0
){
1223 struct {struct stack_frame_t me
;} fra
;
1225 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1226 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1228 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots
;
1229 fra
.me
.has_broke
= 0;
1230 fra
.me
.REG_size
= 1;
1231 fra
.me
.nitni_local_ref_head
= NULL
;
1232 fra
.me
.REG
[0] = NIT_NULL
;
1234 /* analysis/allocate_iregister_slots.nit:275 */
1235 fra
.me
.REG
[0] = NEW_IRegisterSlotAllocationVisitor_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(fra
.me
.REG
[0]);
1236 /* analysis/allocate_iregister_slots.nit:276 */
1237 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1238 stack_frame_head
= fra
.me
.prev
;
1241 static const char LOCATE_analysis___allocate_iregister_slots___IRegister___slot_index
[] = "allocate_iregister_slots::IRegister::slot_index";
1242 val_t
analysis___allocate_iregister_slots___IRegister___slot_index(val_t p0
){
1243 struct {struct stack_frame_t me
;} fra
;
1245 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1246 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1248 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___slot_index
;
1249 fra
.me
.has_broke
= 0;
1250 fra
.me
.REG_size
= 1;
1251 fra
.me
.nitni_local_ref_head
= NULL
;
1252 fra
.me
.REG
[0] = NIT_NULL
;
1254 /* analysis/allocate_iregister_slots.nit:281 */
1255 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[0]);
1256 stack_frame_head
= fra
.me
.prev
;
1257 return fra
.me
.REG
[0];
1259 static const char LOCATE_analysis___allocate_iregister_slots___IRegister___slot_index__eq
[] = "allocate_iregister_slots::IRegister::slot_index=";
1260 void analysis___allocate_iregister_slots___IRegister___slot_index__eq(val_t p0
, val_t p1
){
1261 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1263 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1264 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1266 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___slot_index__eq
;
1267 fra
.me
.has_broke
= 0;
1268 fra
.me
.REG_size
= 2;
1269 fra
.me
.nitni_local_ref_head
= NULL
;
1270 fra
.me
.REG
[0] = NIT_NULL
;
1271 fra
.me
.REG
[1] = NIT_NULL
;
1274 /* analysis/allocate_iregister_slots.nit:281 */
1275 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1276 stack_frame_head
= fra
.me
.prev
;
1279 static const char LOCATE_analysis___allocate_iregister_slots___IRegister___is_local
[] = "allocate_iregister_slots::IRegister::is_local";
1280 val_t
analysis___allocate_iregister_slots___IRegister___is_local(val_t p0
){
1281 struct {struct stack_frame_t me
;} fra
;
1284 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1285 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1287 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___is_local
;
1288 fra
.me
.has_broke
= 0;
1289 fra
.me
.REG_size
= 1;
1290 fra
.me
.nitni_local_ref_head
= NULL
;
1291 fra
.me
.REG
[0] = NIT_NULL
;
1293 /* analysis/allocate_iregister_slots.nit:286 */
1294 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0])!=NIT_NULL
);
1295 if (UNTAG_Bool(REGB0
)) {
1297 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 286);
1299 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0]);
1300 stack_frame_head
= fra
.me
.prev
;
1303 static const char LOCATE_analysis___allocate_iregister_slots___IRegister___is_local__eq
[] = "allocate_iregister_slots::IRegister::is_local=";
1304 void analysis___allocate_iregister_slots___IRegister___is_local__eq(val_t p0
, val_t p1
){
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_analysis___allocate_iregister_slots
;
1311 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___is_local__eq
;
1312 fra
.me
.has_broke
= 0;
1313 fra
.me
.REG_size
= 1;
1314 fra
.me
.nitni_local_ref_head
= NULL
;
1315 fra
.me
.REG
[0] = NIT_NULL
;
1318 /* analysis/allocate_iregister_slots.nit:286 */
1319 ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0]) = REGB0
;
1320 stack_frame_head
= fra
.me
.prev
;
1323 static const char LOCATE_analysis___allocate_iregister_slots___IRegister___local_iroutine
[] = "allocate_iregister_slots::IRegister::local_iroutine";
1324 val_t
analysis___allocate_iregister_slots___IRegister___local_iroutine(val_t p0
){
1325 struct {struct stack_frame_t me
;} fra
;
1327 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1328 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1330 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___local_iroutine
;
1331 fra
.me
.has_broke
= 0;
1332 fra
.me
.REG_size
= 1;
1333 fra
.me
.nitni_local_ref_head
= NULL
;
1334 fra
.me
.REG
[0] = NIT_NULL
;
1336 /* analysis/allocate_iregister_slots.nit:289 */
1337 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[0]);
1338 stack_frame_head
= fra
.me
.prev
;
1339 return fra
.me
.REG
[0];
1341 static const char LOCATE_analysis___allocate_iregister_slots___IRegister___local_iroutine__eq
[] = "allocate_iregister_slots::IRegister::local_iroutine=";
1342 void analysis___allocate_iregister_slots___IRegister___local_iroutine__eq(val_t p0
, val_t p1
){
1343 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1345 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1346 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1348 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___local_iroutine__eq
;
1349 fra
.me
.has_broke
= 0;
1350 fra
.me
.REG_size
= 2;
1351 fra
.me
.nitni_local_ref_head
= NULL
;
1352 fra
.me
.REG
[0] = NIT_NULL
;
1353 fra
.me
.REG
[1] = NIT_NULL
;
1356 /* analysis/allocate_iregister_slots.nit:289 */
1357 ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1358 stack_frame_head
= fra
.me
.prev
;
1361 static const char LOCATE_analysis___allocate_iregister_slots___IRegister___in_tag_slots
[] = "allocate_iregister_slots::IRegister::in_tag_slots";
1362 val_t
analysis___allocate_iregister_slots___IRegister___in_tag_slots(val_t p0
){
1363 struct {struct stack_frame_t me
;} fra
;
1366 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1367 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1369 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___in_tag_slots
;
1370 fra
.me
.has_broke
= 0;
1371 fra
.me
.REG_size
= 1;
1372 fra
.me
.nitni_local_ref_head
= NULL
;
1373 fra
.me
.REG
[0] = NIT_NULL
;
1375 /* analysis/allocate_iregister_slots.nit:292 */
1376 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
1377 if (UNTAG_Bool(REGB0
)) {
1379 nit_abort("Uninitialized attribute %s", "_in_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 292);
1381 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0]);
1382 stack_frame_head
= fra
.me
.prev
;
1385 static const char LOCATE_analysis___allocate_iregister_slots___IRegister___in_tag_slots__eq
[] = "allocate_iregister_slots::IRegister::in_tag_slots=";
1386 void analysis___allocate_iregister_slots___IRegister___in_tag_slots__eq(val_t p0
, val_t p1
){
1387 struct {struct stack_frame_t me
;} fra
;
1390 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1391 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1393 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___in_tag_slots__eq
;
1394 fra
.me
.has_broke
= 0;
1395 fra
.me
.REG_size
= 1;
1396 fra
.me
.nitni_local_ref_head
= NULL
;
1397 fra
.me
.REG
[0] = NIT_NULL
;
1400 /* analysis/allocate_iregister_slots.nit:292 */
1401 ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0]) = REGB0
;
1402 stack_frame_head
= fra
.me
.prev
;