diff options
author | Matthias Braun <matze@braunis.de> | 2011-08-15 18:10:38 +0200 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2011-08-17 15:33:25 +0200 |
commit | 036ede1b4b7c79dfeb560a0a8a6242ce0b2728bf (patch) | |
tree | 1885a3d8350830bc4892153bb05b4e34654a78bd /ir/be/bespillutil.h | |
parent | 2fc9b7da16d22e8d0edeec02f4e4100c3c2fa1cc (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.h | 12 |
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 |