} mapper[] = {
/* integer */
{ &rts_entities[rts_abs], i_mapper_abs },
+ { &rts_entities[rts_alloca], i_mapper_alloca },
{ &rts_entities[rts_labs], i_mapper_abs },
{ &rts_entities[rts_llabs], i_mapper_abs },
{ &rts_entities[rts_imaxabs], i_mapper_abs },
i_record rec[sizeof(mapper)/sizeof(mapper[0])];
unsigned i, n_map;
- for (i = n_map = 0; i < sizeof(mapper)/sizeof(mapper[0]); ++i)
+ for (i = n_map = 0; i < sizeof(mapper)/sizeof(mapper[0]); ++i) {
if (*mapper[i].ent != NULL) {
rec[n_map].i_call.kind = INTRINSIC_CALL;
rec[n_map].i_call.i_ent = *mapper[i].ent;
rec[n_map].i_call.ctx = NULL;
rec[n_map].i_call.link = NULL;
++n_map;
- } /* if */
+ } /* if */
+ }
if (n_map > 0)
lower_intrinsics(rec, n_map, /* part_block_used=*/0);
} /* rts_map */
/* all graphs are finalized, set the irp phase to high */
set_irp_phase_state(phase_high);
+ /* BEWARE: kill unreachable code before doing compound lowering */
+ for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
+ ir_graph *irg = get_irp_irg(i);
+ optimize_cf(irg);
+ }
+
/* lower all compound call return values */
lower_compound_params();