Bugfixes
[libfirm] / ir / be / bechordal_t.h
1
2 /**
3  * Internal datastructures for the chordal register allocator.
4  * @author Sebastian Hack
5  * @date 25.1.2005
6  */
7
8 #ifndef _BECHORDAL_T_H
9 #define _BECHORDAL_T_H
10
11 /**
12  * A liveness interval border.
13  */
14 typedef struct _border_t {
15 #ifdef DEBUG_libfirm
16         unsigned magic;                                                         /**< A magic number for checking. */
17 #endif
18         struct list_head list;                          /**< list head for queuing. */
19         struct _border_t *other_end;    /**< The other end of the border. */
20         const ir_node *irn;                                             /**< The node. */
21         unsigned step;                                                          /**< The number equal to the interval border. */
22         unsigned pressure;                                              /**< The pressure at this interval border.
23                                                                                                                                         (The border itself is counting). */
24         unsigned is_def : 1;                                    /**< Does this border denote a use or a def. */
25         unsigned is_real : 1;                                   /**< Is the def/use real? Or is it just inserted
26                                                                                                                                         at block beginnings or ends to ensure that inside
27                                                                                                                                         a block, each value has one begin and one end. */
28 } border_t;
29
30 extern void be_ra_chordal_spill(ir_graph *irg);
31
32 #endif /* _BECHORDAL_T_H */