On 5/21/2026 8:06 AM, Konstantinos Eleftheriou wrote:
> The pass aborted analysis of the entire remaining basic block when it
> encountered a complex memory operation (non-simple store/load).
> Store-forwarding opportunities after the complex operation were silently
> missed.
>
> Replace the early return with a flush-and-continue: clear the pending
> store candidates and keep scanning. The two other flush sites
> (throwing insns, unknown-size memory) already use this pattern.
>
> gcc/ChangeLog:
>
> * avoid-store-forwarding.cc
> (store_forwarding_analyzer::avoid_store_forwarding): Replace
> return with flush-and-continue for complex memory operations.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.target/aarch64/avoid-store-forwarding-6.c: New test.
OK
jeff