2 * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
4 * This file is part of libFirm.
6 * This file may be distributed and/or modified under the terms of the
7 * GNU General Public License version 2 as published by the Free Software
8 * Foundation and appearing in the file LICENSE.GPL included in the
9 * packaging of this file.
11 * Licensees holding valid libFirm Professional Edition licenses may use
12 * this file in accordance with the libFirm Commercial License.
13 * Agreement provided with the Software.
15 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * @brief Implements a list scheduler for the MRIS algorithm.
23 * @author Sebastian Hack
27 * Implements a list scheduler for the MRIS algorithm in:
28 * Govindarajan, Yang, Amaral, Zhang, Gao
29 * Minimum Register Instruction Sequencing to Reduce Register Spills
30 * in out-of-order issue superscalar architectures
32 #ifndef FIRM_BE_BESCHEDMRIS_H
33 #define FIRM_BE_BESCHEDMRIS_H
37 typedef struct _mris_env_t mris_env_t;
40 * Preprocess the irg with the MRIS algorithm.
41 * @param birg The backend irg.
42 * @return Private data to be kept.
44 mris_env_t *be_sched_mris_preprocess(const be_irg_t *birg);
47 * Cleanup the MRIS preprocessing.
48 * @param env The private data as returned by be_sched_mris_preprocess().
50 void be_sched_mris_free(mris_env_t *env);
53 * Dump IR graph with lineages.
55 void dump_ir_block_graph_mris(mris_env_t *env, const char *suffix);
57 #endif /* FIRM_BE_BESCHEDMRIS_H */