#include "cgana.h"
#include "debug.h"
-#include "beirg_t.h"
+#include "beirg.h"
#include "betranshlp.h"
+#include "belive.h"
typedef struct be_transform_env_t {
ir_graph *irg; /**< The irg, the node should be created in */
}
}
-void be_dep_on_frame(ir_node *const node)
+void be_dep_on_frame(ir_node* node)
{
ir_graph *const irg = current_ir_graph;
add_irn_n(new_node, in);
}
} else {
- ir_node **ins = alloca(arity * sizeof(ins[0]));
+ ir_node **ins = ALLOCAN(ir_node*, arity);
for (i = 0; i < arity; ++i) {
ir_node *in = get_irn_n(node, i);
ins[i] = be_transform_node(in);
copy_node_attr(node, new_node);
be_duplicate_deps(node, new_node);
-#ifdef DEBUG_libfirm
new_node->node_nr = node->node_nr;
-#endif
-
return new_node;
}
static ir_node *gen_Block(ir_node *node) {
ir_graph *irg = current_ir_graph;
dbg_info *dbgi = get_irn_dbg_info(node);
- ir_node *old_start_block = get_irn_n(env.old_anchor, anchor_start_block);
ir_node *macroblock = get_Block_MacroBlock(node);
ir_node *block;
- /*
- * We replace the ProjX from the start node with a jump,
- * so the startblock has no preds anymore now
- */
- if (node == old_start_block) {
- return new_rd_Block(dbgi, irg, 0, NULL);
- }
-
- /* we use the old blocks for now, because jumps allow cycles in the graph
- * we have to fix this later */
block = new_ir_node(dbgi, irg, NULL, get_irn_op(node), get_irn_mode(node),
get_irn_arity(node), get_irn_in(node) + 1);
copy_node_attr(node, block);
-#ifdef DEBUG_libfirm
block->node_nr = node->node_nr;
-#endif
+
if (node == macroblock) {
/* this node is a macroblock header */
set_Block_MacroBlock(block, block);
if (birg->lv) {
be_liveness_free(birg->lv);
- birg->lv = be_liveness(birg);
+ birg->lv = be_liveness(irg);
}
}