re PR middle-end/56461 (GCC is leaking lots of memory)
authorJakub Jelinek <jakub@redhat.com>
Mon, 4 Mar 2013 10:08:01 +0000 (11:08 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 4 Mar 2013 10:08:01 +0000 (11:08 +0100)
PR middle-end/56461
* tree-vect-stmts.c (vectorizable_conversion): Don't call
vec_oprnds0.create (1) for modifier == NONE.

From-SVN: r196426

gcc/ChangeLog
gcc/tree-vect-stmts.c

index 7e75abaa7fcfc00533304a94699f318fbc956705..10ecd953cc3ff339c76806463b7fce5192cd10e0 100644 (file)
@@ -1,5 +1,9 @@
 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
 
+       PR middle-end/56461
+       * tree-vect-stmts.c (vectorizable_conversion): Don't call
+       vec_oprnds0.create (1) for modifier == NONE.
+
        PR middle-end/56461
        * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
        on vec_oprnds0 or vec_oprnds1 before loop, only call it on
index 927aa3d3839b0b708b3b96f606f303af19c1e2cf..e5604fa6fea481cd215996a450f5615084fb1875 100644 (file)
@@ -2616,15 +2616,13 @@ vectorizable_conversion (gimple stmt, gimple_stmt_iterator *gsi,
 
   if (!slp_node)
     {
-      if (modifier == NONE)
-       vec_oprnds0.create (1);
-      else if (modifier == WIDEN)
+      if (modifier == WIDEN)
        {
          vec_oprnds0.create (multi_step_cvt ? vect_pow2(multi_step_cvt) : 1);
          if (op_type == binary_op)
            vec_oprnds1.create (1);
        }
-      else
+      else if (modifier == NARROW)
        vec_oprnds0.create (
                   2 * (multi_step_cvt ? vect_pow2 (multi_step_cvt) : 1));
     }