From cec8ac0b7e031a6584f4ad34bfdd1654a5031896 Mon Sep 17 00:00:00 2001 From: Zdenek Dvorak Date: Mon, 7 Mar 2011 17:41:53 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/cfgloopmanip.c | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5b7a188e11f..0b6a15ba0d8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-03-07 Zdenek Dvorak + + PR bootstrap/48000 + * cfgloopmanip.c (fix_bb_placements): Return immediately + if FROM is BASE_LOOP's header. + 2011-03-07 Paul Wögerer * gimplify.c (gimplify_function_tree): Fix building calls diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c index 3802f9cff12..1824421f616 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); -- 2.30.2