X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeilpsched.h;h=62192a028bd0c9c4c92e9de51aa3331fca0137f8;hb=5a5b0a8806277f92f5950cfedd8a231f4d00a306;hp=137918bc30b31443632d32559f855e9df21d5201;hpb=a39875e8317d248b8d75669b3e19d2ce356b0f90;p=libfirm diff --git a/ir/be/beilpsched.h b/ir/be/beilpsched.h index 137918bc3..62192a028 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); }; /** @@ -119,8 +146,8 @@ struct _ilp_sched_selector_t { BE_ILP_SCHED_CALL2(node_scheduled, self, irn, cycle, block_env) /** - * Perform ILP scheduling on given birg. + * Perform ILP scheduling on given irg. */ -void be_ilp_sched(const be_irg_t *birg, be_options_t *be_opts); +void be_ilp_sched(ir_graph *irg); -#endif /* _BEILPSCHED_H_ */ +#endif