X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeschedmris.c;h=b868d5084b850c34da978e8ec5d977239d64202a;hb=4ed245f5007168dab7850942a7ee6b6b29a19817;hp=4d7351925f343238ca1b1d5143dab37da21023ad;hpb=efe4f09c60d436569bf6ace75288fb9ef3725396;p=libfirm diff --git a/ir/be/beschedmris.c b/ir/be/beschedmris.c index 4d7351925..b868d5084 100644 --- a/ir/be/beschedmris.c +++ b/ir/be/beschedmris.c @@ -6,6 +6,9 @@ * @author Sebastian Hack * @date 04.04.2006 */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include @@ -29,7 +32,6 @@ struct _mris_env_t { phase_t ph; heights_t *heights; - firm_dbg_module_t *dbg; const arch_env_t *aenv; ir_graph *irg; ir_node *bl; @@ -37,7 +39,7 @@ struct _mris_env_t { int visited; struct list_head lineage_head; struct obstack obst; -DEBUG_ONLY(firm_dbg_module_t *dbg;) + DEBUG_ONLY(firm_dbg_module_t *dbg;) }; typedef struct _mris_irn_t { @@ -53,11 +55,12 @@ typedef struct _mris_irn_t { #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(phase_t *ph, const ir_node *irn, void *data) +static void *mris_irn_data_init(phase_t *ph, ir_node *irn, void *data) { - mris_irn_t *mi = data; - memset(data, 0, sizeof(mi[0])); + mris_irn_t *mi = data ? data : phase_alloc(ph, sizeof(mi[0])); + memset(mi, 0, sizeof(mi[0])); INIT_LIST_HEAD(&mi->lineage_list); + return mi; } #if 0 @@ -427,7 +430,6 @@ static int fuse_two_lineages(mris_env_t *env, mris_irn_t *u, mris_irn_t *v) static void fuse_lineages(mris_env_t *env) { - int fused = 1; mris_irn_t *u, *v, *tmp1, *tmp2; again: @@ -452,7 +454,7 @@ static void block_walker(ir_node *bl, void *data) mris_env_t *env = data; env->bl = bl; lineage_formation(env); - fuse_lineages(env); + //fuse_lineages(env); } @@ -460,7 +462,7 @@ mris_env_t *be_sched_mris_preprocess(const be_irg_t *birg) { mris_env_t *env = xmalloc(sizeof(env[0])); - phase_init(&env->ph, "mris", birg->irg, sizeof(mris_irn_t), 2 * PHASE_DEFAULT_GROWTH, mris_irn_data_init); + phase_init(&env->ph, "mris", birg->irg, 2 * PHASE_DEFAULT_GROWTH, mris_irn_data_init); env->aenv = birg->main_env->arch_env; env->irg = birg->irg; env->visited = 0;