diff options
author | Richard Biener <rguenther@suse.de> | 2019-03-07 14:53:37 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-03-07 14:53:37 +0000 |
commit | 5161ffa4f5ae6133167673afc607c07e0be787f8 (patch) | |
tree | ca7ad8acb532fbc7cd99febdb4553ecd19f65ca3 /gcc/tree-inline.c | |
parent | e0f7051e44e99d7e9f6b4d187abde5c09be5c77a (diff) | |
download | gcc-5161ffa4f5ae6133167673afc607c07e0be787f8.zip gcc-5161ffa4f5ae6133167673afc607c07e0be787f8.tar.gz gcc-5161ffa4f5ae6133167673afc607c07e0be787f8.tar.bz2 |
re PR tree-optimization/89618 (Inner loop won't vectorize unless dummy statement is included)
2019-04-07 Richard Biener <rguenther@suse.de>
PR middle-end/89618
* cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
* tree-inline.c (copy_loops): Simplify.
* gcc.target/i386/pr89618.c: New testcase.
From-SVN: r269458
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 9017da8..d3e53d2 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -2666,23 +2666,15 @@ copy_loops (copy_body_data *id, /* Copy loop meta-data. */ copy_loop_info (src_loop, dest_loop); + if (dest_loop->unroll) + cfun->has_unroll = true; + if (dest_loop->force_vectorize) + cfun->has_force_vectorize_loops = true; /* Finally place it into the loop array and the loop tree. */ place_new_loop (cfun, dest_loop); flow_loop_tree_node_add (dest_parent, dest_loop); - dest_loop->safelen = src_loop->safelen; - if (src_loop->unroll) - { - dest_loop->unroll = src_loop->unroll; - cfun->has_unroll = true; - } - dest_loop->dont_vectorize = src_loop->dont_vectorize; - if (src_loop->force_vectorize) - { - dest_loop->force_vectorize = true; - cfun->has_force_vectorize_loops = true; - } if (src_loop->simduid) { dest_loop->simduid = remap_decl (src_loop->simduid, id); |