aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2013-12-19 22:11:25 +0000
committerTeresa Johnson <tejohnson@gcc.gnu.org>2013-12-19 22:11:25 +0000
commitb55bf1206fa45a9742109ec4ece72b7c7ed97630 (patch)
tree517409a27640bcb3a5bb2b05a50daf074779f61b
parente15eb172b0dd7451f121c908a97ab86a45759993 (diff)
downloadgcc-b55bf1206fa45a9742109ec4ece72b7c7ed97630.zip
gcc-b55bf1206fa45a9742109ec4ece72b7c7ed97630.tar.gz
gcc-b55bf1206fa45a9742109ec4ece72b7c7ed97630.tar.bz2
re PR gcov-profile/59542 (ICE: verify_flow_info failed during Firefox build with 'gold')
2013-12-19 Teresa Johnson <tejohnson@google.com> PR gcov-profile/59542 * bb-reorder.c (duplicate_computed_gotos): Invoke fixup_partitions if we have made any changes. From-SVN: r206135
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/bb-reorder.c7
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c2cc196..32ac966 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-12-19 Teresa Johnson <tejohnson@google.com>
+
+ PR gcov-profile/59542
+ * bb-reorder.c (duplicate_computed_gotos): Invoke fixup_partitions
+ if we have made any changes.
+
2013-12-19 Jakub Jelinek <jakub@redhat.com>
PR other/59545
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 7f8ea07..7b8584f 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -2390,6 +2390,7 @@ duplicate_computed_gotos (void)
basic_block bb, new_bb;
bitmap candidates;
int max_size;
+ bool changed = false;
if (n_basic_blocks_for_fn (cfun) <= NUM_FIXED_BLOCKS + 1)
return 0;
@@ -2486,9 +2487,15 @@ duplicate_computed_gotos (void)
new_bb->aux = bb->aux;
bb->aux = new_bb;
new_bb->flags |= BB_VISITED;
+ changed = true;
}
done:
+ /* Duplicating blocks above will redirect edges and may cause hot blocks
+ previously reached by both hot and cold blocks to become dominated only
+ by cold blocks. */
+ if (changed)
+ fixup_partitions ();
cfg_layout_finalize ();
BITMAP_FREE (candidates);