[PATCH] D125270: [riscv] Remove mutation of prior vsetvli from insertion dataflow

Fraser Cormack via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 23 23:02:19 PDT 2022


frasercrmck added a comment.

I'm personally happy to see this moved out of phase 3. The fact it gets some codegen wins is definitely a bonus. I prefer it to the alternate workaround you mention.



================
Comment at: llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp:479
+/// VL and only sets VTYPE.
+static bool isVTYPEConfig(const MachineInstr &MI) {
+  if (MI.getOpcode() != RISCV::PseudoVSETVLIX0)
----------------
`isVLPreservingConfig`? I'm thinking it could to be more explicit about how it differs from the default one which we assume sets VL and VTYPE. That or `isVTYPEOnlyConfig` but I don't like that one quite as much. `isVLPreservingVSETVLI`


================
Comment at: llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp:1381
+  // dataflow at the same time without introducing inconsistencies.
+  for (MachineBasicBlock &MBB : MF) {
+    doLocalPostpass(MBB);
----------------
Don't need `{}` on this loop


================
Comment at: llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.ll:814
 ; vadd in the second block.
 ; FIXME: This currently crashes with strict asserts enabled.
 define <vscale x 4 x i32> @cross_block_mutate(<vscale x 4 x i32> %a, <vscale x 4 x i32> %b,
----------------
Is this FIXME still true with this patch?


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

https://reviews.llvm.org/D125270



More information about the llvm-commits mailing list