[Mlir-commits] [mlir] [mlir][LLVM] Remove redundant `custom<LLVMOpAttrs>` (PR #116207)
Markus Böck
llvmlistbot at llvm.org
Thu Nov 14 02:38:41 PST 2024
https://github.com/zero9178 created https://github.com/llvm/llvm-project/pull/116207
This custom printer was previously used to avoid printing fast math flags if they have default values.
This is redundant however, as `attr-dict` will already elide attributes whose default values are set, making it a noop nowadays.
>From 680ec66605e82c31ee6529ef4666c3fb46900bae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Markus=20B=C3=B6ck?= <markus.boeck02 at gmail.com>
Date: Thu, 14 Nov 2024 11:37:30 +0100
Subject: [PATCH] [mlir][LLVM] Remove redundant `custom<LLVMOpAttrs>`
This custom printer was previously used to avoid printing fast math flags if they have default values.
This is redundant however, as `attr-dict` will already elide attributes whose default values are set, making it a noop nowadays.
---
mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td | 12 ++++++------
mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td | 4 ++--
mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp | 11 -----------
3 files changed, 8 insertions(+), 19 deletions(-)
diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
index d07ebbacc60434..59174f9abc9c42 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
@@ -19,7 +19,7 @@ class LLVM_UnaryIntrOpBase<string func, Type element,
!listconcat([Pure, SameOperandsAndResultType], traits),
requiresFastmath> {
dag commonArgs = (ins LLVM_ScalarOrVectorOf<element>:$in);
- let assemblyFormat = "`(` operands `)` custom<LLVMOpAttrs>(attr-dict) `:` "
+ let assemblyFormat = "`(` operands `)` attr-dict `:` "
"functional-type(operands, results)";
}
@@ -42,7 +42,7 @@ class LLVM_BinarySameArgsIntrOpBase<string func, Type element,
requiresFastmath> {
dag commonArgs = (ins LLVM_ScalarOrVectorOf<element>:$a,
LLVM_ScalarOrVectorOf<element>:$b);
- let assemblyFormat = "`(` operands `)` custom<LLVMOpAttrs>(attr-dict) `:` "
+ let assemblyFormat = "`(` operands `)` attr-dict `:` "
"functional-type(operands, results)";
}
@@ -67,7 +67,7 @@ class LLVM_TernarySameArgsIntrOpBase<string func, Type element,
dag commonArgs = (ins LLVM_ScalarOrVectorOf<element>:$a,
LLVM_ScalarOrVectorOf<element>:$b,
LLVM_ScalarOrVectorOf<element>:$c);
- let assemblyFormat = "`(` operands `)` custom<LLVMOpAttrs>(attr-dict) `:` "
+ let assemblyFormat = "`(` operands `)` attr-dict `:` "
"functional-type(operands, results)";
}
@@ -137,7 +137,7 @@ def LLVM_PowIOp : LLVM_OneResultIntrOp<"powi", [], [0,1],
(ins LLVM_ScalarOrVectorOf<LLVM_AnyFloat>:$val,
AnySignlessInteger:$power,
DefaultValuedAttr<LLVM_FastmathFlagsAttr, "{}">:$fastmathFlags);
- let assemblyFormat = "`(` operands `)` custom<LLVMOpAttrs>(attr-dict) `:` "
+ let assemblyFormat = "`(` operands `)` attr-dict `:` "
"functional-type(operands, results)";
}
def LLVM_RintOp : LLVM_UnaryIntrOpF<"rint">;
@@ -145,7 +145,7 @@ def LLVM_NearbyintOp : LLVM_UnaryIntrOpF<"nearbyint">;
class LLVM_IntRoundIntrOpBase<string func> :
LLVM_OneResultIntrOp<func, [0], [0], [Pure]> {
let arguments = (ins LLVM_AnyFloat:$val);
- let assemblyFormat = "`(` operands `)` custom<LLVMOpAttrs>(attr-dict) `:` "
+ let assemblyFormat = "`(` operands `)` attr-dict `:` "
"functional-type(operands, results)";
}
def LLVM_LroundOp : LLVM_IntRoundIntrOpBase<"lround">;
@@ -706,7 +706,7 @@ class LLVM_VecReductionF<string mnem>
ins DefaultValuedAttr<LLVM_FastmathFlagsAttr, "{}">:$fastmathFlags);
let arguments = !con(commonArgs, fmfArg);
- let assemblyFormat = "`(` operands `)` custom<LLVMOpAttrs>(attr-dict) `:` "
+ let assemblyFormat = "`(` operands `)` attr-dict `:` "
"functional-type(operands, results)";
}
diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
index 34f3e4b33b8295..105f28066c1f5b 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
@@ -45,7 +45,7 @@ class LLVM_ArithmeticOpBase<Type type, string mnemonic,
LLVM_ScalarOrVectorOf<type>:$rhs);
let results = (outs LLVM_ScalarOrVectorOf<type>:$res);
let builders = [LLVM_OneResultOpBuilder];
- let assemblyFormat = "$lhs `,` $rhs custom<LLVMOpAttrs>(attr-dict) `:` type($res)";
+ let assemblyFormat = "$lhs `,` $rhs attr-dict `:` type($res)";
string llvmInstName = instName;
}
class LLVM_IntArithmeticOp<string mnemonic, string instName,
@@ -118,7 +118,7 @@ class LLVM_UnaryFloatArithmeticOp<Type type, string mnemonic,
DefaultValuedAttr<LLVM_FastmathFlagsAttr, "{}">:$fastmathFlags);
let results = (outs type:$res);
let builders = [LLVM_OneResultOpBuilder];
- let assemblyFormat = "$operand custom<LLVMOpAttrs>(attr-dict) `:` type($res)";
+ let assemblyFormat = "$operand attr-dict `:` type($res)";
string llvmInstName = instName;
string mlirBuilder = [{
auto op = $_builder.create<$_qualCppClassName>($_location, $operand);
diff --git a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
index d4f8c4c1faf956..aa01aba5469715 100644
--- a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
+++ b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
@@ -132,17 +132,6 @@ static auto processFMFAttr(ArrayRef<NamedAttribute> attrs) {
return filteredAttrs;
}
-static ParseResult parseLLVMOpAttrs(OpAsmParser &parser,
- NamedAttrList &result) {
- return parser.parseOptionalAttrDict(result);
-}
-
-static void printLLVMOpAttrs(OpAsmPrinter &printer, Operation *op,
- DictionaryAttr attrs) {
- auto filteredAttrs = processFMFAttr(attrs.getValue());
- printer.printOptionalAttrDict(filteredAttrs);
-}
-
/// Verifies `symbol`'s use in `op` to ensure the symbol is a valid and
/// fully defined llvm.func.
static LogicalResult verifySymbolAttrUse(FlatSymbolRefAttr symbol,
More information about the Mlir-commits
mailing list