projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Do not mark the transformed as visited. It makes no sense at all.
[libfirm]
/
ir
/
be
/
beirgmod.c
diff --git
a/ir/be/beirgmod.c
b/ir/be/beirgmod.c
index
387d994
..
b2b0816
100644
(file)
--- a/
ir/be/beirgmod.c
+++ b/
ir/be/beirgmod.c
@@
-106,7
+106,7
@@
ir_node *insert_Perm_after(be_irg_t *birg,
return NULL;
}
return NULL;
}
- nodes =
xmalloc(n * sizeof(nodes[0])
);
+ nodes =
XMALLOCN(ir_node*, n
);
DBG((dbg, LEVEL_1, "live:\n"));
i = 0;
DBG((dbg, LEVEL_1, "live:\n"));
i = 0;
@@
-161,10
+161,9
@@
static void remove_empty_block(ir_node *block)
ir_node *succ_block;
ir_node *jump = NULL;
ir_node *succ_block;
ir_node *jump = NULL;
- if (irn_visited(block))
+ if (irn_visited
_else_mark
(block))
return;
return;
- mark_irn_visited(block);
if (get_Block_n_cfgpreds(block) != 1)
goto check_preds;
if (get_Block_n_cfgpreds(block) != 1)
goto check_preds;
@@
-245,7
+244,7
@@
int be_remove_empty_blocks(ir_graph *irg)
blocks_removed = 0;
blocks_removed = 0;
-
set_using_irn_visited(irg
);
+
ir_reserve_resources(irg, IR_RESOURCE_IRN_VISITED
);
inc_irg_visited(irg);
remove_empty_block(get_irg_end_block(irg));
end = get_irg_end(irg);
inc_irg_visited(irg);
remove_empty_block(get_irg_end_block(irg));
end = get_irg_end(irg);
@@
-256,7
+255,7
@@
int be_remove_empty_blocks(ir_graph *irg)
continue;
remove_empty_block(pred);
}
continue;
remove_empty_block(pred);
}
-
clear_using_irn_visited(irg
);
+
ir_free_resources(irg, IR_RESOURCE_IRN_VISITED
);
if (blocks_removed) {
/* invalidate analysis info */
if (blocks_removed) {
/* invalidate analysis info */