On 1/13/24 08:43, Alex Coplan wrote:
The next patch in this series exposes an interface for creating new uses
in RTL-SSA.  The intent is that new user-created uses can consume new
user-created defs in the same change group.  This is so that we can
correctly update uses of memory when inserting a new store pair insn in
the aarch64 load/store pair fusion pass (the affected uses need to
consume the new store pair insn).

As it stands, finalize_new_accesses is called as part of the backwards
insn placement loop within change_insns, but if we want new uses to be
able to depend on new defs in the same change group, we need
finalize_new_accesses to be called on earlier insns first.  This is so
that when we process temporary uses and turn them into permanent uses,
we can follow the last_def link on the temporary def to ensure we end up
with a permanent use consuming a permanent def.

Bootstrapped/regtested on aarch64-linux-gnu, OK for trunk?

Thanks,
Alex

gcc/ChangeLog:

        PR target/113070
        * rtl-ssa/changes.cc (function_info::change_insns): Split out the call
        to finalize_new_accesses from the backwards placement loop, run it
        forwards in a separate loop.
So just to be explicit -- given this is adjusting the rtl-ssa infrastructure, I was going to let Richard S. own the review side -- he knows that code better than I.

Jeff

Reply via email to