sched_add_after(skip_Proj(irn), keep);
/* insert the other different and its copies into the map */
- entry = (op_copy_assoc_t*)ir_nodehashmap_get(op_set, other_different);
+ entry = ir_nodehashmap_get(op_copy_assoc_t, op_set, other_different);
if (! entry) {
entry = OALLOC(&env->obst, op_copy_assoc_t);
entry->cls = cls;
*/
static void assure_constraints_walker(ir_node *block, void *walk_env)
{
- ir_node *irn;
constraint_env_t *env = (constraint_env_t*)walk_env;
sched_foreach_reverse(block, irn) {
foreach_ir_nodehashmap(&cenv->op_set, map_entry, map_iter) {
op_copy_assoc_t *entry = (op_copy_assoc_t*)map_entry.data;
int idx, num_ck;
- ir_node *cp;
struct obstack obst;
- ir_nodeset_iterator_t iter;
ir_node **ck_arr, **melt_arr;
obstack_init(&obst);
op_copy_assoc_t *entry = (op_copy_assoc_t*)map_entry.data;
size_t n = ir_nodeset_size(&entry->copies);
ir_node **nodes = ALLOCAN(ir_node*, n);
- ir_node *cp;
- ir_nodeset_iterator_t iter;
be_ssa_construction_env_t senv;
/* put the node in an array */
{
ir_graph *irg = get_irn_irg(perm);
ir_node *bl = get_nodes_block(perm);
- ir_node *node;
int arity = get_irn_arity(perm);
int *map;
int *proj_map;
int n_moved;
int new_size;
ir_node *frontier = bl;
- ir_node *irn;
int i, n;
/* get some Proj and find out the register class of that Proj. */
DB((dbg_permmove, LEVEL_2, "\tfrontier: %+F\n", frontier));
- node = sched_prev(perm);
n_moved = 0;
- while (!sched_is_begin(node)) {
+ for (;;) {
+ ir_node *const node = sched_prev(perm);
+ if (node == frontier)
+ break;
+
const arch_register_req_t *req;
int input = -1;
ir_node *proj = NULL;
/* it wasn't an input to the perm, we can't do anything more */
if (input < 0)
break;
- if (!sched_comes_after(frontier, node))
- break;
if (arch_irn_is(node, modify_flags))
break;
req = arch_get_irn_register_req(node);
bitset_set(moved, input);
n_moved++;
-
- node = sched_prev(node);
}
/* well, we could not push anything through the perm */