X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbechordal.h;h=a1d242aea1a356161f651c4a057df5eebf0ee10c;hb=dabc0af49b941eb664328411ca35ac761b09673c;hp=853d58da380e97420c506457ff0127a2d942af2c;hpb=fffce24ca3bd902557240873edd936588b3cd265;p=libfirm diff --git a/ir/be/bechordal.h b/ir/be/bechordal.h index 853d58da3..a1d242aea 100644 --- a/ir/be/bechordal.h +++ b/ir/be/bechordal.h @@ -1,47 +1,40 @@ - -/** - * 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" - -typedef struct _be_chordal_env_t be_chordal_env_t; - /** - * 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 + * @version $Id$ */ -be_chordal_env_t *be_ra_chordal(ir_graph *irg, - const arch_env_t *arch_env, - const arch_register_class_t *cls); +#ifndef FIRM_BE_BECHORDAL_H +#define FIRM_BE_BECHORDAL_H -/** - * Check current register allocation for correctness. - * Interfering nodes have different colors - * Register constraints - * O(n^2) - */ -void be_ra_chordal_check(be_chordal_env_t *chordal_env); +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; -/** - * Free data from the chordal register allocation. - * @param irg The graph. - */ -void be_ra_chordal_done(be_chordal_env_t *info); +typedef struct be_ra_chordal_coloring_t { + void (*allocate)(be_chordal_env_t *env); +} be_ra_chordal_coloring_t; -/** - * Init some things for the chordal register allocator. - * This must be called before Firm is inited. - */ -void be_ra_chordal_init(void); +void be_register_chordal_coloring(const char *name, be_ra_chordal_coloring_t *coloring); -#endif +#endif /* FIRM_BE_BECHORDAL_H */