X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbechordal.h;h=fa94cdb2c48ab6168a7025a7cbb43fc8cf78aba9;hb=3db23eee84cbabb3f399f1ca820948114a9c837c;hp=362d093064678da33bd82a4ad61aaa337f5ce333;hpb=e5ab50e3025460b25b6287e7bb3659d6256e38fb;p=libfirm diff --git a/ir/be/bechordal.h b/ir/be/bechordal.h index 362d09306..fa94cdb2c 100644 --- a/ir/be/bechordal.h +++ b/ir/be/bechordal.h @@ -1,37 +1,39 @@ - -/** - * Chordal register allocation. - * @author Sebastian Hack - * @date 14.12.2004 +/* + * Copyright (C) 1995-2008 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. + * + * 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. */ -#ifndef __BECHORDAL_H -#define __BECHORDAL_H - -#include "irgraph.h" -#include "irnode.h" - -#include "bearch.h" - /** - * Allocate registers for an ir graph. - * @param irg The graph. - * @return Some internal data to be freed with be_ra_chordal_done(). + * @file + * @brief Chordal register allocation. + * @author Sebastian Hack + * @date 14.12.2004 */ -void be_ra_chordal(ir_graph *irg, - const arch_isa_if_t *isa, - const arch_register_class_t *cls); +#ifndef FIRM_BE_BECHORDAL_H +#define FIRM_BE_BECHORDAL_H -/** - * Free data from the chordal register allocation. - * @param irg The graph. - */ -void be_ra_chordal_done(ir_graph *irg); +typedef struct be_chordal_env_t be_chordal_env_t; +typedef struct be_ra_chordal_opts_t be_ra_chordal_opts_t; +typedef struct border_t border_t; -/** - * Init some things for the chordal register allocator. - * This must be called before Firm is inited. - */ -void be_ra_chordal_init(void); +typedef struct be_ra_chordal_coloring_t { + void (*allocate)(be_chordal_env_t *env); +} be_ra_chordal_coloring_t; + +void be_register_chordal_coloring(const char *name, be_ra_chordal_coloring_t *coloring); -#endif +#endif /* FIRM_BE_BECHORDAL_H */