Hi Jeff,

On Sat, Jul 26, 2025 at 7:05 PM Jeff Law <jeffreya...@gmail.com> wrote:
>
>
>
> On 7/22/25 4:19 AM, Konstantinos Eleftheriou wrote:
> > 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:
> >
> > +               /* Check if another store in the load's address range has
> > +                  been deleted due to a constraint violation.  In this case
> > +                  we can't forward any other stores that operate in this
> > +                  range, as it would lead to partial update of the register
> > +                  that holds the loaded value.  */
> > +               FOR_EACH_VEC_ELT (store_exprs_del, j, del_it)
> > +                 {
> > +                   rtx del_store_mem = *del_it;
> > +                   same_range_as_removed
> > +                     = is_store_forwarding (del_store_mem, load_mem, NULL);
> > +                   break;
> > +                 }
> Doesn't this break the loop after the first element every time?  What am
> I missing here?
Sorry, I was missing an "if" statement there. Sent a new version
https://gcc.gnu.org/pipermail/gcc-patches/2025-July/690829.html .
>
> Jeff

Thanks,
Konstantinos

Reply via email to