|
15 | 15 | #include "mlir/IR/PatternMatch.h" |
16 | 16 | #include "llvm/ADT/SmallVector.h" |
17 | 17 |
|
18 | | -#define GET_OP_CLASSES |
19 | | -#include "flang/Optimizer/Dialect/MIF/MIFOps.cpp.inc" |
20 | | - |
21 | 18 | //===----------------------------------------------------------------------===// |
22 | 19 | // NumImagesOp |
23 | 20 | //===----------------------------------------------------------------------===// |
@@ -190,71 +187,21 @@ void mif::ChangeTeamOp::build(mlir::OpBuilder &builder, |
190 | 187 | result.addAttributes(attributes); |
191 | 188 | } |
192 | 189 |
|
193 | | -mlir::ParseResult mif::ChangeTeamOp::parse(mlir::OpAsmParser &parser, |
194 | | - mlir::OperationState &result) { |
195 | | - auto &builder = parser.getBuilder(); |
196 | | - llvm::SmallVector<mlir::OpAsmParser::UnresolvedOperand> opers; |
197 | | - llvm::SmallVector<mlir::Type> types; |
198 | | - int32_t statArg = 0, errmsgArg = 0; |
199 | | - if (parser.parseOperand(opers.emplace_back())) |
200 | | - return mlir::failure(); |
201 | | - |
202 | | - if (mlir::succeeded(parser.parseOptionalKeyword("stat"))) { |
203 | | - if (*parser.parseOptionalOperand(opers.emplace_back())) |
204 | | - return mlir::failure(); |
205 | | - statArg++; |
206 | | - } |
207 | | - if (mlir::succeeded(parser.parseOptionalKeyword("errmsg"))) { |
208 | | - if (*parser.parseOptionalOperand(opers.emplace_back())) |
209 | | - return mlir::failure(); |
210 | | - errmsgArg++; |
211 | | - } |
212 | | - |
213 | | - // Set the operandSegmentSizes attribute |
214 | | - result.addAttribute(getOperandSegmentSizeAttr(), |
215 | | - builder.getDenseI32ArrayAttr({1, statArg, errmsgArg})); |
216 | | - |
217 | | - if (parser.parseColon()) |
218 | | - return mlir::failure(); |
219 | | - |
220 | | - if (parser.parseLParen()) |
221 | | - return mlir::failure(); |
222 | | - if (parser.parseTypeList(types)) |
223 | | - return mlir::failure(); |
224 | | - if (parser.parseRParen()) |
225 | | - return mlir::failure(); |
226 | | - |
227 | | - if (opers.size() != types.size()) |
228 | | - return mlir::failure(); |
229 | | - |
230 | | - if (parser.resolveOperands(opers, types, parser.getCurrentLocation(), |
231 | | - result.operands)) |
232 | | - return mlir::failure(); |
233 | | - |
234 | | - auto *body = result.addRegion(); |
235 | | - if (parser.parseRegion(*body)) |
236 | | - return mlir::failure(); |
237 | | - |
238 | | - ChangeTeamOp::ensureTerminator(*body, builder, result.location); |
239 | | - |
240 | | - if (parser.parseOptionalAttrDictWithKeyword(result.attributes)) |
| 190 | +static mlir::ParseResult parseChangeTeamOpBody(mlir::OpAsmParser &parser, |
| 191 | + mlir::Region &body) { |
| 192 | + if (parser.parseRegion(body)) |
241 | 193 | return mlir::failure(); |
242 | 194 |
|
| 195 | + auto &builder = parser.getBuilder(); |
| 196 | + mif::ChangeTeamOp::ensureTerminator(body, builder, builder.getUnknownLoc()); |
243 | 197 | return mlir::success(); |
244 | 198 | } |
245 | 199 |
|
246 | | -void mif::ChangeTeamOp::print(mlir::OpAsmPrinter &p) { |
247 | | - p << ' ' << getTeam(); |
248 | | - if (getStat()) |
249 | | - p << " stat " << getStat(); |
250 | | - if (getErrmsg()) |
251 | | - p << " errmsg " << getErrmsg(); |
252 | | - p << " : ("; |
253 | | - llvm::interleaveComma(getOperands(), p, |
254 | | - [&](mlir::Value v) { p << v.getType(); }); |
255 | | - p << ") "; |
256 | | - p.printRegion(getRegion(), /*printEntryBlockArgs=*/true, |
| 200 | +static void printChangeTeamOpBody(mlir::OpAsmPrinter &p, mif::ChangeTeamOp op, |
| 201 | + mlir::Region &body) { |
| 202 | + p.printRegion(op.getRegion(), /*printEntryBlockArgs=*/true, |
257 | 203 | /*printBlockTerminators=*/true); |
258 | | - p.printOptionalAttrDict((*this)->getAttrs(), |
259 | | - {ChangeTeamOp::getOperandSegmentSizeAttr()}); |
260 | 204 | } |
| 205 | + |
| 206 | +#define GET_OP_CLASSES |
| 207 | +#include "flang/Optimizer/Dialect/MIF/MIFOps.cpp.inc" |
0 commit comments