diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-03-07 16:41:53 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-03-07 16:41:53 +0000 |
commit | 68fb4bc0f1a21268d993a8bc6b221830c5811413 (patch) | |
tree | 1aca7caecd43c0428ec90152d41f0f42691f7418 /gcc/cfgloopmanip.c | |
parent | ecf2703ddf616f05ad27b14e38c253034225bcfc (diff) | |
download | gcc-68fb4bc0f1a21268d993a8bc6b221830c5811413.tar.gz |
PR bootstrap/48000
* cfgloopmanip.c (fix_bb_placements): Return immediately
if FROM is BASE_LOOP's header.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170740 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgloopmanip.c')
-rw-r--r-- | gcc/cfgloopmanip.c | 6 |
1 files changed, 5 insertions, 1 deletions
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); |