[Mlir-commits] [mlir] [mlir][llvm] Add builder for llvm.call_intrinsic op (PR #151967)
lonely eagle
llvmlistbot at llvm.org
Mon Aug 4 06:51:37 PDT 2025
https://github.com/linuxlonelyeagle created https://github.com/llvm/llvm-project/pull/151967
Add new builder function to make build llvm.call_intrinsic op more convenient.
>From baee0a684e5a51682f77e133067f5b886e34dd94 Mon Sep 17 00:00:00 2001
From: linuxlonelyeagle <2020382038 at qq.com>
Date: Mon, 4 Aug 2025 13:48:51 +0000
Subject: [PATCH] add builder for call intrinsic op.
---
mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td | 1 +
mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp | 8 ++++++++
mlir/lib/Target/LLVMIR/LLVMImportInterface.cpp | 2 +-
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
index 3f27f6d9ae8b7..0afe026be907e 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
@@ -2432,6 +2432,7 @@ def LLVM_CallIntrinsicOp
OpBuilder<(ins "StringAttr":$intrin, "ValueRange":$args)>,
OpBuilder<(ins "StringAttr":$intrin, "ValueRange":$args, "FastmathFlagsAttr":$fastMathFlags)>,
OpBuilder<(ins "Type": $resultType, "StringAttr":$intrin, "ValueRange":$args)>,
+ OpBuilder<(ins "TypeRange": $resultTypes, "StringAttr":$intrin, "ValueRange":$args)>,
OpBuilder<(ins "TypeRange": $resultTypes, "StringAttr":$intrin, "ValueRange":$args, "FastmathFlagsAttr":$fastMathFlags)>
];
diff --git a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
index 422039f81855a..fa286be012788 100644
--- a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
+++ b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
@@ -3790,6 +3790,14 @@ void CallIntrinsicOp::build(OpBuilder &builder, OperationState &state,
/*res_attrs=*/{});
}
+void CallIntrinsicOp::build(OpBuilder &builder, OperationState &state,
+ mlir::TypeRange resultTypes,
+ mlir::StringAttr intrin, mlir::ValueRange args) {
+ build(builder, state, resultTypes, intrin, args, FastmathFlagsAttr{},
+ /*op_bundle_operands=*/{}, /*op_bundle_tags=*/{}, /*arg_attrs=*/{},
+ /*res_attrs=*/{});
+}
+
void CallIntrinsicOp::build(OpBuilder &builder, OperationState &state,
mlir::TypeRange resultTypes,
mlir::StringAttr intrin, mlir::ValueRange args,
diff --git a/mlir/lib/Target/LLVMIR/LLVMImportInterface.cpp b/mlir/lib/Target/LLVMIR/LLVMImportInterface.cpp
index cb1f234aca50b..9f8b0a0cd4ea0 100644
--- a/mlir/lib/Target/LLVMIR/LLVMImportInterface.cpp
+++ b/mlir/lib/Target/LLVMIR/LLVMImportInterface.cpp
@@ -43,7 +43,7 @@ LogicalResult mlir::LLVMImportInterface::convertUnregisteredIntrinsic(
builder, moduleImport.translateLoc(inst->getDebugLoc()),
isa<LLVMVoidType>(resultType) ? TypeRange{} : TypeRange{resultType},
StringAttr::get(builder.getContext(), intrinName),
- ValueRange{mlirOperands}, FastmathFlagsAttr{});
+ ValueRange{mlirOperands});
moduleImport.setFastmathFlagsAttr(inst, op);
moduleImport.convertArgAndResultAttrs(inst, op);
More information about the Mlir-commits
mailing list