X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbespillutil.h;h=10ee33ff2d3afa045205d834d56190138321be00;hb=b35afc79238e7731b8b3beecc69468cb719735f5;hp=0e73d1f5eac6e057da513abd3f66434b9bd38315;hpb=f6750fd8b384d9795d13ab2985b4a4a631a31e7e;p=libfirm diff --git a/ir/be/bespillutil.h b/ir/be/bespillutil.h index 0e73d1f5e..10ee33ff2 100644 --- a/ir/be/bespillutil.h +++ b/ir/be/bespillutil.h @@ -22,8 +22,7 @@ * @brief higher level abstraction for the creation of spill and reload * instructions and rematerialisation of values. * @author Daniel Grund, Sebastian Hack, Matthias Braun - * @date 29.09.2005 - * @version $Id$ + * @date 29.09.2005 */ #ifndef FIRM_BE_BESPILLUTIL_H #define FIRM_BE_BESPILLUTIL_H @@ -39,7 +38,7 @@ typedef struct spill_env_t spill_env_t; /** * Creates a new spill environment. */ -spill_env_t *be_new_spill_env(be_irg_t *birg); +spill_env_t *be_new_spill_env(ir_graph *irg); /** * Deletes a spill environment. @@ -92,12 +91,6 @@ void be_add_reload_on_edge(spill_env_t *senv, ir_node *to_spill, ir_node *bl, int pos, const arch_register_class_t *reload_cls, int allow_remat); -/** - * Analog to be_add_reload but adds an already created rematerialized node. - */ -void be_add_remat(spill_env_t *env, ir_node *to_spill, ir_node *before, - ir_node *rematted_node); - /** * The main function that places real spills/reloads (or rematerializes values) * for all values where be_add_reload was called. It then rebuilds the @@ -106,7 +99,7 @@ void be_add_remat(spill_env_t *env, ir_node *to_spill, ir_node *before, void be_insert_spills_reloads(spill_env_t *senv); /** - * There are 2 possibilities to spill a phi node: Only it's value, or replacing + * There are 2 possibilities to spill a phi node: Only its value, or replacing * the whole phi-node with a memory phi. Normally only the value of a phi will * be spilled unless you mark the phi with be_spill_phi. * (Remember that each phi needs a register, so you have to spill phis when @@ -160,10 +153,10 @@ 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. + * @param irg The graph. * @param costs A struct which will be filled with the costs. */ -void be_get_total_spill_costs(be_irg_t *birg, be_total_spill_costs_t *costs); +void be_get_total_spill_costs(ir_graph *irg, be_total_spill_costs_t *costs); /** * Check, if a node is rematerializable. @@ -172,4 +165,16 @@ void be_get_total_spill_costs(be_irg_t *birg, 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