* Michael Beck
* @version $Id$
*/
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
#include "adt/pdeq.h"
#include "irnode_t.h"
int i, irn_arity;
/* we must not run into an infinite loop */
- assert(irn_not_visited(n));
+ assert(!irn_visited(n));
mark_irn_visited(n);
/* Place floating nodes. */
ir_node *pred = get_irn_n(n, i);
ir_node *pred_block;
- if ((irn_not_visited(pred))
+ if (!irn_visited(pred)
&& (get_irn_pinned(pred) == op_pin_state_floats)) {
/*
*/
for (i = -1; i < irn_arity; ++i) {
ir_node *pred = get_irn_n(n, i);
- if (irn_not_visited(pred))
+ if (!irn_visited(pred))
waitq_put(worklist, pred);
}
} else if (is_Block(n)) {
*/
for (i = irn_arity - 1; i >= 0; --i) {
ir_node *pred = get_irn_n(n, i);
- if (irn_not_visited(pred))
+ if (!irn_visited(pred))
waitq_put(worklist, pred);
}
} else if (is_Phi(n)) {
* of the Phi-input if the Phi is not in a bad block.
*/
pred = get_nodes_block(n);
- if (irn_not_visited(pred))
+ if (!irn_visited(pred))
waitq_put(worklist, pred);
for (i = irn_arity - 1; i >= 0; --i) {
ir_node *pred = get_irn_n(n, i);
- if (irn_not_visited(pred)) {
+ if (!irn_visited(pred)) {
if (! in_dead_block &&
get_irn_pinned(pred) == op_pin_state_floats &&
is_Block_unreachable(get_nodes_block(pred))) {
* All other nodes: move nodes from dead blocks into the same block.
*/
pred = get_nodes_block(n);
- if (irn_not_visited(pred))
+ if (!irn_visited(pred))
waitq_put(worklist, pred);
for (i = irn_arity - 1; i >= 0; --i) {
ir_node *pred = get_irn_n(n, i);
- if (irn_not_visited(pred)) {
+ if (!irn_visited(pred)) {
if (! in_dead_block &&
get_irn_pinned(pred) == op_pin_state_floats &&
is_Block_unreachable(get_nodes_block(pred))) {
/* Work the content of the worklist. */
while (!waitq_empty(worklist)) {
ir_node *n = waitq_get(worklist);
- if (irn_not_visited(n))
+ if (!irn_visited(n))
place_floats_early(n, worklist);
}
set_irg_pinned(current_ir_graph, op_pin_state_pinned);
return dca;
}
-/* FIXME: the name clashes here with the function from ana/field_temperature.c
- * please rename. */
-static INLINE int get_irn_loop_depth(ir_node *n) {
- return get_loop_depth(get_irn_loop(n));
+static inline int get_block_loop_depth(ir_node *block) {
+ return get_loop_depth(get_irn_loop(block));
}
/**
while (dca != early) {
dca = get_Block_idom(dca);
if (!dca || is_Bad(dca)) break; /* may be Bad if not reachable from Start */
- if (get_irn_loop_depth(dca) < get_irn_loop_depth(best)) {
+ if (get_block_loop_depth(dca) < get_block_loop_depth(best)) {
best = dca;
}
}
int i, n_outs;
ir_node *early_blk;
- assert(irn_not_visited(n)); /* no multiple placement */
+ assert(!irn_visited(n)); /* no multiple placement */
mark_irn_visited(n);
producer of one of their inputs in the same block anyway. */
for (i = get_irn_n_outs(n) - 1; i >= 0; --i) {
ir_node *succ = get_irn_out(n, i);
- if (irn_not_visited(succ) && !is_Phi(succ))
+ if (!irn_visited(succ) && !is_Phi(succ))
place_floats_late(succ, worklist);
}
n_outs = get_irn_n_outs(n);
for (i = 0; i < n_outs; i++) {
ir_node *succ = get_irn_out(n, i);
- if (irn_not_visited(succ)) {
+ if (!irn_visited(succ)) {
pdeq_putr(worklist, succ);
}
}
/* And now empty the worklist again... */
while (!waitq_empty(worklist)) {
ir_node *n = waitq_get(worklist);
- if (irn_not_visited(n))
+ if (!irn_visited(n))
place_floats_late(n, worklist);
}
}
ir_graph *rem = current_ir_graph;
current_ir_graph = irg;
+ remove_critical_cf_edges(irg);
/* Handle graph state */
assert(get_irg_phase_state(irg) != phase_building);