Commit 31490bad authored by Matthias Braun's avatar Matthias Braun
Browse files

backends must announce if their doubleword lowering functions changed the control flow

parent 40612de1
......@@ -211,6 +211,7 @@ static void ia32_lower_conv64(ir_node *node, ir_mode *mode)
ir_node *lower_blk = part_block_dw(node);
ir_node *upper_blk = get_nodes_block(node);
set_dw_control_flow_changed();
ir_node *opc = new_rd_Conv(dbg, upper_blk, op, ia32_mode_E);
ir_node *cmp = new_rd_Cmp(dbg, upper_blk, opc, flt_corr,
......
......@@ -744,6 +744,11 @@ ir_node *part_block_dw(ir_node *node)
return old_block;
}
void set_dw_control_flow_changed(void)
{
env->flags |= CF_CHANGED;
}
typedef ir_node* (*new_rd_shr_func)(dbg_info *dbgi, ir_node *block,
ir_node *left, ir_node *right,
ir_mode *mode);
......
......@@ -100,6 +100,12 @@ void ir_default_lower_dw_Conv(ir_node *node, ir_mode *mode);
*/
ir_node *part_block_dw(ir_node *node);
/**
* (External) lowering callbacks must call this to announce that they changed
* the control flow.
*/
void set_dw_control_flow_changed(void);
/**
* Return the unsigned variant of the lowered mode
* Note: you must only call this during a dw_lowering (= in a lowering callback)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment