rewritten be_ssa_constr which isn't using sets anymore, started working on a 'state...
[libfirm] / ir / be / beschedmris.h
1 /**
2  * Implements a list schedule selector for the MRIS algorithm in:
3  * Govindarajan, Yang, Amaral, Zhang, Gao
4  * Minimum Register Instruction Sequencing to Reduce Register Spills
5  * in out-of-order issue superscalar architectures
6  */
7
8 #ifndef _BESCHEDMRIS_H
9 #define _BESCHEDMRIS_H
10
11 #include "be.h"
12 #include "belistsched.h"
13
14 typedef struct _mris_env_t mris_env_t;
15
16 /**
17  * Preprocess the irg with the MRIS algorithm.
18  * @param birg The backend irg.
19  * @return     Private data to be kept.
20  */
21 mris_env_t *be_sched_mris_preprocess(const be_irg_t *birg);
22
23 /**
24  * Cleanup the MRIS preprocessing.
25  * @param env The private data as returned by be_sched_mris_preprocess().
26  */
27 void be_sched_mris_free(mris_env_t *env);
28
29 /**
30  * Dump IR graph with lineages.
31  */
32 void dump_ir_block_graph_mris(mris_env_t *env, const char *suffix);
33
34 #endif /* _BESCHEDMRIS_H */