2 * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
4 * This file is part of libFirm.
6 * This file may be distributed and/or modified under the terms of the
7 * GNU General Public License version 2 as published by the Free Software
8 * Foundation and appearing in the file LICENSE.GPL included in the
9 * packaging of this file.
11 * Licensees holding valid libFirm Professional Edition licenses may use
12 * this file in accordance with the libFirm Commercial License.
13 * Agreement provided with the Software.
15 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * @brief Backend irg - a ir_graph with additional analysis information.
23 * @author Matthias Braun
32 #include "bedomfront.h"
34 void be_assure_dom_front(ir_graph *irg)
36 be_irg_t *birg = be_birg_from_irg(irg);
37 if (birg->dom_front != NULL)
40 birg->dom_front = be_compute_dominance_frontiers(birg->irg);
43 void be_invalidate_dom_front(ir_graph *irg)
45 be_irg_t *birg = be_birg_from_irg(irg);
46 if (birg->dom_front == NULL)
49 be_free_dominance_frontiers(birg->dom_front);
50 birg->dom_front = NULL;
53 void be_invalidate_live_sets(ir_graph *irg)
55 be_irg_t *birg = be_birg_from_irg(irg);
56 be_liveness_invalidate_sets(birg->lv);
59 void be_invalidate_live_chk(ir_graph *irg)
61 be_irg_t *birg = be_birg_from_irg(irg);
62 be_liveness_invalidate_chk(birg->lv);
65 void be_assure_live_sets(ir_graph *irg)
67 be_irg_t *birg = be_birg_from_irg(irg);
68 be_liveness_compute_sets(birg->lv);
71 void be_assure_live_chk(ir_graph *irg)
73 be_irg_t *birg = be_birg_from_irg(irg);
74 be_liveness_compute_chk(birg->lv);
77 void be_free_birg(ir_graph *irg)
79 be_irg_t *birg = be_birg_from_irg(irg);
80 free_execfreq(birg->exec_freq);
81 birg->exec_freq = NULL;
83 if (birg->dom_front != NULL) {
84 be_free_dominance_frontiers(birg->dom_front);
85 birg->dom_front = NULL;
87 if (birg->lv != NULL) {
88 be_liveness_free(birg->lv);
92 obstack_free(&birg->obst, NULL);