#include "irtools.h"
#include "irbitset.h"
#include "irnodeset.h"
-#include "height.h"
+#include "heights.h"
#include "benode.h"
#include "besched.h"
#include "beschedmris.h"
#include "beirg.h"
-struct _mris_env_t {
+struct mris_env_t {
ir_phase ph;
- heights_t *heights;
+ ir_heights_t *heights;
ir_graph *irg;
ir_node *bl;
int visited;
DEBUG_ONLY(firm_dbg_module_t *dbg;)
};
-typedef struct _mris_irn_t {
+typedef struct mris_irn_t {
int visited;
ir_node *lineage_start;
ir_node *lineage_next;
#define get_mris_irn(env, irn) ((mris_irn_t *) phase_get_or_set_irn_data(&env->ph, irn))
#define foreach_lineage(env, pos, tmp) list_for_each_entry_safe(mris_irn_t, pos, tmp, &(env)->lineage_head, lineage_list)
-static void *mris_irn_data_init(ir_phase *ph, const ir_node *irn, void *data)
+static void *mris_irn_data_init(ir_phase *ph, const ir_node *irn)
{
- mris_irn_t *mi = data ? data : phase_alloc(ph, sizeof(mi[0]));
+ mris_irn_t *mi = phase_alloc(ph, sizeof(mi[0]));
(void) irn;
memset(mi, 0, sizeof(mi[0]));
INIT_LIST_HEAD(&mi->lineage_list);
fuse_lineages(env);
}
-static int mris_edge_hook(FILE *F, ir_node *irn)
+static void mris_edge_hook(FILE *F, ir_node *irn)
{
mris_irn_t *mi = get_mris_irn(dump_env, irn);
PRINT_NODEID(irn);
fprintf(F, "\" color:lilac}\n");
}
- return 1;
}
void dump_ir_block_graph_mris(mris_env_t *env, const char *suffix)
{
- DUMP_NODE_EDGE_FUNC old = get_dump_node_edge_hook();
+ dump_node_edge_func old = get_dump_node_edge_hook();
- dump_consts_local(0);
set_dump_node_edge_hook(mris_edge_hook);
dump_env = env;
- dump_ir_block_graph(env->irg, suffix);
+ dump_ir_graph(env->irg, suffix);
set_dump_node_edge_hook(old);
}
-mris_env_t *be_sched_mris_preprocess(const be_irg_t *birg)
+mris_env_t *be_sched_mris_preprocess(ir_graph *irg)
{
mris_env_t *env = XMALLOC(mris_env_t);
- ir_graph *irg = be_get_birg_irg(birg);
phase_init(&env->ph, irg, mris_irn_data_init);
env->irg = irg;