[PATCH] D159193: [AArch64][SME] Disable remat of VL-dependent ops when function changes streaming mode.

Sander de Smalen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 31 06:59:05 PDT 2023


sdesmalen added a comment.

In D159193#4628454 <https://reviews.llvm.org/D159193#4628454>, @aemerson wrote:

> I have a slight concern that relying on the MFI's flag being set on a DAG codegen call is brittle, in case in future there are other pathways that change streaming mode. Scanning the function seems a more reliable way to set the flag, but for now this is ok with me.

Thanks for pointing out, I had a patch for that which I forgot to push. 8f469bfedc907a391da7207ba248afdb7e8c555d <https://reviews.llvm.org/rG8f469bfedc907a391da7207ba248afdb7e8c555d> ensures that any streaming-mode changes are always done through the function `changeStreamingMode`.



================
Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:8540
+                   AArch64::PPRRegClass.hasSubClassEq(RC);
+          assert(!MO.getReg().isVirtual() && "Expected a phsyical register");
+          return AArch64::ZPRRegClass.contains(MO.getReg()) ||
----------------
aemerson wrote:
> physical
I've actually simplified it with an explicit check for `isVirtual`, rather than relying on `getRegClassOrNull` and then use `getRegClass()` instead.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D159193



More information about the llvm-commits mailing list