aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop-manip.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2017-03-07 13:39:44 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2017-03-07 13:39:44 +0000
commit5281a167eaf420235edcd5b47425d54a13ff74af (patch)
treeba300f18620a9bd8bd5636601f23709361a89997 /gcc/tree-vect-loop-manip.c
parent2413298e2df06c6013fb5533b7e01d6bdb38e4c7 (diff)
downloadgcc-5281a167eaf420235edcd5b47425d54a13ff74af.zip
gcc-5281a167eaf420235edcd5b47425d54a13ff74af.tar.gz
gcc-5281a167eaf420235edcd5b47425d54a13ff74af.tar.bz2
tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve preheaders.
2017-03-07 Richard Biener <rguenther@suse.de> * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve preheaders. From-SVN: r245950
Diffstat (limited to 'gcc/tree-vect-loop-manip.c')
-rw-r--r--gcc/tree-vect-loop-manip.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
index 5ee2c38..2f82061 100644
--- a/gcc/tree-vect-loop-manip.c
+++ b/gcc/tree-vect-loop-manip.c
@@ -569,6 +569,11 @@ slpeel_add_loop_guard (basic_block guard_bb, tree cond,
enter_e->count -= new_e->count;
enter_e->probability = inverse_probability (probability);
set_immediate_dominator (CDI_DOMINATORS, guard_to, dom_bb);
+
+ /* Split enter_e to preserve LOOPS_HAVE_PREHEADERS. */
+ if (enter_e->dest->loop_father->header == enter_e->dest)
+ split_edge (enter_e);
+
return new_e;
}