X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeifg.c;h=fd020cebfdb6290aac9a2e96b688f4bd9f380cc7;hb=75e3b5fe17402ca27fc671dd404ff958664506b1;hp=1e80f11928d20d93e9de1cd8454634077db7cd62;hpb=fe38209ec98906bdf35f078d1582e72ecec25ac4;p=libfirm diff --git a/ir/be/beifg.c b/ir/be/beifg.c index 1e80f1192..fd020cebf 100644 --- a/ir/be/beifg.c +++ b/ir/be/beifg.c @@ -1,10 +1,28 @@ -/** - * @file beifg.c - * @date 18.11.2005 - * @author Sebastian Hack +/* + * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. + * + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. * - * Copyright (C) 2005 Universitaet Karlsruhe - * Released under the GPL + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ + +/** + * @file + * @brief Interface for interference graphs. + * @author Sebastian Hack + * @date 18.11.2005 + * @version $Id$ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -17,7 +35,6 @@ #include #include "bitset.h" - #include "irgwalk.h" #include "irnode_t.h" #include "irprintf.h" @@ -26,13 +43,13 @@ #include "beifg_t.h" #include "beifg_impl.h" #include "irphase_t.h" -#include "bechordal.h" #include "error.h" #include "xmalloc.h" #include "becopystat.h" #include "becopyopt.h" #include "beirg_t.h" +#include "bemodule.h" /** Defines values for the ifg performance test */ #define BE_CH_PERFORMANCETEST_MIN_NODES (50) @@ -41,9 +58,9 @@ typedef struct _coloring_t coloring_t; struct _coloring_t { - ir_phase ph; + ir_phase ph; const arch_env_t *arch_env; - ir_graph *irg; + ir_graph *irg; }; size_t (be_ifg_nodes_iter_size)(const be_ifg_t *ifg) @@ -64,12 +81,14 @@ size_t (be_ifg_cliques_iter_size)(const be_ifg_t *ifg) static void *regs_irn_data_init(ir_phase *ph, ir_node *irn, void *data) { coloring_t *coloring = (coloring_t *) ph; + (void) data; + return (void *) arch_get_irn_register(coloring->arch_env, irn); } coloring_t *coloring_init(coloring_t *c, ir_graph *irg, const arch_env_t *aenv) { - phase_init(&c->ph, "regs_map", irg, PHASE_DEFAULT_GROWTH, regs_irn_data_init); + phase_init(&c->ph, "regs_map", irg, PHASE_DEFAULT_GROWTH, regs_irn_data_init, NULL); c->arch_env = aenv; c->irg = irg; return c; @@ -703,7 +722,7 @@ static lc_opt_enum_int_var_t ifg_flavor_var = { static const lc_opt_table_entry_t be_ifg_options[] = { LC_OPT_ENT_ENUM_PTR ("ifg", "interference graph flavour", &ifg_flavor_var), - { NULL } + LC_OPT_LAST }; void be_init_ifg(void)