Add ALLOCAN() and ALLOCANZ().
[libfirm] / ir / lower / lower_mode_b.c
index a711fb9..c10118a 100644 (file)
@@ -26,9 +26,7 @@
  * @author      Matthias Braun, Christoph Mallon
  * @version     $Id$
  */
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include <stdlib.h>
 
@@ -168,8 +166,8 @@ static ir_node *lower_node(ir_node *node)
                ir_node **in;
                ir_node  *unknown, *new_phi;
 
-               arity = get_irn_arity(node);
-               in    = alloca(arity * sizeof(in[0]));
+               arity   = get_irn_arity(node);
+               in      = ALLOCAN(ir_node*, arity);
                unknown = new_Unknown(config.lowered_mode);
                for(i = 0; i < arity; ++i) {
                        in[i] = unknown;
@@ -405,7 +403,8 @@ void ir_lower_mode_b(ir_graph *irg, const lower_mode_b_config_t *nconfig)
 {
        config        = *nconfig;
        lowered_nodes = new_pdeq();
-       set_using_irn_link(irg);
+
+       ir_reserve_resources(irg, IR_RESOURCE_IRN_LINK);
 
        irg_walk_graph(irg, clear_links, NULL, NULL);
        irg_walk_graph(irg, lower_mode_b_walker, NULL, NULL);
@@ -416,5 +415,5 @@ void ir_lower_mode_b(ir_graph *irg, const lower_mode_b_config_t *nconfig)
        }
        del_pdeq(lowered_nodes);
 
-       clear_using_irn_link(irg);
+       ir_free_resources(irg, IR_RESOURCE_IRN_LINK);
 }