On 2/15/25 6:36 AM, Richard Biener wrote:
The PR indicates a very specific issue with regard to SSA coalescing
failures because there's a pre IV increment loop exit test. While
IVOPTs created the desired IL we later simplify the exit test into
the undesirable form again. The following fixes this up during RTL
expansion where we try to improve coalescing of IVs. That seems
easier that trying to avoid the simplification with some weird
heuristics (it could also have been written this way).
Ugh. I think we've got hacks in multiple places to deal with similar
issues. One could ask the question if one or more of those could be
removed, though clearly that's gcc-16 material.
Bootstrap and regtest running on x86_64-unknown-linux-gnu.
OK?
Thanks,
Richard.
PR tree-optimization/86270
* tree-outof-ssa.cc (insert_backedge_copies): Pattern
match a single conflict in a loop condition and adjust
that avoiding the conflict if possible.
* gcc.target/i386/pr86270.c: Adjust to check for no reg-reg
copies as well.
Seems sensible, more so than I expected when reading the intro.
OK.
Jeff