summaryrefslogtreecommitdiffhomepage
path: root/ir/be/bespillutil.h
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2011-08-15 18:10:38 +0200
committerMatthias Braun <matze@braunis.de>2011-08-17 15:33:25 +0200
commit036ede1b4b7c79dfeb560a0a8a6242ce0b2728bf (patch)
tree1885a3d8350830bc4892153bb05b4e34654a78bd /ir/be/bespillutil.h
parent2fc9b7da16d22e8d0edeec02f4e4100c3c2fa1cc (diff)
add callback for constructing spill/reload
So we are not forced to use the generic be_Spill, be_Reload functions which don't work correctly with double-width register requirements. This should really fix sparc float spill/reload this time.
Diffstat (limited to 'ir/be/bespillutil.h')
-rw-r--r--ir/be/bespillutil.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/ir/be/bespillutil.h b/ir/be/bespillutil.h
index 356aa91..06aa394 100644
--- a/ir/be/bespillutil.h
+++ b/ir/be/bespillutil.h
@@ -166,4 +166,16 @@ void be_get_total_spill_costs(ir_graph *irg, be_total_spill_costs_t *costs);
*/
int be_is_rematerializable(spill_env_t *env, const ir_node *to_remat, const ir_node *before);
+/**
+ * Create a be_Spill node. This function is compatible to the
+ * arch_env->new_spill callback.
+ */
+ir_node *be_new_spill(ir_node *value, ir_node *after);
+
+/**
+ * Create a be_Reload node. This function is compatible to the
+ * arch_env->new_reload interface.
+ */
+ir_node *be_new_reload(ir_node *value, ir_node *spilled, ir_node *before);
+
#endif