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.

This fixes it.  Okay for trunk?


Segher


2020-09-14  Segher Boessenkool  <seg...@kernel.crashing.org>

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

---
 gcc/bb-reorder.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 76e56b5..2ad5197 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -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.  */
-- 
1.8.3.1

Reply via email to