From: Jakub Jelinek Date: Mon, 4 Mar 2013 10:08:01 +0000 (+0100) Subject: re PR middle-end/56461 (GCC is leaking lots of memory) X-Git-Tag: releases/gcc-4.8.0~219 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=30862efc6b9677d313787fa1a8e8e7f6f3bd0c75;p=thirdparty%2Fgcc.git re PR middle-end/56461 (GCC is leaking lots of memory) PR middle-end/56461 * tree-vect-stmts.c (vectorizable_conversion): Don't call vec_oprnds0.create (1) for modifier == NONE. From-SVN: r196426 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7e75abaa7fcf..10ecd953cc3f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2013-03-04 Jakub Jelinek + 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 diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 927aa3d3839b..e5604fa6fea4 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -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)); }