X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ir%2Fbe%2Fbespillutil.h;h=ecd32a0524d051e621ed3fa8f32afd951f8084b2;hb=945c6c2ceebef5e41c0486c31f49d2319cacb3da;hp=db4359e2a87274182176d3d29c0794bcd73d5da1;hpb=18814151f8c0ea17b2a7bf84c82ee3c2e66d6a6b;p=libfirm diff --git a/ir/be/bespillutil.h b/ir/be/bespillutil.h index db4359e2a..ecd32a052 100644 --- a/ir/be/bespillutil.h +++ b/ir/be/bespillutil.h @@ -1,20 +1,6 @@ /* - * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. - * * This file is part of libFirm. - * - * This file may be distributed and/or modified under the terms of the - * GNU General Public License version 2 as published by the Free Software - * Foundation and appearing in the file LICENSE.GPL included in the - * packaging of this file. - * - * Licensees holding valid libFirm Professional Edition licenses may use - * this file in accordance with the libFirm Commercial License. - * Agreement provided with the Software. - * - * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE - * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE. + * Copyright (C) 2012 University of Karlsruhe. */ /** @@ -22,8 +8,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 @@ -32,7 +17,6 @@ #include "debug.h" #include "bearch.h" -#include "beirg.h" typedef struct spill_env_t spill_env_t; @@ -73,17 +57,6 @@ void be_add_spill(spill_env_t *senv, ir_node *to_spill, ir_node *after); void be_add_reload(spill_env_t *senv, ir_node *to_spill, ir_node *before, const arch_register_class_t *reload_cls, int allow_remat); -void be_add_reload2(spill_env_t *senv, ir_node *to_spill, ir_node *before, ir_node *can_spill_after, - const arch_register_class_t *reload_cls, int allow_remat); - -/** - * Add a reload at the end of a block. - * Similar to be_add_reload_on_edge(). - */ -void be_add_reload_at_end(spill_env_t *env, ir_node *to_spill, const ir_node *block, - const arch_register_class_t *reload_cls, - int allow_remat); - /** * Analog to be_add_reload, but places the reload "on an edge" between 2 blocks * @see be_add_reload @@ -92,12 +65,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 +73,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 @@ -172,4 +139,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