/*
- * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
int has_pinned; /**< set if the block contains instructions that cannot be moved */
} block_info;
-
-static INLINE block_info* get_block_blockinfo(const ir_node* block)
-{
+/** Returns the additional block info of a block. */
+static INLINE block_info* get_block_blockinfo(const ir_node* block) {
return get_irn_link(block);
}
/**
* Returns non-zero if a Block can be emptied.
*/
-static int can_empty_block(ir_node *block)
-{
+static int can_empty_block(ir_node *block) {
return !get_block_blockinfo(block)->has_pinned;
}
arity = get_irn_arity(block);
for (i = 0; i < arity; ++i) {
ir_node* pred0;
- cdep* cdep;
+ ir_cdep* cdep;
pred0 = get_nodes_block(get_irn_n(block, i));
for (cdep = find_cdep(pred0); cdep != NULL; cdep = cdep->next) {
/**
* Daisy-chain all phis in a block
- * If a non-movable node is encountered set the has_pinned flag
+ * If a non-movable node is encountered set the has_pinned flag in its block.
*/
-static void collect_phis(ir_node *node, void *env)
-{
+static void collect_phis(ir_node *node, void *env) {
(void) env;
if (is_Phi(node)) {
obstack_free(&obst, NULL);
+ /* TODO: graph might be changed, handle more gracefull */
+ set_irg_outs_inconsistent(irg);
free_dom(irg);
+
free_cdep(irg);
}