X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeschedregpress.c;h=46bea131554b6c347097e8bf9d363ed98bde76ec;hb=04906225f6fe1bc22f73b5d6a98eb9c0992a9b54;hp=b0237b1ab02831961051bf12d0415cb1bc8a661a;hpb=1eea702a194424852ded345128fc21866e234a5c;p=libfirm diff --git a/ir/be/beschedregpress.c b/ir/be/beschedregpress.c index b0237b1ab..46bea1315 100644 --- a/ir/be/beschedregpress.c +++ b/ir/be/beschedregpress.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -24,9 +24,7 @@ * @date 29.08.2006 * @version $Id$ */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include @@ -50,7 +48,6 @@ typedef struct _usage_stats_t { typedef struct { const list_sched_selector_t *vtab; - const arch_env_t *arch_env; } reg_pressure_main_env_t; typedef struct { @@ -176,10 +173,9 @@ static int compute_max_hops(reg_pressure_selector_env_t *env, ir_node *irn) static void *reg_pressure_graph_init(const list_sched_selector_t *vtab, const be_irg_t *birg) { - reg_pressure_main_env_t *main_env = xmalloc(sizeof(main_env[0])); + reg_pressure_main_env_t *main_env = XMALLOC(reg_pressure_main_env_t); - main_env->arch_env = be_get_birg_arch_env(birg); - main_env->vtab = vtab; + main_env->vtab = vtab; irg_walk_graph(be_get_birg_irg(birg), firm_clear_link, NULL, NULL); return main_env; @@ -198,7 +194,7 @@ static INLINE int must_appear_in_schedule(const list_sched_selector_t *sel, void static void *reg_pressure_block_init(void *graph_env, ir_node *bl) { ir_node *irn; - reg_pressure_selector_env_t *env = xmalloc(sizeof(env[0])); + reg_pressure_selector_env_t *env = XMALLOC(reg_pressure_selector_env_t); obstack_init(&env->obst); ir_nodeset_init(&env->already_scheduled); @@ -294,7 +290,7 @@ static ir_node *reg_pressure_select(void *block_env, ir_nodeset_t *ready_set, Ignore branch instructions for the time being. They should only be scheduled if there is nothing else. */ - if (! arch_irn_class_is(env->main_env->arch_env, irn, branch)) { + if (!arch_irn_class_is(irn, branch)) { int costs = reg_pr_costs(env, irn); if (costs <= curr_cost) { res = irn;