/* Don't walk from nodes to blocks except for Control flow operations. */
static INLINE int
get_start_index(ir_node *n) {
- if (is_cfop(n) || is_fragile_op(n) || intern_get_irn_op(n) == op_Start)
+ /* if (is_cfop(n) || is_fragile_op(n) || intern_get_irn_op(n) == op_Start)
+ // this should be sufficient.
return -1;
else
return 0;
+ */
+ if (intern_get_irn_op(n) == op_Phi ||
+ intern_get_irn_op(n) == op_Block ||
+ (intern_get_irn_op(n) == op_Filter && interprocedural_view))
+ // Here we could test for backedge at -1 which is illegal
+ return 0;
+ else
+ return -1;
}
#if 0
/* Returns current_ir_graph and set it to the irg of predecessor index