]> gcc.gnu.org Git - gcc.git/commit
tree-optimization/104960 - unsplit edges after late sinking
authorRichard Biener <rguenther@suse.de>
Thu, 17 Mar 2022 07:10:59 +0000 (08:10 +0100)
committerRichard Biener <rguenther@suse.de>
Thu, 17 Mar 2022 08:51:09 +0000 (09:51 +0100)
commit3a7ba8fd0cda387809e4902328af2473662b6a4a
tree32cb62d227c852f67eb5f529f398045fe83aeff9
parent7276a18aba41eed65c0cf535ae029e0ceeca6c77
tree-optimization/104960 - unsplit edges after late sinking

Something went wrong when testing the earlier patch to move the
late sinking to before the late phiopt for PR102008.  The following
makes sure to unsplit edges after the late sinking since the split
edges confuse the following phiopt leading to missed optimizations.

I've went for a new pass parameter for this to avoid changing the
CFG after the early sinking pass at this point.

2022-03-17  Richard Biener  <rguenther@suse.de>

PR tree-optimization/104960
* passes.def: Add pass parameter to pass_sink_code, mark
last one to unsplit edges.
* tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
(pass_sink_code::execute): Always execute TODO_cleanup_cfg
when we need to unsplit edges.

* gcc.dg/gimplefe-37.c: Adjust to allow either the true
or false edge to have a forwarder.
gcc/passes.def
gcc/testsuite/gcc.dg/gimplefe-37.c
gcc/tree-ssa-sink.cc
This page took 0.064183 seconds and 5 git commands to generate.