summaryrefslogtreecommitdiff
path: root/gcc/tree-loop-distribution.c
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>2016-11-10 15:20:59 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>2016-11-10 15:20:59 +0000
commit2a7b77d6d2d3997142c46263e319d8df501cf079 (patch)
tree38eb3a996aa140e8305bd762262d03601489a352 /gcc/tree-loop-distribution.c
parent44b49e6b8009d6f90d74f035d23aa144307134a9 (diff)
Fix loop distribution bug with merging edges that creates too many edges.
gcc/ * tree-loop-distribution.c (pg_add_dependence_edges): Return 2 if this_dir is 2. Check for this_dir non-zero before dir != this_dir check. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242038 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-loop-distribution.c')
-rw-r--r--gcc/tree-loop-distribution.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index 5580f286ccfc..902cf30b78a2 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -1408,9 +1408,11 @@ pg_add_dependence_edges (struct graph *rdg, vec<loop_p> loops, int dir,
else
this_dir = 0;
free_dependence_relation (ddr);
- if (dir == 0)
+ if (this_dir == 2)
+ return 2;
+ else if (dir == 0)
dir = this_dir;
- else if (dir != this_dir)
+ else if (this_dir != 0 && dir != this_dir)
return 2;
/* Shuffle "back" dr1. */
dr1 = saved_dr1;