https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126208

Drea Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2026-07-10
     Ever confirmed|0                           |1

--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
Maybe we can add back path splitting and then only do the path splitting if
there is a store being conditional that is comes from a load close to the
begining of the loop. That would allow the (RTL) PRE (GCSE) happening in this
case and also not block any normal (or agressive) ifcvt from happening.

But maybe path splitting needs to be after the last phiopt.


The other side of things is why did the tree level PRE not do the partial
redundant load. It did it for *size_11(D) but not for *nodes_12(D). That is the
bigger question. And would fix this without adding back path splitting I think.

Note clang/LLVM does optimize this either, there is a load from x0 each time
through the loop too.

Reply via email to