[PATCH] D107677: Prevent machine licm if remattable with a vreg use

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 16 11:40:14 PDT 2021


dmgreen accepted this revision.
dmgreen added a comment.
This revision is now accepted and ready to land.

In D107677#2941702 <https://reviews.llvm.org/D107677#2941702>, @rampitec wrote:

> In D107677#2941270 <https://reviews.llvm.org/D107677#2941270>, @dmgreen wrote:
>
>> And now has a bad day:
>
>     LE       lr,#innerloop
>   ...
>     VCTP lr
>
> Is that after this patch or after D106408 <https://reviews.llvm.org/D106408>? It looks more like rematerialization and not hoisting.

Oh I meant

    VCTP r0
  outerloop:

It's hoisting out of the outer loop. I don't consider the regressions to be the fault of this patch though.

If there are no other comments, LGTM



================
Comment at: llvm/lib/CodeGen/MachineLICM.cpp:668
+/// rematerialize it in this scenario. In that case we do not want to hoist such
+/// instruction out of the loop in a believe RA will sink it back if needed.
+bool MachineLICMBase::isTriviallyReMaterializable(const MachineInstr &MI,
----------------
believe -> belief


================
Comment at: llvm/lib/CodeGen/MachineLICM.cpp:1179
 
   // Rematerializable instructions should always be hoisted since the register
   // allocator can just pull them down again when needed.
----------------
since the register allocator -> providing the register allocator


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D107677/new/

https://reviews.llvm.org/D107677



More information about the llvm-commits mailing list