diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-11-10 15:20:59 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-11-10 15:20:59 +0000 |
commit | 2a7b77d6d2d3997142c46263e319d8df501cf079 (patch) | |
tree | 38eb3a996aa140e8305bd762262d03601489a352 /gcc/tree-loop-distribution.c | |
parent | 44b49e6b8009d6f90d74f035d23aa144307134a9 (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.c | 6 |
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; |