X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeilpsched.h;h=6b23d0b1c9268bbe11c946e7c8beef55b227bfab;hb=dd4cd761ab637d4488c7e29f49843b1b02366acf;hp=f20df66bcb519728d37b6edfcff52f361cf8840b;hpb=0a1461dc38a49441ac9f204ff38da511a730d262;p=libfirm diff --git a/ir/be/beilpsched.h b/ir/be/beilpsched.h index f20df66bc..6b23d0b1c 100644 --- a/ir/be/beilpsched.h +++ b/ir/be/beilpsched.h @@ -1,10 +1,39 @@ -#ifndef _BEILPSCHED_H_ -#define _BEILPSCHED_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 "firm_config.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 -#include "bemachine.h" -#include "beirg.h" +#include "irgraph.h" +#include "irnode.h" typedef struct _ilp_sched_selector_t ilp_sched_selector_t; typedef struct _ilp_sched_selector_if_t ilp_sched_selector_if_t; @@ -65,7 +94,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,18 +150,6 @@ struct _ilp_sched_selector_t { /** * Perform ILP scheduling on given birg. */ -void be_ilp_sched(const be_irg_t *birg); - -#ifdef WITH_LIBCORE - -#include -#include - -/** - * Register ILP scheduler options. - */ -void ilpsched_register_options(lc_opt_entry_t *grp); - -#endif /* WITH_LIBCORE */ +void be_ilp_sched(const be_irg_t *birg, be_options_t *be_opts); -#endif /* _BEILPSCHED_H_ */ +#endif /* FIRM_BE_BEILPSCHED_H */