Lines Matching defs:forallOp
293 scf::ForallOp forallOp) {
294 if (!forallOp.getMapping().has_value()) {
295 return definiteFailureHelper(transformOp, forallOp,
299 bool hasBlockMapping = llvm::any_of(forallOp.getMapping().value(),
302 forallOp.getMapping().value(), llvm::IsaPred<GPUWarpgroupMappingAttr>);
303 bool hasWarpMapping = llvm::any_of(forallOp.getMapping().value(),
305 bool hasThreadMapping = llvm::any_of(forallOp.getMapping().value(),
314 transformOp, forallOp,
320 transformOp, forallOp,
325 return definiteFailureHelper(transformOp, forallOp,
331 for (Attribute map : forallOp.getMapping()->getValue()) {
334 transformOp, forallOp,
344 if (llvm::any_of(forallOp.getMapping()->getValue(), isLinear) &&
345 !llvm::all_of(forallOp.getMapping()->getValue(), isLinear)) {
347 transformOp, forallOp,
357 scf::ForallOp forallOp) {
360 checkMappingAttributeTypes<MappingKindType>(transformOp, forallOp);
365 if (!forallOp.isNormalized())
366 return definiteFailureHelper(transformOp, forallOp,
368 if (forallOp.getNumResults() > 0)
369 return definiteFailureHelper(transformOp, forallOp,
372 forallOp.getMapping()->getValue().front())
380 if (forallOp.getRank() > maxNumMappingsSupported) {
381 return definiteFailureHelper(transformOp, forallOp,
387 getConstantIntValues(forallOp.getMixedUpperBound());
388 if (!forallOp.isNormalized() || !numParallelIterations.has_value()) {
390 transformOp, forallOp,
416 scf::ForallOp forallOp, ArrayRef<int64_t> availableMappingSizes,
422 getConstantIntValues(forallOp.getMixedUpperBound());
423 assert(forallOp.isNormalized() && numParallelIterations.has_value() &&
427 forallMappingAttrs.insert(forallOp.getMapping()->getValue().begin(),
428 forallOp.getMapping()->getValue().end());
468 Location loc = forallOp.getLoc();
470 rewriter.setInsertionPoint(forallOp);
487 forallOp.getInductionVars(),
488 forallMappingAttrs.getArrayRef().take_front(forallOp.getRank()))) {
519 transformOp, forallOp,
538 // Step 6. Move the body of forallOp.
540 rewriter.eraseOp(forallOp.getTerminator());
552 targetBlock = forallOp->getBlock();
555 Block &sourceBlock = forallOp.getRegion().front();
560 for (Value loopIndex : forallOp.getInductionVars()) {
566 rewriter.eraseOp(forallOp);
584 scf::ForallOp forallOp, SmallVectorImpl<int64_t> &gridDims,
593 verifyGpuMapping<BlockMappingKind>(transformOp, forallOp);
598 Location loc = forallOp.getLoc();
599 Block *parentBlock = forallOp->getBlock();
611 rewriter, transformOp, forallOp,
639 auto walkResult = target->walk([&](scf::ForallOp forallOp) {
640 if (forallOp->getParentOfType<scf::ForallOp>())
645 topLevelForallOp = forallOp;
735 std::optional<TransformOpInterface> transformOp, scf::ForallOp forallOp,
740 transformOp, forallOp,
748 transformOp, forallOp,
761 scf::ForallOp forallOp, ArrayRef<int64_t> blockSizes,
764 forallOp.getMapping()->getValue().front());
769 getConstantIntValues((forallOp.getMixedUpperBound()));
770 if (!forallOp.isNormalized() || !numParallelIterations.has_value()) {
772 transformOp, forallOp,
782 checkMappingSpec(transformOp, forallOp, numParallelIterations.value(),
788 MLIRContext *ctx = forallOp.getContext();
808 scf::ForallOp forallOp, ArrayRef<int64_t> blockSizes, int64_t warpSize,
816 verifyGpuMapping<ThreadMappingKind>(transformOp, forallOp);
825 transformOp, forallOp, blockSizes, warpSize, gpuIdBuilder);
830 Location loc = forallOp.getLoc();
833 rewriter.setInsertionPointAfter(forallOp);
836 rewriter, transformOp, forallOp, blockSizes, rewriteResult, gpuIdBuilder);
860 WalkResult walkResult = target->walk([&](scf::ForallOp forallOp) {
862 rewriter, transformOp, forallOp, blockDims, warpSize,