[PATCH] D154766: [GlobalISel] convergent intrinsics

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 28 04:38:55 PDT 2023


arsenm added a comment.

LGTM except for the documentation sentence no longer making sense



================
Comment at: llvm/docs/GlobalISel/GenericOpcode.rst:868
 
-  Unlike SelectionDAG, there is no _VOID variant. Both of these are permitted
-  to have zero, one, or multiple results.
+  Unlike SelectionDAG, intrinsics are permitted to have zero, one, or multiple results.
+
----------------
If you drop the "is no void variant" part, the "Unlike SelectionDAG" part doesn't make sense. Either preserve the first sentence entirely or drop it


================
Comment at: llvm/lib/CodeGen/MachineVerifier.cpp:971
+        MF->getFunction().getContext(), static_cast<Intrinsic::ID>(IntrID));
+    bool DeclHasSideEffects = !Attrs.getMemoryEffects().doesNotAccessMemory();
+    if (NoSideEffects && DeclHasSideEffects) {
----------------
In principle we could have local call site attributes override, but it requires more work to really support 


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp:4827-4829
+  auto RCP = B.buildIntrinsic(Intrinsic::amdgcn_rcp, {S32})
+                 .addUse(Mul0.getReg(0))
+                 .setMIFlags(Flags);
----------------
Really we should add buildIntrinsic that takes operand lists like other buildInstr wrappers


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D154766



More information about the llvm-commits mailing list