diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2007-05-03 15:27:26 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2007-05-03 13:27:26 +0000 |
commit | e604f56c8f802145e244871cbbf667c683d1b964 (patch) | |
tree | b993a189f6be21f7bb002d0d9b6148b9b75960cb /gcc/lambda-code.c | |
parent | e119f74e24c295b1210ff77b626af0937da85177 (diff) | |
download | gcc-e604f56c8f802145e244871cbbf667c683d1b964.zip gcc-e604f56c8f802145e244871cbbf667c683d1b964.tar.gz gcc-e604f56c8f802145e244871cbbf667c683d1b964.tar.bz2 |
re PR tree-optimization/30565 (ICE with -O1 -ftree-pre -ftree-loop-linear)
PR tree-optimization/30565
* lambda-code.c (perfect_nestify): Fix updating of dominators.
* gcc.dg/tree-ssa/loop-27.c: New test.
From-SVN: r124378
Diffstat (limited to 'gcc/lambda-code.c')
-rw-r--r-- | gcc/lambda-code.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/lambda-code.c b/gcc/lambda-code.c index ca07bdc..655c025 100644 --- a/gcc/lambda-code.c +++ b/gcc/lambda-code.c @@ -2521,7 +2521,8 @@ perfect_nestify (struct loop *loop, set_immediate_dominator (CDI_DOMINATORS, preheaderbb, single_exit (loop)->src); set_immediate_dominator (CDI_DOMINATORS, latchbb, bodybb); - set_immediate_dominator (CDI_DOMINATORS, olddest, bodybb); + set_immediate_dominator (CDI_DOMINATORS, olddest, + recount_dominator (CDI_DOMINATORS, olddest)); /* Create the new iv. */ oldivvar = VEC_index (tree, loopivs, 0); ivvar = create_tmp_var (TREE_TYPE (oldivvar), "perfectiv"); |