static ir_node *default_remat(ir_node *node, ir_node *after) { ir_node *const block = get_block(after); ir_node *const copy = exact_copy(node); set_nodes_block(copy, block); sched_add_after(after, copy); return copy; }
/** * Transform helper for blocks. */ static ir_node *transform_block(ir_node *node) { ir_node *const block = exact_copy(node); block->node_nr = node->node_nr; /* put the preds in the worklist */ be_enqueue_preds(node); return block; }
static ir_node *transform_end(ir_node *node) { /* Do not transform predecessors yet to keep the pre-transform * phase from visiting all the graph. */ ir_node *const block = be_transform_nodes_block(node); ir_node *const new_end = exact_copy(node); set_nodes_block(new_end, block); ir_graph *const irg = get_irn_irg(new_end); set_irg_end(irg, new_end); be_enqueue_preds(node); return new_end; }