#include "irgmod.h"
#include "iropt_dbg.h"
#include "debug.h"
+#include "array_t.h"
#include "error.h"
#include "tv_t.h"
partition_t *P;
node_t *node;
+#ifdef DEBUG_libfirm
for (P = env->dbg_list; P != NULL; P = P->dbg_next) {
check_partition(P);
list_for_each_entry(node_t, node, &P->Follower, node_list) {
assert(leader != node && leader->part == node->part);
}
}
+#endif
}
/**
*/
static INLINE void add_to_worklist(partition_t *X, environment_t *env) {
assert(X->on_worklist == 0);
+ DB((dbg, LEVEL_2, "Adding part%d to worklist\n", X->nr));
X->wl_next = env->worklist;
X->on_worklist = 1;
env->worklist = X;
if (old_type_was_T_or_C) {
node_t *y, *tmp;
- if (Y->on_worklist == 0)
- add_to_worklist(Y, env);
-
/* check if some nodes will make the leader -> follower transition */
list_for_each_entry_safe(node_t, y, tmp, &Y->Leader, node_list) {
if (y->type.tv != tarval_top && ! is_con(y->type)) {
if (! is_Block(ka))
node = get_irn_node(get_nodes_block(ka));
- if (node->type.tv != tarval_unreachable)
+ if (node->type.tv != tarval_unreachable && !is_Bad(ka))
in[j++] = ka;
}
if (j != n) {
} /* set_compute_functions */
static int dump_partition_hook(FILE *F, ir_node *n, ir_node *local) {
+#ifdef DEBUG_libfirm
ir_node *irn = local != NULL ? local : n;
node_t *node = get_irn_node(irn);
ir_fprintf(F, "info2 : \"partition %u type %+F\"\n", node->part->nr, node->type);
return 1;
+#endif
}
void combo(ir_graph *irg) {
assure_irg_outs(irg);
assure_cf_loop(irg);
-
/* we have our own value_of function */
set_value_of_func(get_node_tarval);