@@ -2823,86 +2823,6 @@ SmallVector<OpFoldResult> transform::TileUsingForOp::getMixedSizes() {
28232823 return results;
28242824}
28252825
2826- // We want to parse `DenseI64ArrayAttr` using the short form without the
2827- // `array` prefix to be consistent in the IR with `parseDynamicIndexList`.
2828- ParseResult parseOptionalInterchange (OpAsmParser &parser,
2829- OperationState &result) {
2830- if (failed (parser.parseOptionalKeyword (" interchange" )))
2831- return success ();
2832- if (failed (parser.parseEqual ()))
2833- return failure ();
2834- result.addAttribute (
2835- transform::TileUsingForOp::getInterchangeAttrName (result.name ),
2836- DenseI64ArrayAttr::parse (parser, Type{}));
2837- return success ();
2838- }
2839-
2840- void printOptionalInterchange (OpAsmPrinter &p,
2841- ArrayRef<int64_t > interchangeVals) {
2842- if (!interchangeVals.empty ()) {
2843- p << " interchange = [" ;
2844- llvm::interleaveComma (interchangeVals, p,
2845- [&](int64_t integer) { p << integer; });
2846- p << " ]" ;
2847- }
2848- }
2849-
2850- ParseResult transform::TileUsingForOp::parse (OpAsmParser &parser,
2851- OperationState &result) {
2852- OpAsmParser::UnresolvedOperand target;
2853- SmallVector<OpAsmParser::UnresolvedOperand> dynamicSizes;
2854- DenseI64ArrayAttr staticSizes;
2855- FunctionType functionalType;
2856- llvm::SMLoc operandLoc;
2857- DenseBoolArrayAttr scalableVals;
2858-
2859- if (parser.parseOperand (target) || parser.getCurrentLocation (&operandLoc) ||
2860- parseDynamicIndexList (parser, dynamicSizes, staticSizes, scalableVals) ||
2861- parseOptionalInterchange (parser, result) ||
2862- parser.parseOptionalAttrDict (result.attributes ) ||
2863- parser.parseColonType (functionalType))
2864- return ParseResult::failure ();
2865-
2866- size_t numExpectedLoops =
2867- staticSizes.size () - llvm::count (staticSizes.asArrayRef (), 0 );
2868- if (functionalType.getNumResults () != numExpectedLoops + 1 ) {
2869- return parser.emitError (parser.getNameLoc ())
2870- << " expected " << (numExpectedLoops + 1 ) << " result type(s)" ;
2871- }
2872- if (functionalType.getNumInputs () != dynamicSizes.size () + 1 ) {
2873- return parser.emitError (operandLoc)
2874- << " expected " << dynamicSizes.size () + 1 << " operand type(s)" ;
2875- }
2876- if (parser.resolveOperand (target, functionalType.getInputs ().front (),
2877- result.operands ) ||
2878- parser.resolveOperands (dynamicSizes,
2879- functionalType.getInputs ().drop_front (),
2880- operandLoc, result.operands )) {
2881- return failure ();
2882- }
2883-
2884- result.addAttribute (getScalableSizesAttrName (result.name ), scalableVals);
2885-
2886- result.addAttribute (getStaticSizesAttrName (result.name ), staticSizes);
2887- result.addTypes (functionalType.getResults ());
2888- return success ();
2889- }
2890-
2891- void TileUsingForOp::print (OpAsmPrinter &p) {
2892- p << ' ' << getTarget ();
2893- printDynamicIndexList (p, getOperation (), getDynamicSizes (), getStaticSizes (),
2894- /* valueTypes=*/ {}, getScalableSizesAttr (),
2895- OpAsmParser::Delimiter::Square);
2896- printOptionalInterchange (p, getInterchange ());
2897- p.printOptionalAttrDict (
2898- (*this )->getAttrs (),
2899- /* elidedAttrs=*/ {getInterchangeAttrName (getOperation ()->getName ()),
2900- getScalableSizesAttrName (getOperation ()->getName ()),
2901- getStaticSizesAttrName (getOperation ()->getName ())});
2902- p << " : " ;
2903- p.printFunctionalType (getOperands ().getTypes (), getResults ().getTypes ());
2904- }
2905-
29062826void transform::TileUsingForOp::getEffects (
29072827 SmallVectorImpl<MemoryEffects::EffectInstance> &effects) {
29082828 consumesHandle (getTarget (), effects);
@@ -3219,80 +3139,6 @@ transform::VectorizeChildrenAndApplyPatternsOp::applyToOne(
32193139// VectorizeOp
32203140// ===----------------------------------------------------------------------===//
32213141
3222- static const StringLiteral kVectorSizesKeyword = " vector_sizes" ;
3223-
3224- ParseResult transform::VectorizeOp::parse (OpAsmParser &parser,
3225- OperationState &result) {
3226- OpAsmParser::UnresolvedOperand target;
3227- SmallVector<OpAsmParser::UnresolvedOperand> dynamicSizes;
3228- DenseI64ArrayAttr staticSizes;
3229- SmallVector<Type> operandTypes;
3230- llvm::SMLoc operandLoc;
3231- DenseBoolArrayAttr scalableVals;
3232-
3233- if (parser.parseOperand (target) || parser.getCurrentLocation (&operandLoc))
3234- return ParseResult::failure ();
3235-
3236- if (succeeded (parser.parseOptionalKeyword (kVectorSizesKeyword ))) {
3237- if (failed (parseDynamicIndexList (parser, dynamicSizes, staticSizes,
3238- scalableVals)))
3239- return ParseResult::failure ();
3240- }
3241-
3242- if (succeeded (parser.parseOptionalKeyword (
3243- getVectorizeNdExtractAttrName (result.name ))))
3244- result.addAttribute (getVectorizeNdExtractAttrName (result.name ),
3245- parser.getBuilder ().getUnitAttr ());
3246-
3247- if (parser.parseOptionalAttrDict (result.attributes ) ||
3248- parser.parseColonTypeList (operandTypes))
3249- return ParseResult::failure ();
3250-
3251- if (operandTypes.size () != dynamicSizes.size () + 1 ) {
3252- return parser.emitError (operandLoc)
3253- << " expected " << dynamicSizes.size () + 1 << " operand type(s)" ;
3254- }
3255- if (parser.resolveOperand (target, operandTypes.front (), result.operands ) ||
3256- parser.resolveOperands (dynamicSizes, ArrayRef (operandTypes).drop_front (),
3257- operandLoc, result.operands )) {
3258- return failure ();
3259- }
3260-
3261- if (scalableVals)
3262- result.addAttribute (getScalableSizesAttrName (result.name ), scalableVals);
3263- if (staticSizes)
3264- result.addAttribute (getStaticVectorSizesAttrName (result.name ), staticSizes);
3265-
3266- return success ();
3267- }
3268-
3269- void transform::VectorizeOp::print (OpAsmPrinter &p) {
3270- p << ' ' << getTarget () << ' ' ;
3271- if (!getMixedVectorSizes ().empty ()) {
3272- p << kVectorSizesKeyword << ' ' ;
3273- printDynamicIndexList (p, getOperation (), getVectorSizes (),
3274- getStaticVectorSizesAttr (),
3275- /* valueTypes=*/ {}, getScalableSizesAttr (),
3276- OpAsmParser::Delimiter::Square);
3277- }
3278-
3279- if (getVectorizeNdExtract ())
3280- p << getVectorizeNdExtractAttrName () << ' ' ;
3281-
3282- p.printOptionalAttrDict (
3283- (*this )->getAttrs (),
3284- /* elidedAttrs=*/ {
3285- getScalableSizesAttrName (getOperation ()->getName ()),
3286- getStaticVectorSizesAttrName (getOperation ()->getName ())});
3287- p << " : " ;
3288- p << getTarget ().getType ();
3289- if (!getVectorSizes ().empty ()) {
3290- p << " , " ;
3291- llvm::interleaveComma (getVectorSizes (), p,
3292- [&](Value operand) { p << operand.getType (); });
3293- }
3294- }
3295-
32963142DiagnosedSilenceableFailure transform::VectorizeOp::apply (
32973143 transform::TransformRewriter &rewriter,
32983144 mlir::transform::TransformResults &transformResults,
0 commit comments