re PR gcov-profile/59542 (ICE: verify_flow_info failed during Firefox build with...
authorTeresa Johnson <tejohnson@google.com>
Thu, 19 Dec 2013 22:11:25 +0000 (22:11 +0000)
committerTeresa Johnson <tejohnson@gcc.gnu.org>
Thu, 19 Dec 2013 22:11:25 +0000 (22:11 +0000)
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

gcc/ChangeLog
gcc/bb-reorder.c

index c2cc196..32ac966 100644 (file)
@@ -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
index 7f8ea07..7b8584f 100644 (file)
@@ -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);