c946a744e168b1df7738d290e668405819a7541d
[libfirm] / ir / be / bechordal.h
1
2 /**
3  * Chordal register allocation.
4  * @author Sebastian Hack
5  * @date 14.12.2004
6  */
7
8 #ifndef __BECHORDAL_H
9 #define __BECHORDAL_H
10
11 #include "irgraph.h"
12 #include "irnode.h"
13
14 #include "bearch.h"
15
16 typedef struct _be_chordal_env_t be_chordal_env_t;
17
18 /**
19  * Allocate registers for an ir graph.
20  * @param irg The graph.
21  * @return Some internal data to be freed with be_ra_chordal_done().
22  */
23 be_chordal_env_t *be_ra_chordal(ir_graph *irg,
24     const arch_env_t *arch_env,
25     const arch_register_class_t *cls);
26
27 /**
28  * Free data from the chordal register allocation.
29  * @param irg The graph.
30  */
31 void be_ra_chordal_done(be_chordal_env_t *info);
32
33 /**
34  * Init some things for the chordal register allocator.
35  * This must be called before Firm is inited.
36  */
37 void be_ra_chordal_init(void);
38
39 #endif