diff options
author | Jakub Jelinek <jakub@redhat.com> | 2013-03-04 11:08:01 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2013-03-04 11:08:01 +0100 |
commit | 30862efc6b9677d313787fa1a8e8e7f6f3bd0c75 (patch) | |
tree | 82892f8ef480f69cc864f032228e80a5edc1887a /gcc | |
parent | 8930f7239bc47706ec49ccb5d285c31ae451f97c (diff) | |
download | gcc-30862efc6b9677d313787fa1a8e8e7f6f3bd0c75.zip gcc-30862efc6b9677d313787fa1a8e8e7f6f3bd0c75.tar.gz gcc-30862efc6b9677d313787fa1a8e8e7f6f3bd0c75.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/tree-vect-stmts.c | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7e75aba..10ecd95 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,10 @@ 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 vec_oprnds1 right before pushing anything to it for diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 927aa3d..e5604fa 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)); } |