/**
* the environment for collecting data
*/
-typedef struct _collect_t {
+typedef struct collect_t {
ir_node *proj_X; /**< initial exec proj */
ir_node *block; /**< old first block */
int blk_idx; /**< cfgpred index of the initial exec in block */
case iro_Add:
/* try additive */
a = get_Add_left(irn);
- if (get_irn_MacroBlock(a) != get_irn_MacroBlock(call)) {
+ if (get_nodes_block(a) != get_nodes_block(call)) {
/* we are outside, ignore */
va = TR_UNKNOWN;
} else {
return TR_BAD;
}
b = get_Add_right(irn);
- if (get_irn_MacroBlock(b) != get_irn_MacroBlock(call)) {
+ if (get_nodes_block(b) != get_nodes_block(call)) {
/* we are outside, ignore */
vb = TR_UNKNOWN;
} else {
case iro_Sub:
/* try additive, but return value must be left */
a = get_Sub_left(irn);
- if (get_irn_MacroBlock(a) != get_irn_MacroBlock(call)) {
+ if (get_nodes_block(a) != get_nodes_block(call)) {
/* we are outside, ignore */
va = TR_UNKNOWN;
} else {
return TR_BAD;
}
b = get_Sub_right(irn);
- if (get_irn_MacroBlock(b) != get_irn_MacroBlock(call)) {
+ if (get_nodes_block(b) != get_nodes_block(call)) {
/* we are outside, ignore */
vb = TR_UNKNOWN;
} else {
case iro_Mul:
/* try multiplicative */
a = get_Mul_left(irn);
- if (get_irn_MacroBlock(a) != get_irn_MacroBlock(call)) {
+ if (get_nodes_block(a) != get_nodes_block(call)) {
/* we are outside, ignore */
va = TR_UNKNOWN;
} else {
return TR_BAD;
}
b = get_Mul_right(irn);
- if (get_irn_MacroBlock(b) != get_irn_MacroBlock(call)) {
+ if (get_nodes_block(b) != get_nodes_block(call)) {
/* we are outside, ignore */
vb = TR_UNKNOWN;
} else {
ir_type *mtd_type, *call_type;
ir_entity *ent;
+ FIRM_DBG_REGISTER(dbg, "firm.opt.tailrec");
+
assure_irg_outs(irg);
if (! check_lifetime_of_locals(irg))
return 0;
-
ent = get_irg_entity(irg);
mtd_type = get_entity_type(ent);
n_ress = get_method_n_ress(mtd_type);