X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeilpsched.h;h=fed571d4d21f3c3147452a993f1285f87aacfd2d;hb=9e9c84725fd3fcfbcb819d6d6b88f8da91f121a9;hp=7bf532b6be81c280b952e7385b60c23d8395cd70;hpb=6981dd3274e6753e50f66c8cbe17b37bd41708e5;p=libfirm diff --git a/ir/be/beilpsched.h b/ir/be/beilpsched.h index 7bf532b6b..fed571d4d 100644 --- a/ir/be/beilpsched.h +++ b/ir/be/beilpsched.h @@ -1,13 +1,40 @@ -#ifndef _BEILPSCHED_H_ -#define _BEILPSCHED_H_ - -#include "firm_config.h" +/* + * 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. + */ -#include "bemachine.h" -#include "beirg.h" +/** + * @file + * @brief ILP based instruction scheduling. + * @author Christian Wuerdig + * @date 22.10.2006 + * @version $Id$ + * + * An ILP scheduler based on + * "ILP-based Instruction Scheduling for IA-64" + * by Daniel Kaestner and Sebastian Winkel + * extended with register pressure constraints by Christian Wuerdig + */ +#ifndef FIRM_BE_BEILPSCHED_H +#define FIRM_BE_BEILPSCHED_H -typedef struct _ilp_sched_selector_t ilp_sched_selector_t; -typedef struct _ilp_sched_selector_if_t ilp_sched_selector_if_t; +#include "irgraph.h" +#include "irnode.h" +#include "be_types.h" /** * A selector interface which is used by the ILP schedule framework. @@ -65,7 +92,7 @@ struct _ilp_sched_selector_if_t { * @param cycle The cycle at which the node is scheduled. * @param block_env The block scheduling environment. */ - void (*node_scheduled)(const void *self, ir_node *irn, unsigned cycle, void *block_env); + void (*node_scheduled)(const void *self, const ir_node *irn, unsigned cycle, void *block_env); }; /** @@ -121,6 +148,6 @@ struct _ilp_sched_selector_t { /** * Perform ILP scheduling on given birg. */ -void be_ilp_sched(const be_irg_t *birg); +void be_ilp_sched(const be_irg_t *birg, be_options_t *be_opts); -#endif /* _BEILPSCHED_H_ */ +#endif /* FIRM_BE_BEILPSCHED_H */