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
21 * Implements a list schedule selector for the MRIS algorithm in:
22 * Govindarajan, Yang, Amaral, Zhang, Gao
23 * Minimum Register Instruction Sequencing to Reduce Register Spills
24 * in out-of-order issue superscalar architectures
27 #ifndef _BESCHEDMRIS_H
28 #define _BESCHEDMRIS_H
31 #include "belistsched.h"
33 typedef struct _mris_env_t mris_env_t;
36 * Preprocess the irg with the MRIS algorithm.
37 * @param birg The backend irg.
38 * @return Private data to be kept.
40 mris_env_t *be_sched_mris_preprocess(const be_irg_t *birg);
43 * Cleanup the MRIS preprocessing.
44 * @param env The private data as returned by be_sched_mris_preprocess().
46 void be_sched_mris_free(mris_env_t *env);
49 * Dump IR graph with lineages.
51 void dump_ir_block_graph_mris(mris_env_t *env, const char *suffix);
53 #endif /* _BESCHEDMRIS_H */