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

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Philipp Tomsich <ptoms...@gcc.gnu.org>:

https://gcc.gnu.org/g:04f33a278557c09d3aba978fe205cc2a6caa8efb

commit r16-2606-g04f33a278557c09d3aba978fe205cc2a6caa8efb
Author: Konstantinos Eleftheriou <konstantinos.elefther...@vrull.eu>
Date:   Wed Jun 25 13:24:52 2025 +0200

    asf: Skip when an instruction doesn't satisfy the constraints [PR119795]

    While scanning the instructions and upon reaching an instruction that
    doesn't satisfy the constraints that we have set, we were removing the
    already detected stores, but we were continuing adding stores from that
    point onward. This was causing issues when the address ranges from later
    stores overlapped with the load's address, leading to partial and wrong
    update of the register containing the loaded value.

    With this patch, we are skipping the tranformation for stores that operate
    on the load's address range, when stores that operate on the same range
    have been deleted due to constraint violations.

            PR rtl-optimization/119795

    gcc/ChangeLog:

            * avoid-store-forwarding.cc
            (store_forwarding_analyzer::avoid_store_forwarding): Skip
            transformations for stores that operate on the same address
            range as deleted ones.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr119795.c: New test.

Reply via email to