[Mlir-commits] [mlir] [MLIR][NVVM][Refactor] Refactor intrinsic lowering for NVVM Ops (PR #157079)
Srinivasa Ravi
llvmlistbot at llvm.org
Tue Sep 16 10:09:56 PDT 2025
================
@@ -55,10 +55,21 @@ enum NVVMMemorySpace {
kSharedClusterMemorySpace = 7,
};
-/// A pair type of LLVM's Intrinsic ID and args (which are llvm values).
-/// This type is returned by the getIntrinsicIDAndArgs() methods.
-using IDArgPair =
- std::pair<llvm::Intrinsic::ID, llvm::SmallVector<llvm::Value *>>;
+/// A struct of LLVM's Intrinsic ID, args (which are llvm values),
+/// and args types (which are llvm types).
+/// Args types are only required for overloaded intrinsics to provide the
+/// correct argument types to the createIntrinsicCall() method.
+/// This type is returned by the getIIDAndArgsWithTypes() methods.
+struct IIDArgsWithTypes {
+ IIDArgsWithTypes(llvm::Intrinsic::ID id,
----------------
Wolfram70 wrote:
This is because when returning this struct with the ternary `?` operator, aggreagate initialization doesn't work and gives an error, so I added this constructor to explicitly construct the object in those cases instead.
https://github.com/llvm/llvm-project/pull/157079
More information about the Mlir-commits
mailing list