X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeirg.c;h=0d7f8d885eb3e1a4330eb7ad5e507f3d5ee9cf5a;hb=2be6077d3c0d1cdc8fad965f1857ac3a08c632aa;hp=da5e4f0f460cdb01539ded2f56d8f35cfe2a743b;hpb=3c2f7c0c9e0bff5d97a973bc224579922bb7df81;p=libfirm diff --git a/ir/be/beirg.c b/ir/be/beirg.c index da5e4f0f4..0d7f8d885 100644 --- a/ir/be/beirg.c +++ b/ir/be/beirg.c @@ -1,20 +1,6 @@ /* - * Copyright (C) 1995-2007 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,76 +8,47 @@ * @brief Backend irg - a ir_graph with additional analysis information. * @author Matthias Braun * @date 13.12.2006 - * @version $Id$ */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include "execfreq.h" -#include "beirg_t.h" +#include "beirg.h" +#include "absgraph.h" +#include "belive.h" -be_lv_t *be_assure_liveness(be_irg_t *birg) +void be_invalidate_live_sets(ir_graph *irg) { - if (birg->lv != NULL) - return; - - return birg->lv = be_liveness(birg->irg); + be_irg_t *birg = be_birg_from_irg(irg); + be_liveness_invalidate_sets(birg->lv); } -void be_assure_dom_front(be_irg_t *birg) +void be_invalidate_live_chk(ir_graph *irg) { - if (birg->dom_front != NULL) - return; - - birg->dom_front = be_compute_dominance_frontiers(birg->irg); + be_irg_t *birg = be_birg_from_irg(irg); + be_liveness_invalidate_chk(birg->lv); } -void be_invalidate_dom_front(be_irg_t *birg) +void be_assure_live_sets(ir_graph *irg) { - if (birg->dom_front == NULL) - return; + be_irg_t *birg = be_birg_from_irg(irg); + be_liveness_compute_sets(birg->lv); +} - be_free_dominance_frontiers(birg->dom_front); - birg->dom_front = NULL; +void be_assure_live_chk(ir_graph *irg) +{ + be_irg_t *birg = be_birg_from_irg(irg); + be_liveness_compute_chk(birg->lv); } -void be_free_birg(be_irg_t *birg) +void be_free_birg(ir_graph *irg) { - free_execfreq(birg->exec_freq); - birg->exec_freq = NULL; + be_irg_t *birg = be_birg_from_irg(irg); - if (birg->dom_front != NULL) { - be_free_dominance_frontiers(birg->dom_front); - birg->dom_front = NULL; - } if (birg->lv != NULL) { be_liveness_free(birg->lv); birg->lv = NULL; } -} -ir_graph *(be_get_birg_irg)(const be_irg_t *birg) -{ - return _be_get_birg_irg(birg); -} - -ir_exec_freq *(be_get_birg_exec_freq)(const be_irg_t *birg) -{ - return _be_get_birg_exec_freq(birg); -} - -be_lv_t *(be_get_birg_liveness)(const be_irg_t *birg) -{ - return _be_get_birg_liveness(birg); -} - -be_dom_front_info_t *(be_get_birg_dom_front)(const be_irg_t *birg) -{ - return _be_get_birg_dom_front(birg); -} - -const arch_env_t *(be_get_birg_arch_env)(const be_irg_t *birg) -{ - return _be_get_birg_arch_env(birg); + obstack_free(&birg->obst, NULL); + irg->be_data = NULL; }