beloopana: Remove duplicate comments.
[libfirm] / ir / ir / irssacons.c
index 8a9ad50..f251dc8 100644 (file)
@@ -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.
  */
 
 /**
@@ -39,34 +25,18 @@ static void (*ssa_cons_walker)(ir_graph *, irg_walk_func *, irg_walk_func *, voi
  */
 static void prepare_blocks(ir_node *block, void *env)
 {
-       unsigned        n_loc = current_ir_graph->n_loc;
-       struct obstack *obst  = current_ir_graph->obst;
-  (void)env;
+       ir_graph *const irg   = get_Block_irg(block);
+       unsigned  const n_loc = irg->n_loc;
+       (void)env;
        /* reset mature flag */
        set_Block_matured(block, 0);
-       block->attr.block.graph_arr  = NEW_ARR_D(ir_node *, obst, n_loc);
-       memset(block->attr.block.graph_arr, 0, sizeof(ir_node*) * n_loc);
+       block->attr.block.graph_arr = NEW_ARR_DZ(ir_node*, get_irg_obstack(irg), n_loc);
        set_Block_phis(block, NULL);
 }
 
-/*
- * Restarts SSA construction on the given graph with n_loc
- * new values.
- *
- * @param irg    the graph on which the SSA construction is restarted
- * @param n_loc  number of new variables
- *
- * After this function is complete, the graph is in phase_building
- * again and set_value()/get_value() and mature_block() can be used
- * to construct new values.
- */
 void ssa_cons_start(ir_graph *irg, int n_loc)
 {
-       /* for now we support only phase_high graphs */
-       assert(irg->phase_state == phase_high);
-
-       /* reset the phase to phase building: some optimization might depend on it */
-       set_irg_phase_state(irg, phase_building);
+       add_irg_constraints(irg, IR_GRAPH_CONSTRAINT_CONSTRUCTION);
 
        irg_set_nloc(irg, n_loc);
 
@@ -85,14 +55,9 @@ static void finish_block(ir_node *block, void *env)
 {
        (void)env;
 
-       if (!get_Block_matured(block))
-               mature_immBlock(block);
+       mature_immBlock(block);
 }
 
-/*
- * Finalize the (restarted) SSA construction. Matures all blocks that are
- * not matured yet and reset the graph state to phase_high.
- */
 void ssa_cons_finish(ir_graph *irg)
 {
        ssa_cons_walker(irg, NULL, finish_block, NULL);