aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop-manip.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-03-11 11:31:05 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-03-11 11:31:05 +0000
commit03001a351528a1fc35bfe0c70deb08c7e18d314b (patch)
tree90fc178fad908f8f6703bbedbd2e87c07aea6358 /gcc/tree-vect-loop-manip.c
parent470fa18b8d54594b339dafbd77ece4b05b4f00c3 (diff)
downloadgcc-03001a351528a1fc35bfe0c70deb08c7e18d314b.zip
gcc-03001a351528a1fc35bfe0c70deb08c7e18d314b.tar.gz
gcc-03001a351528a1fc35bfe0c70deb08c7e18d314b.tar.bz2
re PR tree-optimization/89649 (r269458 FAILs g++.dg/pr80481.C, scan-assembler-not vmovaps)
2019-03-11 Richard Biener <rguenther@suse.de> PR tree-optimization/89649 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype. * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize on the prolog and epilog loops. (vect_loop_versioning): Return copy of loop. * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize on the non-vectorized version of the loop. From-SVN: r269578
Diffstat (limited to 'gcc/tree-vect-loop-manip.c')
-rw-r--r--gcc/tree-vect-loop-manip.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
index 58d1850..77d3dac 100644
--- a/gcc/tree-vect-loop-manip.c
+++ b/gcc/tree-vect-loop-manip.c
@@ -2542,6 +2542,7 @@ vect_do_peeling (loop_vec_info loop_vinfo, tree niters, tree nitersm1,
"slpeel_tree_duplicate_loop_to_edge_cfg failed.\n");
gcc_unreachable ();
}
+ prolog->force_vectorize = false;
slpeel_update_phi_nodes_for_loops (loop_vinfo, prolog, loop, true);
first_loop = prolog;
reset_original_copy_tables ();
@@ -2612,6 +2613,7 @@ vect_do_peeling (loop_vec_info loop_vinfo, tree niters, tree nitersm1,
"slpeel_tree_duplicate_loop_to_edge_cfg failed.\n");
gcc_unreachable ();
}
+ epilog->force_vectorize = false;
slpeel_update_phi_nodes_for_loops (loop_vinfo, loop, epilog, false);
/* Scalar version loop may be preferred. In this case, add guard
@@ -2984,7 +2986,7 @@ vect_create_cond_for_alias_checks (loop_vec_info loop_vinfo, tree * cond_expr)
The versioning precondition(s) are placed in *COND_EXPR and
*COND_EXPR_STMT_LIST. */
-void
+struct loop *
vect_loop_versioning (loop_vec_info loop_vinfo,
unsigned int th, bool check_profitability,
poly_uint64 versioning_threshold)
@@ -3154,4 +3156,6 @@ vect_loop_versioning (loop_vec_info loop_vinfo,
GSI_SAME_STMT);
}
update_ssa (TODO_update_ssa);
+
+ return nloop;
}