Revert "[ODS/AsmParser] Don't pass MLIRContext with DialectAsmParser."
This reverts commit 4b32f8bac40dcd1535bfe95757c3de0911bf6d1a.
Seems like the build is broken with -DDBUILD_SHARED_LIBS=ON
GitOrigin-RevId: 3310e0020cf1bc4c17acf9d404274325007af326
diff --git a/lib/Optimizer/Dialect/FIRType.cpp b/lib/Optimizer/Dialect/FIRType.cpp
index fb3fba6..2030e0b 100644
--- a/lib/Optimizer/Dialect/FIRType.cpp
+++ b/lib/Optimizer/Dialect/FIRType.cpp
@@ -33,7 +33,7 @@
int kind = 0;
if (parser.parseLess() || parser.parseInteger(kind) || parser.parseGreater())
return {};
- return TYPE::get(parser.getContext(), kind);
+ return TYPE::get(parser.getBuilder().getContext(), kind);
}
template <typename TYPE>
@@ -117,7 +117,8 @@
if (parser.parseKeyword(&typeTag))
return {};
mlir::Type genType;
- auto parseResult = generatedTypeParser(parser, typeTag, genType);
+ auto parseResult = generatedTypeParser(parser.getBuilder().getContext(),
+ parser, typeTag, genType);
if (parseResult.hasValue())
return genType;
parser.emitError(parser.getNameLoc(), "unknown fir type: ") << typeTag;
@@ -258,11 +259,12 @@
//===----------------------------------------------------------------------===//
// `boxproc` `<` return-type `>`
-mlir::Type BoxProcType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type BoxProcType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
mlir::Type ty;
if (parser.parseLess() || parser.parseType(ty) || parser.parseGreater())
return {};
- return get(parser.getContext(), ty);
+ return get(context, ty);
}
void fir::BoxProcType::print(mlir::DialectAsmPrinter &printer) const {
@@ -291,7 +293,8 @@
//===----------------------------------------------------------------------===//
// `box` `<` type (',' affine-map)? `>`
-mlir::Type fir::BoxType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::BoxType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
mlir::Type ofTy;
if (parser.parseLess() || parser.parseType(ofTy))
return {};
@@ -327,7 +330,8 @@
// BoxCharType
//===----------------------------------------------------------------------===//
-mlir::Type fir::BoxCharType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::BoxCharType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseKindSingleton<fir::BoxCharType>(parser);
}
@@ -349,7 +353,8 @@
//===----------------------------------------------------------------------===//
// `char` `<` kind [`,` `len`] `>`
-mlir::Type fir::CharacterType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::CharacterType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
int kind = 0;
if (parser.parseLess() || parser.parseInteger(kind))
return {};
@@ -363,7 +368,7 @@
}
if (parser.parseGreater())
return {};
- return get(parser.getContext(), kind, len);
+ return get(context, kind, len);
}
void fir::CharacterType::print(mlir::DialectAsmPrinter &printer) const {
@@ -383,7 +388,8 @@
// ComplexType
//===----------------------------------------------------------------------===//
-mlir::Type fir::ComplexType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::ComplexType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseKindSingleton<fir::ComplexType>(parser);
}
@@ -400,7 +406,8 @@
//===----------------------------------------------------------------------===//
// `heap` `<` type `>`
-mlir::Type fir::HeapType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::HeapType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseTypeSingleton<HeapType>(parser);
}
@@ -422,7 +429,8 @@
//===----------------------------------------------------------------------===//
// `int` `<` kind `>`
-mlir::Type fir::IntegerType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::IntegerType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseKindSingleton<fir::IntegerType>(parser);
}
@@ -435,7 +443,8 @@
//===----------------------------------------------------------------------===//
// `logical` `<` kind `>`
-mlir::Type fir::LogicalType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::LogicalType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseKindSingleton<fir::LogicalType>(parser);
}
@@ -448,7 +457,8 @@
//===----------------------------------------------------------------------===//
// `ptr` `<` type `>`
-mlir::Type fir::PointerType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::PointerType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseTypeSingleton<fir::PointerType>(parser);
}
@@ -469,7 +479,8 @@
//===----------------------------------------------------------------------===//
// `real` `<` kind `>`
-mlir::Type fir::RealType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::RealType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseKindSingleton<fir::RealType>(parser);
}
@@ -492,11 +503,12 @@
// `type` `<` name
// (`(` id `:` type (`,` id `:` type)* `)`)?
// (`{` id `:` type (`,` id `:` type)* `}`)? '>'
-mlir::Type fir::RecordType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::RecordType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
llvm::StringRef name;
if (parser.parseLess() || parser.parseKeyword(&name))
return {};
- RecordType result = RecordType::get(parser.getContext(), name);
+ RecordType result = RecordType::get(parser.getBuilder().getContext(), name);
RecordType::TypeList lenParamList;
if (!parser.parseOptionalLParen()) {
@@ -619,7 +631,8 @@
//===----------------------------------------------------------------------===//
// `ref` `<` type `>`
-mlir::Type fir::ReferenceType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::ReferenceType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseTypeSingleton<fir::ReferenceType>(parser);
}
@@ -642,7 +655,8 @@
// `array` `<` `*` | bounds (`x` bounds)* `:` type (',' affine-map)? `>`
// bounds ::= `?` | int-lit
-mlir::Type fir::SequenceType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::SequenceType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
if (parser.parseLess())
return {};
SequenceType::Shape shape;
@@ -661,7 +675,7 @@
parser.emitError(parser.getNameLoc(), "expecting affine map");
return {};
}
- return SequenceType::get(parser.getContext(), shape, eleTy, map);
+ return SequenceType::get(context, shape, eleTy, map);
}
void fir::SequenceType::print(mlir::DialectAsmPrinter &printer) const {
@@ -731,7 +745,8 @@
// ShapeType
//===----------------------------------------------------------------------===//
-mlir::Type fir::ShapeType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::ShapeType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseRankSingleton<fir::ShapeType>(parser);
}
@@ -743,7 +758,8 @@
// ShapeShiftType
//===----------------------------------------------------------------------===//
-mlir::Type fir::ShapeShiftType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::ShapeShiftType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseRankSingleton<fir::ShapeShiftType>(parser);
}
@@ -755,7 +771,8 @@
// ShiftType
//===----------------------------------------------------------------------===//
-mlir::Type fir::ShiftType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::ShiftType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseRankSingleton<fir::ShiftType>(parser);
}
@@ -768,7 +785,8 @@
//===----------------------------------------------------------------------===//
// `slice` `<` rank `>`
-mlir::Type fir::SliceType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::SliceType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseRankSingleton<fir::SliceType>(parser);
}
@@ -781,7 +799,8 @@
//===----------------------------------------------------------------------===//
// `tdesc` `<` type `>`
-mlir::Type fir::TypeDescType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::TypeDescType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
return parseTypeSingleton<fir::TypeDescType>(parser);
}
@@ -805,7 +824,8 @@
//===----------------------------------------------------------------------===//
// `vector` `<` len `:` type `>`
-mlir::Type fir::VectorType::parse(mlir::DialectAsmParser &parser) {
+mlir::Type fir::VectorType::parse(mlir::MLIRContext *context,
+ mlir::DialectAsmParser &parser) {
int64_t len = 0;
mlir::Type eleTy;
if (parser.parseLess() || parser.parseInteger(len) || parser.parseColon() ||