File tree Expand file tree Collapse file tree 1 file changed +6
-7
lines changed
mlir/lib/Dialect/Affine/IR Expand file tree Collapse file tree 1 file changed +6
-7
lines changed Original file line number Diff line number Diff line change @@ -294,12 +294,10 @@ bool mlir::affine::isValidDim(Value value) {
294
294
return isValidDim (value, getAffineScope (defOp));
295
295
296
296
// This value has to be a block argument for an op that has the
297
- // `AffineScope` trait or an induction var of an affine.for or
298
- // affine.parallel.
299
- if (isAffineInductionVar (value))
300
- return true ;
297
+ // `AffineScope` trait or for an affine.for or affine.parallel.
301
298
auto *parentOp = llvm::cast<BlockArgument>(value).getOwner ()->getParentOp ();
302
- return parentOp && parentOp->hasTrait <OpTrait::AffineScope>();
299
+ return parentOp && (parentOp->hasTrait <OpTrait::AffineScope>() ||
300
+ isa<AffineForOp, AffineParallelOp>(parentOp));
303
301
}
304
302
305
303
// Value can be used as a dimension id iff it meets one of the following
@@ -318,9 +316,10 @@ bool mlir::affine::isValidDim(Value value, Region *region) {
318
316
319
317
auto *op = value.getDefiningOp ();
320
318
if (!op) {
321
- // This value has to be an induction var for an affine.for or an
319
+ // This value has to be a block argument for an affine.for or an
322
320
// affine.parallel.
323
- return isAffineInductionVar (value);
321
+ auto *parentOp = llvm::cast<BlockArgument>(value).getOwner ()->getParentOp ();
322
+ return isa<AffineForOp, AffineParallelOp>(parentOp);
324
323
}
325
324
326
325
// Affine apply operation is ok if all of its operands are ok.
You can’t perform that action at this time.
0 commit comments