aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Dvorak <ook@ucw.cz>2011-03-07 17:41:53 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2011-03-07 17:41:53 +0100
commitcec8ac0b7e031a6584f4ad34bfdd1654a5031896 (patch)
tree1aca7caecd43c0428ec90152d41f0f42691f7418
parenta19e4d44f1f424afa351d2f4b79a28b8c5ae7cc6 (diff)
downloadgcc-cec8ac0b7e031a6584f4ad34bfdd1654a5031896.zip
gcc-cec8ac0b7e031a6584f4ad34bfdd1654a5031896.tar.gz
gcc-cec8ac0b7e031a6584f4ad34bfdd1654a5031896.tar.bz2
re PR bootstrap/48000 (LTO bootstrap failed with bootstrap-profiled)
PR bootstrap/48000 * cfgloopmanip.c (fix_bb_placements): Return immediately if FROM is BASE_LOOP's header. From-SVN: r170740
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cfgloopmanip.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5b7a188..0b6a15b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-03-07 Zdenek Dvorak <ook@ucw.cz>
+
+ PR bootstrap/48000
+ * cfgloopmanip.c (fix_bb_placements): Return immediately
+ if FROM is BASE_LOOP's header.
+
2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
* gimplify.c (gimplify_function_tree): Fix building calls
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c
index 3802f9c..1824421 100644
--- a/gcc/cfgloopmanip.c
+++ b/gcc/cfgloopmanip.c
@@ -185,7 +185,11 @@ fix_bb_placements (basic_block from,
fix_loop_placement. */
base_loop = from->loop_father;
- if (base_loop == current_loops->tree_root)
+ /* If we are already in the outermost loop, the basic blocks cannot be moved
+ outside of it. If FROM is the header of the base loop, it cannot be moved
+ outside of it, either. In both cases, we can end now. */
+ if (base_loop == current_loops->tree_root
+ || from == base_loop->header)
return;
in_queue = sbitmap_alloc (last_basic_block);