re PR middle-end/56461 (GCC is leaking lots of memory)
authorJakub Jelinek <jakub@redhat.com>
Mon, 4 Mar 2013 10:08:57 +0000 (11:08 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 4 Mar 2013 10:08:57 +0000 (11:08 +0100)
PR middle-end/56461
* tree-loop-distribution.c (ldist_gen): Call partition_free after each
partitions.ordered_remove.

From-SVN: r196427

gcc/ChangeLog
gcc/tree-loop-distribution.c

index 10ecd953cc3ff339c76806463b7fce5192cd10e0..206908daf227570ddf194e544dd6e8619e47c653 100644 (file)
@@ -1,5 +1,9 @@
 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
 
+       PR middle-end/56461
+       * tree-loop-distribution.c (ldist_gen): Call partition_free after each
+       partitions.ordered_remove.
+
        PR middle-end/56461
        * tree-vect-stmts.c (vectorizable_conversion): Don't call
        vec_oprnds0.create (1) for modifier == NONE.
index 12fd4c50173175af60426adf86f5320b65c304a5..70f71b37c83892822e8967a35d8ce2a6e2f7303b 100644 (file)
@@ -1306,6 +1306,7 @@ ldist_gen (struct loop *loop, struct graph *rdg,
                if (partition->kind == PKIND_REDUCTION)
                  into->kind = PKIND_REDUCTION;
                partitions.ordered_remove (i);
+               partition_free (partition);
                i--;
              }
            else
@@ -1342,6 +1343,7 @@ ldist_gen (struct loop *loop, struct graph *rdg,
                  if (partition->kind == PKIND_REDUCTION)
                    into->kind = PKIND_REDUCTION;
                  partitions.ordered_remove (j);
+                 partition_free (partition);
                  j--;
                }
            }
@@ -1367,6 +1369,7 @@ ldist_gen (struct loop *loop, struct graph *rdg,
              bitmap_ior_into (into->stmts, what->stmts);
              into->kind = PKIND_REDUCTION;
              partitions.ordered_remove (i);
+             partition_free (what);
            }
        }
     }