bb-reorder: Fix for ICEs caused by 69ca5f3a9882
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 14 Sep 2020 18:19:47 +0000 (18:19 +0000)
committerSegher Boessenkool <segher@kernel.crashing.org>
Tue, 15 Sep 2020 13:18:04 +0000 (13:18 +0000)
After the previous patch we are left with an unreachable BB.  This will
ICE if either we have -fschedule-fusion, or we do not have peephole2.

2020-09-15  Segher Boessenkool  <segher@kernel.crashing.org>

PR rtl-optimization/96475
* bb-reorder.c (duplicate_computed_gotos): If we did anything, run
cleanup_cfg.

gcc/bb-reorder.c

index 76e56b55a622c321162c91b61aba270b3e76b90d..2ad5197a9e719bb4ba7df8e42953c4c93012fc12 100644 (file)
@@ -2760,6 +2760,10 @@ duplicate_computed_gotos (function *fun)
     if (computed_jump_p (BB_END (bb)) && can_duplicate_block_p (bb))
       changed |= maybe_duplicate_computed_goto (bb, max_size);
 
+  /* Some blocks may have become unreachable.  */
+  if (changed)
+    cleanup_cfg (0);
+
   /* Duplicating blocks will redirect edges and may cause hot blocks
     previously reached by both hot and cold blocks to become dominated
     only by cold blocks.  */