aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-loop-distribution.c
diff options
context:
space:
mode:
authorKazu Hirata <kazu@codesourcery.com>2009-01-29 18:23:21 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2009-01-29 18:23:21 +0000
commitd5e54bc10671f59d7a38b05023be5c43d0bca771 (patch)
treeceff6833d1922d30a87ed2cc8371506158699fac /gcc/tree-loop-distribution.c
parent90ef7773275cd355128818a0593d721f2a972cce (diff)
downloadgcc-d5e54bc10671f59d7a38b05023be5c43d0bca771.zip
gcc-d5e54bc10671f59d7a38b05023be5c43d0bca771.tar.gz
gcc-d5e54bc10671f59d7a38b05023be5c43d0bca771.tar.bz2
re PR tree-optimization/39007 (-ftree-loop-distribution ICEs)
gcc/ PR tree-optimization/39007 * tree-loop-distribution.c (generate_builtin): Use recompute_dominator to compute the immediate dominator of the basic block just after the loop. gcc/testsuite/ PR tree-optimization/39007 * gcc.dg/tree-ssa/pr39007.c: New. From-SVN: r143767
Diffstat (limited to 'gcc/tree-loop-distribution.c')
-rw-r--r--gcc/tree-loop-distribution.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index 1463bee..8eca7c0 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -439,11 +439,13 @@ generate_builtin (struct loop *loop, bitmap partition, bool copy_p)
basic_block dest = single_exit (loop)->dest;
prop_phis (dest);
make_edge (src, dest, EDGE_FALLTHRU);
- set_immediate_dominator (CDI_DOMINATORS, dest, src);
cancel_loop_tree (loop);
for (i = 0; i < nbbs; i++)
delete_basic_block (bbs[i]);
+
+ set_immediate_dominator (CDI_DOMINATORS, dest,
+ recompute_dominator (CDI_DOMINATORS, dest));
}
end: