- fixed r22803
[libfirm] / ir / be / bespill.h
index 563a9aa..018f52f 100644 (file)
@@ -46,12 +46,15 @@ spill_env_t *be_new_spill_env(be_irg_t *birg);
  */
 void be_delete_spill_env(spill_env_t *senv);
 
+/**
+ * Return the last control flow node of a block.
+ */
 ir_node *be_get_end_of_block_insertion_point(const ir_node *block);
 
 /**
- * marks a point until which a node must be spilled
+ * Marks a point until which a node must be spilled.
  */
-void be_add_spill(spill_env_t *senv, ir_node *to_spill, ir_node *before);
+void be_add_spill(spill_env_t *senv, ir_node *to_spill, ir_node *after);
 
 /**
  * Inserts a new entry into the list of reloads to place (the real nodes will
@@ -146,6 +149,15 @@ typedef struct {
        double reload_costs;
 } be_total_spill_costs_t;
 
+/**
+ * Insert a spill after the definition of the given node if there is a reload that is not dominated by some spill.
+ * This function checks whether there is a reload that is not dominated by some spill for that node.
+ * If so, it inserts a spill right after the definition of the node.
+ * @param env The spill environment.
+ * @param irn The node to check for.
+ */
+void make_spill_locations_dominate_irn(spill_env_t *env, ir_node *irn);
+
 /**
  * Collect spill/reload cost statistics for a graph.
  * @param birg   The backend graph.