bb-reorder: Remove a misfiring micro-optimization (PR96475)
authorSegher Boessenkool <segher@kernel.crashing.org>
Fri, 7 Aug 2020 01:31:38 +0000 (01:31 +0000)
committerSegher Boessenkool <segher@kernel.crashing.org>
Wed, 9 Sep 2020 16:55:22 +0000 (16:55 +0000)
commit69ca5f3a988266da8905aef9cf22aa02807e0471
tree661a3de4c286667c65fa793edf8a63e48399540b
parentad2a37157d3476dffb3baf93ca5001c9f6c44bda
bb-reorder: Remove a misfiring micro-optimization (PR96475)

When the compgotos pass copies the tail of blocks ending in an indirect
jump, there is a micro-optimization to not copy the last one, since the
original block will then just be deleted.  This does not work properly
if cleanup_cfg does not merge all pairs of blocks we expect it to.  It
also does not work if that last block can be merged into multiple
predecessors.

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

PR rtl-optimization/96475
* bb-reorder.c (maybe_duplicate_computed_goto): Remove single_pred_p
micro-optimization.
gcc/bb-reorder.c