[Mlir-commits] [mlir] fbbbd65 - [MLIR] correct return type of parse() functions (#120180)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Tue Dec 17 09:06:59 PST 2024
Author: Timothy Hoffman
Date: 2024-12-17T09:06:55-08:00
New Revision: fbbbd65b2573dc92c3c2272ce57da29cf8227a35
URL: https://github.com/llvm/llvm-project/commit/fbbbd65b2573dc92c3c2272ce57da29cf8227a35
DIFF: https://github.com/llvm/llvm-project/commit/fbbbd65b2573dc92c3c2272ce57da29cf8227a35.diff
LOG: [MLIR] correct return type of parse() functions (#120180)
The `parseX()` functions that are defined to support `custom<X>` in
`assemblyFormat` should return `ParseResult` rather than
`LogicalResult`. The `ParseResult` type is necessary due to tablegen
generating code that expects this type within an Op `parseX()` function.
Added:
Modified:
mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
mlir/test/lib/Dialect/Test/TestTypes.cpp
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp b/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
index ed2d81ee65eb4a..8e36638d6e5453 100644
--- a/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
+++ b/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
@@ -2114,8 +2114,8 @@ LogicalResult ObjectAttr::verify(function_ref<InFlightDiagnostic()> emitError,
}
namespace {
-LogicalResult parseObject(AsmParser &odsParser, CompilationTarget &format,
- StringAttr &object) {
+ParseResult parseObject(AsmParser &odsParser, CompilationTarget &format,
+ StringAttr &object) {
std::optional<CompilationTarget> formatResult;
StringRef enumKeyword;
auto loc = odsParser.getCurrentLocation();
diff --git a/mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp b/mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
index ee4e344674a67e..c7ddc1b36f4d4f 100644
--- a/mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
+++ b/mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
@@ -27,8 +27,8 @@ using namespace mlir::LLVM;
/// Parses DWARF expression arguments with respect to the DWARF operation
/// opcode. Some DWARF expression operations have a specific number of operands
/// and may appear in a textual form.
-static LogicalResult parseExpressionArg(AsmParser &parser, uint64_t opcode,
- SmallVector<uint64_t> &args);
+static ParseResult parseExpressionArg(AsmParser &parser, uint64_t opcode,
+ SmallVector<uint64_t> &args);
/// Prints DWARF expression arguments with respect to the specific DWARF
/// operation. Some operands are printed in their textual form.
@@ -144,8 +144,8 @@ DIExpressionAttr DIExpressionAttr::get(MLIRContext *context) {
return get(context, ArrayRef<DIExpressionElemAttr>({}));
}
-LogicalResult parseExpressionArg(AsmParser &parser, uint64_t opcode,
- SmallVector<uint64_t> &args) {
+ParseResult parseExpressionArg(AsmParser &parser, uint64_t opcode,
+ SmallVector<uint64_t> &args) {
auto operandParser = [&]() -> LogicalResult {
uint64_t operand = 0;
if (!args.empty() && opcode == llvm::dwarf::DW_OP_LLVM_convert) {
diff --git a/mlir/test/lib/Dialect/Test/TestTypes.cpp b/mlir/test/lib/Dialect/Test/TestTypes.cpp
index 1593b6d7d7534b..6e31bb71d04d80 100644
--- a/mlir/test/lib/Dialect/Test/TestTypes.cpp
+++ b/mlir/test/lib/Dialect/Test/TestTypes.cpp
@@ -90,14 +90,14 @@ static llvm::hash_code test::hash_value(const FieldInfo &fi) { // NOLINT
// TestCustomType
//===----------------------------------------------------------------------===//
-static LogicalResult parseCustomTypeA(AsmParser &parser, int &aResult) {
+static ParseResult parseCustomTypeA(AsmParser &parser, int &aResult) {
return parser.parseInteger(aResult);
}
static void printCustomTypeA(AsmPrinter &printer, int a) { printer << a; }
-static LogicalResult parseCustomTypeB(AsmParser &parser, int a,
- std::optional<int> &bResult) {
+static ParseResult parseCustomTypeB(AsmParser &parser, int a,
+ std::optional<int> &bResult) {
if (a < 0)
return success();
for (int i : llvm::seq(0, a))
@@ -116,7 +116,7 @@ static void printCustomTypeB(AsmPrinter &printer, int a, std::optional<int> b) {
printer << *b;
}
-static LogicalResult parseFooString(AsmParser &parser, std::string &foo) {
+static ParseResult parseFooString(AsmParser &parser, std::string &foo) {
std::string result;
if (parser.parseString(&result))
return failure();
@@ -128,7 +128,7 @@ static void printFooString(AsmPrinter &printer, StringRef foo) {
printer << '"' << foo << '"';
}
-static LogicalResult parseBarString(AsmParser &parser, StringRef foo) {
+static ParseResult parseBarString(AsmParser &parser, StringRef foo) {
return parser.parseKeyword(foo);
}
More information about the Mlir-commits
mailing list