[Mlir-commits] [mlir] [mlir][llvm] Add builder for llvm.call_intrinsic op (PR #151967)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon Aug 4 06:52:13 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
@llvm/pr-subscribers-mlir-llvm
Author: lonely eagle (linuxlonelyeagle)
<details>
<summary>Changes</summary>
Add new builder function to make build llvm.call_intrinsic op more convenient.
---
Full diff: https://github.com/llvm/llvm-project/pull/151967.diff
3 Files Affected:
- (modified) mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td (+1)
- (modified) mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp (+8)
- (modified) mlir/lib/Target/LLVMIR/LLVMImportInterface.cpp (+1-1)
``````````diff
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);
``````````
</details>
https://github.com/llvm/llvm-project/pull/151967
More information about the Mlir-commits
mailing list