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
.REG
[0] = NIT_NULL
;
15 fra
.me
.REG
[1] = NIT_NULL
;
16 fra
.me
.REG
[2] = NIT_NULL
;
17 fra
.me
.REG
[3] = NIT_NULL
;
20 /* ./analysis//allocate_iregister_slots.nit:39 */
21 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
22 if (UNTAG_Bool(REGB0
)) {
24 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 39);
26 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
27 if (UNTAG_Bool(REGB0
)) {
28 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]);
29 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
30 if (UNTAG_Bool(REGB0
)) {
32 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 39);
34 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
35 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[2]));
36 if (UNTAG_Bool(REGB0
)) {
38 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
39 if (UNTAG_Bool(REGB1
)) {
40 REGB1
= TAG_Bool(false);
43 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
47 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
49 REGB1
= TAG_Bool(false);
52 if (UNTAG_Bool(REGB0
)) {
53 /* ./analysis//allocate_iregister_slots.nit:40 */
54 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]);
55 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
56 if (UNTAG_Bool(REGB0
)) {
58 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
59 if (UNTAG_Bool(REGB1
)) {
60 REGB1
= TAG_Bool(false);
63 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
67 if (UNTAG_Bool(REGB0
)) {
68 /* ./analysis//allocate_iregister_slots.nit:41 */
69 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
70 if (UNTAG_Bool(REGB0
)) {
72 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 41);
74 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
75 ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]) = fra
.me
.REG
[0];
77 /* ./analysis//allocate_iregister_slots.nit:43 */
78 REGB0
= TAG_Bool(false);
79 ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]) = REGB0
;
82 stack_frame_head
= fra
.me
.prev
;
85 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read(val_t p0
, val_t p1
, val_t p2
){
86 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
91 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
92 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
94 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read
;
97 fra
.me
.REG
[0] = NIT_NULL
;
98 fra
.me
.REG
[1] = NIT_NULL
;
99 fra
.me
.REG
[2] = NIT_NULL
;
100 fra
.me
.REG
[3] = NIT_NULL
;
104 /* ./analysis//allocate_iregister_slots.nit:52 */
105 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0])!=NIT_NULL
);
106 if (UNTAG_Bool(REGB0
)) {
108 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 52);
110 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]);
111 /* ./analysis//allocate_iregister_slots.nit:53 */
113 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
114 if (UNTAG_Bool(REGB2
)) {
116 /* ./../lib/standard//kernel.nit:227 */
117 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
118 /* ./analysis//allocate_iregister_slots.nit:53 */
121 if (UNTAG_Bool(REGB2
)) {
122 /* ./analysis//allocate_iregister_slots.nit:54 */
123 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
124 /* ./analysis//allocate_iregister_slots.nit:55 */
125 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
126 /* ./analysis//allocate_iregister_slots.nit:56 */
127 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[2]) = NIT_NULL
;
129 /* ./analysis//allocate_iregister_slots.nit:57 */
131 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
132 if (UNTAG_Bool(REGB1
)) {
134 /* ./../lib/standard//kernel.nit:227 */
135 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
136 /* ./analysis//allocate_iregister_slots.nit:57 */
139 if (UNTAG_Bool(REGB1
)) {
140 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
141 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
142 if (UNTAG_Bool(REGB1
)) {
144 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
145 if (UNTAG_Bool(REGB2
)) {
146 REGB2
= TAG_Bool(false);
149 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
154 REGB2
= TAG_Bool(false);
157 if (UNTAG_Bool(REGB1
)) {
158 /* ./analysis//allocate_iregister_slots.nit:58 */
159 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
162 stack_frame_head
= fra
.me
.prev
;
165 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write(val_t p0
, val_t p1
, val_t p2
){
166 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
171 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
172 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
174 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write
;
175 fra
.me
.has_broke
= 0;
177 fra
.me
.REG
[0] = NIT_NULL
;
178 fra
.me
.REG
[1] = NIT_NULL
;
179 fra
.me
.REG
[2] = NIT_NULL
;
180 fra
.me
.REG
[3] = NIT_NULL
;
184 /* ./analysis//allocate_iregister_slots.nit:64 */
185 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0])!=NIT_NULL
);
186 if (UNTAG_Bool(REGB0
)) {
188 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 64);
190 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]);
191 /* ./analysis//allocate_iregister_slots.nit:65 */
193 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
194 if (UNTAG_Bool(REGB2
)) {
196 /* ./../lib/standard//kernel.nit:227 */
197 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
198 /* ./analysis//allocate_iregister_slots.nit:65 */
201 if (UNTAG_Bool(REGB2
)) {
202 /* ./analysis//allocate_iregister_slots.nit:66 */
203 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
204 /* ./analysis//allocate_iregister_slots.nit:67 */
205 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[2]) = NIT_NULL
;
206 /* ./analysis//allocate_iregister_slots.nit:69 */
207 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]);
208 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
209 if (UNTAG_Bool(REGB2
)) {
211 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
212 if (UNTAG_Bool(REGB1
)) {
213 REGB1
= TAG_Bool(false);
216 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
220 if (UNTAG_Bool(REGB2
)) {
221 ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
223 /* ./analysis//allocate_iregister_slots.nit:71 */
224 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
225 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
226 if (UNTAG_Bool(REGB2
)) {
228 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
229 if (UNTAG_Bool(REGB1
)) {
230 REGB1
= TAG_Bool(false);
233 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
237 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
238 if (UNTAG_Bool(REGB2
)) {
239 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
242 /* ./analysis//allocate_iregister_slots.nit:72 */
244 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
245 if (UNTAG_Bool(REGB1
)) {
247 /* ./../lib/standard//kernel.nit:227 */
248 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
249 /* ./analysis//allocate_iregister_slots.nit:72 */
252 if (UNTAG_Bool(REGB1
)) {
253 /* ./analysis//allocate_iregister_slots.nit:73 */
254 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]);
255 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
256 if (UNTAG_Bool(REGB1
)) {
258 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
259 if (UNTAG_Bool(REGB2
)) {
260 REGB2
= TAG_Bool(false);
263 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
267 if (UNTAG_Bool(REGB1
)) {
268 /* ./analysis//allocate_iregister_slots.nit:74 */
269 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
271 /* ./analysis//allocate_iregister_slots.nit:75 */
272 fra
.me
.REG
[3] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
273 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
274 if (UNTAG_Bool(REGB1
)) {
276 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
277 if (UNTAG_Bool(REGB2
)) {
278 REGB2
= TAG_Bool(false);
281 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
285 if (UNTAG_Bool(REGB1
)) {
286 /* ./analysis//allocate_iregister_slots.nit:76 */
287 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
292 stack_frame_head
= fra
.me
.prev
;
295 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(val_t p0
){
296 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
301 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
302 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
304 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free
;
305 fra
.me
.has_broke
= 0;
307 fra
.me
.REG
[0] = NIT_NULL
;
308 fra
.me
.REG
[1] = NIT_NULL
;
309 fra
.me
.REG
[2] = NIT_NULL
;
311 /* ./analysis//allocate_iregister_slots.nit:98 */
312 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
313 if (UNTAG_Bool(REGB0
)) {
315 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_analysis___allocate_iregister_slots
, 98);
317 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
318 fra
.me
.REG
[1] = CALL_standard___collection___abstract_collection___Collection___iterator(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
319 /* ./analysis//allocate_iregister_slots.nit:99 */
320 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
321 if (UNTAG_Bool(REGB0
)) {
323 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 99);
325 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
326 /* ./analysis//allocate_iregister_slots.nit:100 */
328 REGB1
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
329 if (UNTAG_Bool(REGB1
)) {
330 /* ./analysis//allocate_iregister_slots.nit:101 */
331 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
332 /* ./analysis//allocate_iregister_slots.nit:102 */
333 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[2])!=NIT_NULL
);
334 if (UNTAG_Bool(REGB1
)) {
336 nit_abort("Uninitialized attribute %s", "_born_rank", LOCATE_analysis___allocate_iregister_slots
, 102);
338 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[2]);
339 REGB2
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
340 if (UNTAG_Bool(REGB2
)) {
342 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
344 /* ./../lib/standard//kernel.nit:233 */
345 REGB1
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB0
));
346 /* ./analysis//allocate_iregister_slots.nit:102 */
347 if (UNTAG_Bool(REGB1
)) {
348 /* ./analysis//allocate_iregister_slots.nit:103 */
349 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
350 /* ./analysis//allocate_iregister_slots.nit:104 */
351 CALL_standard___collection___list___ListIterator___delete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
353 /* ./analysis//allocate_iregister_slots.nit:106 */
354 CALL_standard___collection___abstract_collection___Iterator___next(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
356 /* ./analysis//allocate_iregister_slots.nit:100 */
361 stack_frame_head
= fra
.me
.prev
;
364 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(val_t p0
, val_t p1
){
365 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
370 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
371 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
373 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode
;
374 fra
.me
.has_broke
= 0;
376 fra
.me
.REG
[0] = NIT_NULL
;
377 fra
.me
.REG
[1] = NIT_NULL
;
378 fra
.me
.REG
[2] = NIT_NULL
;
379 fra
.me
.REG
[3] = NIT_NULL
;
382 /* ./analysis//allocate_iregister_slots.nit:110 */
383 fra
.me
.REG
[2] = fra
.me
.REG
[0];
384 fra
.me
.REG
[3] = fra
.me
.REG
[1];
385 /* ./analysis//allocate_iregister_slots.nit:112 */
386 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
387 if (UNTAG_Bool(REGB0
)) {
389 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 112);
391 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
393 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
394 if (UNTAG_Bool(REGB2
)) {
396 /* ./../lib/standard//kernel.nit:227 */
397 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
398 /* ./analysis//allocate_iregister_slots.nit:112 */
401 if (UNTAG_Bool(REGB2
)) {
402 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*/;
404 REGB1
= TAG_Bool(false);
407 if (UNTAG_Bool(REGB2
)) {
408 /* ./analysis//allocate_iregister_slots.nit:113 */
409 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2])!=NIT_NULL
);
410 if (UNTAG_Bool(REGB2
)) {
412 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 113);
414 REGB2
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]);
415 /* ./analysis//allocate_iregister_slots.nit:114 */
416 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
418 /* ./../lib/standard//kernel.nit:235 */
419 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
420 /* ./analysis//allocate_iregister_slots.nit:114 */
421 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]) = REGB0
;
422 /* ./analysis//allocate_iregister_slots.nit:115 */
423 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2])!=NIT_NULL
);
424 if (UNTAG_Bool(REGB0
)) {
426 nit_abort("Uninitialized attribute %s", "_max_rank", LOCATE_analysis___allocate_iregister_slots
, 115);
428 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
429 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB0
;
430 /* ./analysis//allocate_iregister_slots.nit:116 */
431 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
432 /* ./analysis//allocate_iregister_slots.nit:117 */
433 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB2
;
434 /* ./analysis//allocate_iregister_slots.nit:118 */
435 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
437 /* ./analysis//allocate_iregister_slots.nit:120 */
438 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
440 stack_frame_head
= fra
.me
.prev
;
443 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(val_t p0
, val_t p1
){
444 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
449 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
450 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
452 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs
;
453 fra
.me
.has_broke
= 0;
455 fra
.me
.REG
[0] = NIT_NULL
;
456 fra
.me
.REG
[1] = NIT_NULL
;
457 fra
.me
.REG
[2] = NIT_NULL
;
460 /* ./analysis//allocate_iregister_slots.nit:124 */
461 fra
.me
.REG
[2] = fra
.me
.REG
[0];
462 /* ./analysis//allocate_iregister_slots.nit:126 */
463 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
464 if (UNTAG_Bool(REGB0
)) {
466 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 126);
468 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
470 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
471 if (UNTAG_Bool(REGB2
)) {
473 /* ./../lib/standard//kernel.nit:227 */
474 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
475 /* ./analysis//allocate_iregister_slots.nit:126 */
478 if (UNTAG_Bool(REGB2
)) {
479 /* ./analysis//allocate_iregister_slots.nit:127 */
480 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2])!=NIT_NULL
);
481 if (UNTAG_Bool(REGB2
)) {
483 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 127);
485 REGB2
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]);
486 /* ./analysis//allocate_iregister_slots.nit:128 */
487 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
489 /* ./../lib/standard//kernel.nit:235 */
490 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
491 /* ./analysis//allocate_iregister_slots.nit:128 */
492 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]) = REGB0
;
493 /* ./analysis//allocate_iregister_slots.nit:129 */
494 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2])!=NIT_NULL
);
495 if (UNTAG_Bool(REGB0
)) {
497 nit_abort("Uninitialized attribute %s", "_max_rank", LOCATE_analysis___allocate_iregister_slots
, 129);
499 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
500 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB0
;
501 /* ./analysis//allocate_iregister_slots.nit:130 */
502 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
503 /* ./analysis//allocate_iregister_slots.nit:131 */
504 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB2
;
505 /* ./analysis//allocate_iregister_slots.nit:132 */
506 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
508 /* ./analysis//allocate_iregister_slots.nit:134 */
509 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
511 stack_frame_head
= fra
.me
.prev
;
514 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(val_t p0
, val_t p1
){
515 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
520 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
521 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
523 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
524 fra
.me
.has_broke
= 0;
526 fra
.me
.REG
[0] = NIT_NULL
;
527 fra
.me
.REG
[1] = NIT_NULL
;
528 fra
.me
.REG
[2] = NIT_NULL
;
529 fra
.me
.REG
[3] = NIT_NULL
;
530 fra
.me
.REG
[4] = NIT_NULL
;
531 fra
.me
.REG
[5] = NIT_NULL
;
532 fra
.me
.REG
[6] = NIT_NULL
;
533 fra
.me
.REG
[7] = NIT_NULL
;
536 /* ./analysis//allocate_iregister_slots.nit:142 */
537 fra
.me
.REG
[2] = fra
.me
.REG
[0];
538 fra
.me
.REG
[3] = fra
.me
.REG
[1];
539 /* ./analysis//allocate_iregister_slots.nit:144 */
540 fra
.me
.REG
[4] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
541 /* ./analysis//allocate_iregister_slots.nit:145 */
542 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
543 if (UNTAG_Bool(REGB0
)) {
545 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_analysis___allocate_iregister_slots
, 145);
547 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
549 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
550 if (UNTAG_Bool(REGB2
)) {
552 /* ./../lib/standard//kernel.nit:227 */
553 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
554 /* ./analysis//allocate_iregister_slots.nit:145 */
557 if (UNTAG_Bool(REGB2
)) {
558 /* ./analysis//allocate_iregister_slots.nit:146 */
559 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2])!=NIT_NULL
);
560 if (UNTAG_Bool(REGB2
)) {
562 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 146);
564 fra
.me
.REG
[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]);
565 /* ./analysis//allocate_iregister_slots.nit:147 */
566 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
567 /* ./analysis//allocate_iregister_slots.nit:148 */
568 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
569 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
));
570 /* ./analysis//allocate_iregister_slots.nit:152 */
571 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
572 /* ./analysis//allocate_iregister_slots.nit:153 */
573 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
574 if (UNTAG_Bool(REGB2
)) {
576 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
577 if (UNTAG_Bool(REGB1
)) {
578 REGB1
= TAG_Bool(false);
581 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
585 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
586 if (UNTAG_Bool(REGB2
)) {
587 /* ./analysis//allocate_iregister_slots.nit:154 */
588 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[4]) = fra
.me
.REG
[2];
589 /* ./analysis//allocate_iregister_slots.nit:155 */
590 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
592 /* ./analysis//allocate_iregister_slots.nit:157 */
593 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
595 /* ./analysis//allocate_iregister_slots.nit:159 */
596 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2])!=NIT_NULL
);
597 if (UNTAG_Bool(REGB2
)) {
599 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 159);
601 fra
.me
.REG
[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]);
602 /* ./analysis//allocate_iregister_slots.nit:160 */
603 fra
.me
.REG
[6] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
604 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
605 /* ./analysis//allocate_iregister_slots.nit:161 */
606 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2])!=NIT_NULL
);
607 if (UNTAG_Bool(REGB2
)) {
609 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 161);
611 fra
.me
.REG
[6] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]);
612 /* ./analysis//allocate_iregister_slots.nit:162 */
613 REGB2
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___IClosureDef
, ID_icode___icode_base___IClosureDef
)) /*cast IClosureDef*/;
614 if (UNTAG_Bool(REGB2
)) {
615 /* ./analysis//allocate_iregister_slots.nit:163 */
616 fra
.me
.REG
[7] = NEW_SlotGroup_analysis___allocate_iregister_slots___SlotGroup___init();
617 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[7];
619 /* ./analysis//allocate_iregister_slots.nit:165 */
620 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
621 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
));
622 /* ./analysis//allocate_iregister_slots.nit:168 */
623 CALL_SUPER_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
624 /* ./analysis//allocate_iregister_slots.nit:169 */
625 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
626 if (UNTAG_Bool(REGB2
)) {
628 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
629 if (UNTAG_Bool(REGB1
)) {
630 REGB1
= TAG_Bool(false);
633 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
637 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
638 if (UNTAG_Bool(REGB2
)) {
639 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
641 /* ./analysis//allocate_iregister_slots.nit:170 */
642 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2])!=NIT_NULL
);
643 if (UNTAG_Bool(REGB2
)) {
645 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 170);
647 fra
.me
.REG
[4] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]);
648 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[4])!=NIT_NULL
);
649 if (UNTAG_Bool(REGB2
)) {
651 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_analysis___allocate_iregister_slots
, 170);
653 REGB2
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[4]);
654 ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[3]) = REGB2
;
655 /* ./analysis//allocate_iregister_slots.nit:171 */
656 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
657 /* ./analysis//allocate_iregister_slots.nit:172 */
658 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2])!=NIT_NULL
);
659 if (UNTAG_Bool(REGB2
)) {
661 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 172);
663 fra
.me
.REG
[5] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]);
664 REGB2
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[5])!=NIT_NULL
);
665 if (UNTAG_Bool(REGB2
)) {
667 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_analysis___allocate_iregister_slots
, 172);
669 REGB2
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[5]);
670 ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[3]) = REGB2
;
671 /* ./analysis//allocate_iregister_slots.nit:173 */
672 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
674 stack_frame_head
= fra
.me
.prev
;
677 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
){
678 struct {struct stack_frame_t me
;} fra
;
681 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
682 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
684 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
685 fra
.me
.has_broke
= 0;
687 fra
.me
.REG
[0] = NIT_NULL
;
688 fra
.me
.closure_ctx
= closctx_param
;
689 fra
.me
.closure_funs
= CREG
;
692 /* ./analysis//allocate_iregister_slots.nit:149 */
693 ATTR_analysis___allocate_iregister_slots___IRegister____first(fra
.me
.REG
[0]) = closctx
->REG
[2];
694 /* ./analysis//allocate_iregister_slots.nit:150 */
695 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
696 stack_frame_head
= fra
.me
.prev
;
699 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
){
700 struct {struct stack_frame_t me
;} fra
;
703 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
704 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
706 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
707 fra
.me
.has_broke
= 0;
709 fra
.me
.REG
[0] = NIT_NULL
;
710 fra
.me
.closure_ctx
= closctx_param
;
711 fra
.me
.closure_funs
= CREG
;
714 /* ./analysis//allocate_iregister_slots.nit:166 */
715 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
716 stack_frame_head
= fra
.me
.prev
;
719 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(val_t p0
, val_t p1
){
720 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
724 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
725 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
727 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___register
;
728 fra
.me
.has_broke
= 0;
730 fra
.me
.REG
[0] = NIT_NULL
;
731 fra
.me
.REG
[1] = NIT_NULL
;
732 fra
.me
.REG
[2] = NIT_NULL
;
735 /* ./analysis//allocate_iregister_slots.nit:190 */
736 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]);
737 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
738 if (UNTAG_Bool(REGB0
)) {
740 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
741 if (UNTAG_Bool(REGB1
)) {
742 REGB1
= TAG_Bool(false);
745 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
749 if (UNTAG_Bool(REGB0
)) {
752 /* ./analysis//allocate_iregister_slots.nit:191 */
753 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
754 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
755 if (UNTAG_Bool(REGB0
)) {
757 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
758 if (UNTAG_Bool(REGB1
)) {
759 REGB1
= TAG_Bool(false);
762 /* ./../lib/standard//kernel.nit:227 */
763 REGB1
= TAG_Bool((fra
.me
.REG
[2])==(NIT_NULL
));
764 /* ./analysis//allocate_iregister_slots.nit:191 */
768 if (UNTAG_Bool(REGB0
)) {
770 nit_abort("Assert failed", NULL
, LOCATE_analysis___allocate_iregister_slots
, 191);
772 /* ./analysis//allocate_iregister_slots.nit:192 */
773 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
774 if (UNTAG_Bool(REGB0
)) {
776 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 192);
778 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
779 ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1]) = REGB0
;
780 /* ./analysis//allocate_iregister_slots.nit:193 */
781 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
782 if (UNTAG_Bool(REGB0
)) {
784 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 193);
786 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
787 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
788 if (UNTAG_Bool(REGB0
)) {
789 /* ./analysis//allocate_iregister_slots.nit:194 */
790 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0])!=NIT_NULL
);
791 if (UNTAG_Bool(REGB0
)) {
793 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_analysis___allocate_iregister_slots
, 194);
795 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0]);
796 CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
798 /* ./analysis//allocate_iregister_slots.nit:195 */
799 fra
.me
.REG
[2] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
800 REGB0
= CALL_primitive_info___MMType___is_tagged(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
801 if (UNTAG_Bool(REGB0
)) {
802 /* ./analysis//allocate_iregister_slots.nit:196 */
803 REGB0
= TAG_Bool(true);
804 ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1]) = REGB0
;
805 /* ./analysis//allocate_iregister_slots.nit:197 */
806 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
807 if (UNTAG_Bool(REGB0
)) {
809 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 197);
811 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0]);
812 CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
814 /* ./analysis//allocate_iregister_slots.nit:199 */
815 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0])!=NIT_NULL
);
816 if (UNTAG_Bool(REGB0
)) {
818 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 199);
820 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0]);
821 CALL_analysis___allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
825 stack_frame_head
= fra
.me
.prev
;
828 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(val_t p0
, val_t p1
){
829 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
834 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
835 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
837 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
;
838 fra
.me
.has_broke
= 0;
840 fra
.me
.REG
[0] = NIT_NULL
;
841 fra
.me
.REG
[1] = NIT_NULL
;
842 fra
.me
.REG
[2] = NIT_NULL
;
845 /* ./analysis//allocate_iregister_slots.nit:207 */
846 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
847 /* ./analysis//allocate_iregister_slots.nit:208 */
848 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
849 if (UNTAG_Bool(REGB0
)) {
851 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
852 if (UNTAG_Bool(REGB1
)) {
853 REGB1
= TAG_Bool(false);
856 /* ./../lib/standard//kernel.nit:227 */
857 REGB1
= TAG_Bool((fra
.me
.REG
[2])==(NIT_NULL
));
858 /* ./analysis//allocate_iregister_slots.nit:208 */
862 if (UNTAG_Bool(REGB0
)) {
865 /* ./analysis//allocate_iregister_slots.nit:209 */
866 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1])!=NIT_NULL
);
867 if (UNTAG_Bool(REGB0
)) {
869 nit_abort("Uninitialized attribute %s", "_born_rank", LOCATE_analysis___allocate_iregister_slots
, 209);
871 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1]);
872 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
873 if (UNTAG_Bool(REGB1
)) {
875 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_analysis___allocate_iregister_slots
, 209);
877 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
878 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
879 if (UNTAG_Bool(REGB2
)) {
881 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
883 /* ./../lib/standard//kernel.nit:232 */
884 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
885 /* ./analysis//allocate_iregister_slots.nit:209 */
886 if (UNTAG_Bool(REGB1
)) {
887 /* ./analysis//allocate_iregister_slots.nit:210 */
888 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
889 if (UNTAG_Bool(REGB1
)) {
891 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_analysis___allocate_iregister_slots
, 210);
893 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
896 /* ./analysis//allocate_iregister_slots.nit:211 */
897 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]);
898 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
899 if (UNTAG_Bool(REGB1
)) {
901 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
902 if (UNTAG_Bool(REGB0
)) {
903 REGB0
= TAG_Bool(false);
906 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
910 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
911 if (UNTAG_Bool(REGB1
)) {
912 /* ./analysis//allocate_iregister_slots.nit:212 */
913 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1])!=NIT_NULL
);
914 if (UNTAG_Bool(REGB1
)) {
916 nit_abort("Uninitialized attribute %s", "_in_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 212);
918 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1]);
919 if (UNTAG_Bool(REGB1
)) {
920 /* ./analysis//allocate_iregister_slots.nit:213 */
921 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
922 if (UNTAG_Bool(REGB1
)) {
924 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 213);
926 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0]);
927 CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
929 /* ./analysis//allocate_iregister_slots.nit:214 */
930 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
931 if (UNTAG_Bool(REGB1
)) {
933 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 214);
935 REGB1
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
936 if (UNTAG_Bool(REGB1
)) {
937 /* ./analysis//allocate_iregister_slots.nit:215 */
938 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0])!=NIT_NULL
);
939 if (UNTAG_Bool(REGB1
)) {
941 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_analysis___allocate_iregister_slots
, 215);
943 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0]);
944 CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
946 /* ./analysis//allocate_iregister_slots.nit:217 */
947 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0])!=NIT_NULL
);
948 if (UNTAG_Bool(REGB1
)) {
950 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_analysis___allocate_iregister_slots
, 217);
952 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0]);
953 CALL_analysis___allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
956 /* ./analysis//allocate_iregister_slots.nit:219 */
957 ATTR_analysis___allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]) = NIT_NULL
;
961 stack_frame_head
= fra
.me
.prev
;
964 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(val_t p0
){
965 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
968 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
969 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
971 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation
;
972 fra
.me
.has_broke
= 0;
974 fra
.me
.REG
[0] = NIT_NULL
;
975 fra
.me
.REG
[1] = NIT_NULL
;
977 /* ./analysis//allocate_iregister_slots.nit:226 */
978 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
979 if (UNTAG_Bool(REGB0
)) {
981 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_analysis___allocate_iregister_slots
, 226);
983 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
984 /* ./analysis//allocate_iregister_slots.nit:227 */
985 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
986 /* ./analysis//allocate_iregister_slots.nit:228 */
988 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]) = REGB0
;
989 /* ./analysis//allocate_iregister_slots.nit:229 */
990 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
991 /* ./analysis//allocate_iregister_slots.nit:230 */
992 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
993 if (UNTAG_Bool(REGB0
)) {
995 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_analysis___allocate_iregister_slots
, 230);
997 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
998 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
999 if (UNTAG_Bool(REGB0
)) {
1001 nit_abort("Assert failed", NULL
, LOCATE_analysis___allocate_iregister_slots
, 230);
1003 stack_frame_head
= fra
.me
.prev
;
1006 void analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(val_t p0
, val_t p1
, int* init_table
){
1007 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor
].i
;
1008 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1011 if (init_table
[itpos0
]) return;
1012 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1013 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1015 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init
;
1016 fra
.me
.has_broke
= 0;
1017 fra
.me
.REG_size
= 3;
1018 fra
.me
.REG
[0] = NIT_NULL
;
1019 fra
.me
.REG
[1] = NIT_NULL
;
1020 fra
.me
.REG
[2] = NIT_NULL
;
1023 /* ./analysis//allocate_iregister_slots.nit:233 */
1024 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1025 CALL_icode___icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
1026 /* ./analysis//allocate_iregister_slots.nit:235 */
1027 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1028 /* ./analysis//allocate_iregister_slots.nit:236 */
1029 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[2])!=NIT_NULL
);
1030 if (UNTAG_Bool(REGB0
)) {
1032 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_analysis___allocate_iregister_slots
, 236);
1034 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[2]);
1035 ATTR_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1036 stack_frame_head
= fra
.me
.prev
;
1037 init_table
[itpos0
] = 1;
1040 void analysis___allocate_iregister_slots___SlotGroup___register(val_t p0
, val_t p1
){
1041 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1045 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1046 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1048 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___SlotGroup___register
;
1049 fra
.me
.has_broke
= 0;
1050 fra
.me
.REG_size
= 3;
1051 fra
.me
.REG
[0] = NIT_NULL
;
1052 fra
.me
.REG
[1] = NIT_NULL
;
1053 fra
.me
.REG
[2] = NIT_NULL
;
1056 /* ./analysis//allocate_iregister_slots.nit:251 */
1057 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1058 if (UNTAG_Bool(REGB0
)) {
1060 nit_abort("Uninitialized attribute %s", "_free", LOCATE_analysis___allocate_iregister_slots
, 251);
1062 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1063 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1064 if (UNTAG_Bool(REGB0
)) {
1065 /* ./analysis//allocate_iregister_slots.nit:252 */
1066 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0])!=NIT_NULL
);
1067 if (UNTAG_Bool(REGB0
)) {
1069 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_analysis___allocate_iregister_slots
, 252);
1071 REGB0
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]);
1072 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]) = REGB0
;
1073 /* ./analysis//allocate_iregister_slots.nit:253 */
1074 REGB0
= ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]);
1076 /* ./../lib/standard//kernel.nit:235 */
1077 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1078 /* ./analysis//allocate_iregister_slots.nit:253 */
1079 ATTR_analysis___allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]) = REGB1
;
1081 /* ./analysis//allocate_iregister_slots.nit:255 */
1082 REGB1
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1083 if (UNTAG_Bool(REGB1
)) {
1085 nit_abort("Uninitialized attribute %s", "_free", LOCATE_analysis___allocate_iregister_slots
, 255);
1087 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1088 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___Sequence___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1089 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]) = fra
.me
.REG
[0];
1091 stack_frame_head
= fra
.me
.prev
;
1094 void analysis___allocate_iregister_slots___SlotGroup___free(val_t p0
, val_t p1
){
1095 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1098 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1099 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1101 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___SlotGroup___free
;
1102 fra
.me
.has_broke
= 0;
1103 fra
.me
.REG_size
= 3;
1104 fra
.me
.REG
[0] = NIT_NULL
;
1105 fra
.me
.REG
[1] = NIT_NULL
;
1106 fra
.me
.REG
[2] = NIT_NULL
;
1109 /* ./analysis//allocate_iregister_slots.nit:259 */
1110 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1111 /* ./analysis//allocate_iregister_slots.nit:262 */
1112 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[2])!=NIT_NULL
);
1113 if (UNTAG_Bool(REGB0
)) {
1115 nit_abort("Uninitialized attribute %s", "_free", LOCATE_analysis___allocate_iregister_slots
, 262);
1117 fra
.me
.REG
[2] = ATTR_analysis___allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[2]);
1118 fra
.me
.REG
[1] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
1119 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1120 if (UNTAG_Bool(REGB0
)) {
1122 nit_abort("Cast failed", NULL
, LOCATE_analysis___allocate_iregister_slots
, 262);
1124 CALL_standard___collection___abstract_collection___Sequence___push(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1125 stack_frame_head
= fra
.me
.prev
;
1128 void analysis___allocate_iregister_slots___SlotGroup___init(val_t p0
, int* init_table
){
1129 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_analysis___allocate_iregister_slots___SlotGroup
].i
;
1130 struct {struct stack_frame_t me
;} fra
;
1132 if (init_table
[itpos1
]) return;
1133 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1134 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1136 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___SlotGroup___init
;
1137 fra
.me
.has_broke
= 0;
1138 fra
.me
.REG_size
= 0;
1139 stack_frame_head
= fra
.me
.prev
;
1140 init_table
[itpos1
] = 1;
1143 val_t
analysis___allocate_iregister_slots___IRoutine___std_slots_nb(val_t p0
){
1144 struct {struct stack_frame_t me
;} fra
;
1147 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1148 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1150 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRoutine___std_slots_nb
;
1151 fra
.me
.has_broke
= 0;
1152 fra
.me
.REG_size
= 1;
1153 fra
.me
.REG
[0] = NIT_NULL
;
1155 /* ./analysis//allocate_iregister_slots.nit:267 */
1156 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[0])!=NIT_NULL
);
1157 if (UNTAG_Bool(REGB0
)) {
1159 nit_abort("Uninitialized attribute %s", "_std_slots_nb", LOCATE_analysis___allocate_iregister_slots
, 267);
1161 REGB0
= ATTR_analysis___allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[0]);
1162 stack_frame_head
= fra
.me
.prev
;
1165 val_t
analysis___allocate_iregister_slots___IRoutine___tag_slots_nb(val_t p0
){
1166 struct {struct stack_frame_t me
;} fra
;
1169 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1170 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1172 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRoutine___tag_slots_nb
;
1173 fra
.me
.has_broke
= 0;
1174 fra
.me
.REG_size
= 1;
1175 fra
.me
.REG
[0] = NIT_NULL
;
1177 /* ./analysis//allocate_iregister_slots.nit:270 */
1178 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[0])!=NIT_NULL
);
1179 if (UNTAG_Bool(REGB0
)) {
1181 nit_abort("Uninitialized attribute %s", "_tag_slots_nb", LOCATE_analysis___allocate_iregister_slots
, 270);
1183 REGB0
= ATTR_analysis___allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[0]);
1184 stack_frame_head
= fra
.me
.prev
;
1187 void analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots(val_t p0
){
1188 struct {struct stack_frame_t me
;} fra
;
1190 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1191 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1193 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRoutine___allocate_iregister_slots
;
1194 fra
.me
.has_broke
= 0;
1195 fra
.me
.REG_size
= 1;
1196 fra
.me
.REG
[0] = NIT_NULL
;
1198 /* ./analysis//allocate_iregister_slots.nit:275 */
1199 fra
.me
.REG
[0] = NEW_IRegisterSlotAllocationVisitor_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(fra
.me
.REG
[0]);
1200 /* ./analysis//allocate_iregister_slots.nit:276 */
1201 CALL_analysis___allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1202 stack_frame_head
= fra
.me
.prev
;
1205 val_t
analysis___allocate_iregister_slots___IRegister___slot_index(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___IRegister___slot_index
;
1212 fra
.me
.has_broke
= 0;
1213 fra
.me
.REG_size
= 1;
1214 fra
.me
.REG
[0] = NIT_NULL
;
1216 /* ./analysis//allocate_iregister_slots.nit:281 */
1217 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[0]);
1218 stack_frame_head
= fra
.me
.prev
;
1219 return fra
.me
.REG
[0];
1221 void analysis___allocate_iregister_slots___IRegister___slot_index__eq(val_t p0
, val_t p1
){
1222 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1224 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1225 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1227 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___slot_index__eq
;
1228 fra
.me
.has_broke
= 0;
1229 fra
.me
.REG_size
= 2;
1230 fra
.me
.REG
[0] = NIT_NULL
;
1231 fra
.me
.REG
[1] = NIT_NULL
;
1234 /* ./analysis//allocate_iregister_slots.nit:281 */
1235 ATTR_analysis___allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1236 stack_frame_head
= fra
.me
.prev
;
1239 val_t
analysis___allocate_iregister_slots___IRegister___is_local(val_t p0
){
1240 struct {struct stack_frame_t me
;} fra
;
1243 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1244 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1246 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___is_local
;
1247 fra
.me
.has_broke
= 0;
1248 fra
.me
.REG_size
= 1;
1249 fra
.me
.REG
[0] = NIT_NULL
;
1251 /* ./analysis//allocate_iregister_slots.nit:286 */
1252 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0])!=NIT_NULL
);
1253 if (UNTAG_Bool(REGB0
)) {
1255 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_analysis___allocate_iregister_slots
, 286);
1257 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0]);
1258 stack_frame_head
= fra
.me
.prev
;
1261 void analysis___allocate_iregister_slots___IRegister___is_local__eq(val_t p0
, val_t p1
){
1262 struct {struct stack_frame_t me
;} fra
;
1265 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1266 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1268 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___is_local__eq
;
1269 fra
.me
.has_broke
= 0;
1270 fra
.me
.REG_size
= 1;
1271 fra
.me
.REG
[0] = NIT_NULL
;
1274 /* ./analysis//allocate_iregister_slots.nit:286 */
1275 ATTR_analysis___allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0]) = REGB0
;
1276 stack_frame_head
= fra
.me
.prev
;
1279 val_t
analysis___allocate_iregister_slots___IRegister___local_iroutine(val_t p0
){
1280 struct {struct stack_frame_t me
;} fra
;
1282 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1283 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1285 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___local_iroutine
;
1286 fra
.me
.has_broke
= 0;
1287 fra
.me
.REG_size
= 1;
1288 fra
.me
.REG
[0] = NIT_NULL
;
1290 /* ./analysis//allocate_iregister_slots.nit:289 */
1291 fra
.me
.REG
[0] = ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[0]);
1292 stack_frame_head
= fra
.me
.prev
;
1293 return fra
.me
.REG
[0];
1295 void analysis___allocate_iregister_slots___IRegister___local_iroutine__eq(val_t p0
, val_t p1
){
1296 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1298 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1299 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1301 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___local_iroutine__eq
;
1302 fra
.me
.has_broke
= 0;
1303 fra
.me
.REG_size
= 2;
1304 fra
.me
.REG
[0] = NIT_NULL
;
1305 fra
.me
.REG
[1] = NIT_NULL
;
1308 /* ./analysis//allocate_iregister_slots.nit:289 */
1309 ATTR_analysis___allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1310 stack_frame_head
= fra
.me
.prev
;
1313 val_t
analysis___allocate_iregister_slots___IRegister___in_tag_slots(val_t p0
){
1314 struct {struct stack_frame_t me
;} fra
;
1317 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1318 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1320 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___in_tag_slots
;
1321 fra
.me
.has_broke
= 0;
1322 fra
.me
.REG_size
= 1;
1323 fra
.me
.REG
[0] = NIT_NULL
;
1325 /* ./analysis//allocate_iregister_slots.nit:292 */
1326 REGB0
= TAG_Bool(ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
1327 if (UNTAG_Bool(REGB0
)) {
1329 nit_abort("Uninitialized attribute %s", "_in_tag_slots", LOCATE_analysis___allocate_iregister_slots
, 292);
1331 REGB0
= ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0]);
1332 stack_frame_head
= fra
.me
.prev
;
1335 void analysis___allocate_iregister_slots___IRegister___in_tag_slots__eq(val_t p0
, val_t p1
){
1336 struct {struct stack_frame_t me
;} fra
;
1339 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1340 fra
.me
.file
= LOCATE_analysis___allocate_iregister_slots
;
1342 fra
.me
.meth
= LOCATE_analysis___allocate_iregister_slots___IRegister___in_tag_slots__eq
;
1343 fra
.me
.has_broke
= 0;
1344 fra
.me
.REG_size
= 1;
1345 fra
.me
.REG
[0] = NIT_NULL
;
1348 /* ./analysis//allocate_iregister_slots.nit:292 */
1349 ATTR_analysis___allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0]) = REGB0
;
1350 stack_frame_head
= fra
.me
.prev
;