- DO NOT EDIT AFTER TEST!
[libfirm] / ir / lower / lower_intrinsics.c
index 1073887..9835b9d 100644 (file)
@@ -24,9 +24,7 @@
  * @version $Id$
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include "lowering.h"
 #include "irop_t.h"
@@ -40,7 +38,6 @@
 #include "trouts.h"
 #include "irvrfy.h"
 #include "pmap.h"
-#include "xmalloc.h"
 #include "array_t.h"
 #include "iropt_dbg.h"
 
@@ -122,12 +119,17 @@ unsigned lower_intrinsics(i_record *list, int length, int part_block_used) {
        for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
                irg = get_irp_irg(i);
 
-               if (part_block_used)
+               if (part_block_used) {
+                       ir_reserve_resources(irg, IR_RESOURCE_IRN_LINK | IR_RESOURCE_PHI_LIST);
                        collect_phiprojs(irg);
+               }
 
                wenv.nr_of_intrinsics = 0;
                irg_walk_graph(irg, NULL, call_mapper, &wenv);
 
+               if (part_block_used)
+                       ir_free_resources(irg, IR_RESOURCE_IRN_LINK | IR_RESOURCE_PHI_LIST);
+
                if (wenv.nr_of_intrinsics > 0) {
                        /* Changes detected: we might have added/removed nodes. */
                        set_irg_outs_inconsistent(irg);