Added linear programming problem (lpp) module. Ready but untested.
[libfirm] / ir / be / bera_t.h
index f069dd4..5b83b8a 100644 (file)
@@ -16,6 +16,8 @@
 #define DBG_BERA "firm.be.ra"
 
 typedef struct _ra_node_info_t {
+       ir_node *spill_location;  /**< Spill location node of the node.
+                                                                                                                       If NULL, the node is not spilled. */
        int pressure;                                                   /**< Register pressure at this node. */
        int color;                                                              /**< The color assigned to this node. */
 } ra_node_info_t;
@@ -41,6 +43,8 @@ typedef struct _ra_info_t {
 #define get_ra_node_info(the_node)             (&get_ra_irn_info(the_node)->v.node)
 #define get_ra_block_info(the_block)   (&get_ra_irn_info(the_block)->v.block)
 
+#define get_block_border_head(bl)     (&get_ra_block_info(bl)->border_head)
+
 extern size_t ra_irn_data_offset;
 
 extern size_t ra_irg_data_offset;
@@ -88,6 +92,11 @@ static INLINE int _is_allocatable_irn(const ir_node *irn)
 #define set_irn_color(irn,col)                                         _set_irn_color(irn, col)
 #define is_allocatable_irn(irn)                                                _is_allocatable_irn(irn)
 
+static INLINE struct list_head *_get_block_border_head(ir_node *block)
+{
+       return &get_ra_block_info(block)->border_head;
+}
+
 /**
  * Check, if two phi operands interfere.
  * @param a A node which is operand to a phi function.