* a next and prev pointers on blocks. The greedy algorithm sorts the edges by
* execution frequencies and tries to transform them to fallthroughs in this order
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include "beblocksched.h"
#include "beirgmod.h"
#include "bemodule.h"
#include "be.h"
+#include "error.h"
#include "lc_opts.h"
#include "lc_opts_enum.h"
int pos; /**< number of cfg predecessor (target) */
double execfreq; /**< the frequency */
int highest_execfreq; /**< flag that indicates whether this edge is the edge with the highest
- execfreq pointing away from this block */
+ execfreq pointing away from this block */
} edge_t;
typedef struct _blocksched_env_t {
const ir_edge_t *edge;
double best_succ_execfreq;
- if (irn_visited(block))
+ if (irn_visited_else_mark(block))
return;
env->blockcount++;
- mark_irn_visited(block);
DBG((dbg, LEVEL_1, "Pick succ of %+F\n", block));
}
else {
int i;
- int *edgenums = alloca(sizeof(edgenums[0]) * arity);
snprintf(name, sizeof(name), "block_in_constr_%ld", get_irn_node_nr(block));
cst = lpp_add_cst_uniq(env->lpp, name, lpp_greater, arity - 1);
#endif /* WITH_ILP */
}
- assert(0 && "unknown blocksched algo");
+ panic("unknown blocksched algo");
return NULL;
}