/*
- * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2011 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
* @file
* @brief Some often needed tool-functions
* @author Michael Beck
- * @version $Id$
*/
#include "config.h"
set_Phi_next(n, NULL);
}
+void firm_clear_block_phis(ir_node *node, void *env)
+{
+ (void) env;
+ if (is_Block(node)) {
+ set_Block_phis(node, NULL);
+ } else if (is_Phi(node)) {
+ set_Phi_next(node, NULL);
+ }
+}
+
+void firm_collect_block_phis(ir_node *node, void *env)
+{
+ (void) env;
+ if (is_Phi(node))
+ add_Block_phi(get_nodes_block(node), node);
+}
+
void copy_irn_to_irg(ir_node *n, ir_graph *irg)
{
ir_op *op = get_irn_op(n);
ir_node *nn = NULL;
/* do not copy standard nodes */
- if (op == op_Bad)
- nn = get_irg_bad(irg);
- else if (op == op_NoMem)
+ if (op == op_NoMem)
n = get_irg_no_mem(irg);
else if (op == op_Block) {
old_irg = get_irn_irg(n);
{
ir_node *new_node;
int arity;
+ int n_deps;
int i;
new_node = get_new_node(node);
set_irn_n(new_node, i, new_in);
}
+ n_deps = get_irn_deps(new_node);
+ for (i = 0; i < n_deps; ++i) {
+ ir_node *dep = get_irn_dep(node, i);
+ ir_node *new_dep = get_new_node(dep);
+ set_irn_dep(new_node, i, new_dep);
+ }
+
/* Now the new node is complete. We can add it to the hash table for CSE. */
add_identities(new_node);
}
void firm_pset_dump(pset *set)
{
- void *obj;
-
- foreach_pset(set, obj) {
+ foreach_pset(set, void, obj) {
ir_fprintf(stderr, "%+F\n", obj);
}
}