*/
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
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.