| /llvm-project-15.0.7/flang/lib/Optimizer/Transforms/ |
| H A D | MemRefDataFlowOpt.cpp | 46 llvm::Optional<WriteOp> findStoreToForward(ReadOp loadOp, in findStoreToForward() argument 51 if (domInfo->dominates(storeOp, loadOp)) in findStoreToForward() 78 << "load " << loadOp << " has " << candidateSet.size() in findStoreToForward() 86 for (auto &loadOp : loadOps) { in findReadForWrite() local 87 if (domInfo->dominates(storeOp, loadOp)) in findReadForWrite() 88 return loadOp; in findReadForWrite() 104 f.walk([&](fir::LoadOp loadOp) { in runOnOperation() argument 106 loadOp, getSpecificUsers<fir::StoreOp>(loadOp.getMemref())); in runOnOperation() 110 << " erasing load " << loadOp in runOnOperation() 112 loadOp.getResult().replaceAllUsesWith(storeOp.getValue()); in runOnOperation() [all …]
|
| H A D | AffinePromotion.cpp | 137 for (auto loadOp : loopOperation.getOps<fir::LoadOp>()) in analyzeMemoryAccess() local 138 if (!analyzeReference(loadOp.getMemref(), loadOp)) in analyzeMemoryAccess() 415 static void rewriteLoad(fir::LoadOp loadOp, mlir::PatternRewriter &rewriter) { in rewriteLoad() argument 416 rewriter.setInsertionPoint(loadOp); in rewriteLoad() 417 auto affineOps = createAffineOps(loadOp.getMemref(), rewriter); in rewriteLoad() 419 loadOp, affineOps.second.getResult(), affineOps.first.getResult()); in rewriteLoad()
|
| H A D | ArrayValueCopy.cpp | 1097 auto *loadOp = useMap.lookup(op); in referenceToClone() local 1098 auto load = mlir::cast<ArrayLoadOp>(loadOp); in referenceToClone() 1100 rewriter.setInsertionPoint(loadOp); in referenceToClone() 1118 auto *storeOp = useMap.lookup(loadOp); in referenceToClone() 1140 auto *loadOp = useMap.lookup(op); in materializeAssignment() local 1141 auto load = mlir::cast<ArrayLoadOp>(loadOp); in materializeAssignment() 1143 if (analysis.hasPotentialConflict(loadOp)) { in materializeAssignment() 1148 rewriter.setInsertionPoint(loadOp); in materializeAssignment() 1167 auto *storeOp = useMap.lookup(loadOp); in materializeAssignment()
|
| /llvm-project-15.0.7/mlir/lib/Dialect/MemRef/Transforms/ |
| H A D | FoldSubViewOps.cpp | 137 LogicalResult matchAndRewrite(OpTy loadOp, 141 void replaceOp(OpTy loadOp, memref::SubViewOp subViewOp, 163 LoadOpTy loadOp, memref::SubViewOp subViewOp, ArrayRef<Value> sourceIndices, in replaceOp() argument 165 rewriter.replaceOpWithNewOp<LoadOpTy>(loadOp, subViewOp.getSource(), in replaceOp() 211 LoadOpOfSubViewFolder<OpTy>::matchAndRewrite(OpTy loadOp, in matchAndRewrite() argument 214 getMemRefOperand(loadOp).template getDefiningOp<memref::SubViewOp>(); in matchAndRewrite() 219 if (failed(resolveSourceIndices(loadOp.getLoc(), rewriter, subViewOp, in matchAndRewrite() 220 loadOp.getIndices(), sourceIndices))) in matchAndRewrite() 223 replaceOp(loadOp, subViewOp, sourceIndices, rewriter); in matchAndRewrite()
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Affine/Utils/ |
| H A D | LoopFusionUtils.cpp | 42 if (auto loadOp = dyn_cast<AffineReadOpInterface>(op)) { in getLoadAndStoreMemRefAccesses() local 43 if (values.count(loadOp.getMemRef()) == 0) in getLoadAndStoreMemRefAccesses() 44 values[loadOp.getMemRef()] = false; in getLoadAndStoreMemRefAccesses() 56 if (auto loadOp = dyn_cast<AffineReadOpInterface>(op)) { in isDependentLoadOrStoreOp() local 57 return values.count(loadOp.getMemRef()) > 0 && values[loadOp.getMemRef()]; in isDependentLoadOrStoreOp() 208 auto loadOp = dyn_cast<AffineReadOpInterface>(dstOp); in getMaxLoopDepth() local 209 Value memref = loadOp ? loadOp.getMemRef() in getMaxLoopDepth() 616 if (auto loadOp = dyn_cast<AffineReadOpInterface>(user)) { in getFusionComputeCost() local 662 if (auto loadOp = dyn_cast<AffineReadOpInterface>(op)) in gatherProducerConsumerMemrefs() local 663 if (srcStoreMemRefs.count(loadOp.getMemRef()) > 0) in gatherProducerConsumerMemrefs() [all …]
|
| H A D | Utils.cpp | 836 AffineReadOpInterface loadOp, SmallVectorImpl<Operation *> &loadOpsToErase, in forwardStoreToLoad() argument 843 for (auto *user : loadOp.getMemRef().getUsers()) { in forwardStoreToLoad() 848 MemRefAccess destAccess(loadOp); in forwardStoreToLoad() 862 if (!domInfo.dominates(storeOp, loadOp)) in forwardStoreToLoad() 867 if (!hasNoInterveningEffect<MemoryEffects::Write>(storeOp, loadOp)) in forwardStoreToLoad() 884 if (storeVal.getType() != loadOp.getValue().getType()) in forwardStoreToLoad() 886 loadOp.getValue().replaceAllUsesWith(storeVal); in forwardStoreToLoad() 888 memrefsToErase.insert(loadOp.getMemRef()); in forwardStoreToLoad() 890 loadOpsToErase.push_back(loadOp); in forwardStoreToLoad() 1033 f.walk([&](AffineReadOpInterface loadOp) { in affineScalarReplace() argument [all …]
|
| H A D | LoopUtils.cpp | 2330 if (auto loadOp = dyn_cast<AffineLoadOp>(op)) { in getFullMemRefAsRegion() local 2331 rank = loadOp.getMemRefType().getRank(); in getFullMemRefAsRegion() 2332 region->memref = loadOp.getMemRef(); in getFullMemRefAsRegion() 2407 if (auto loadOp = dyn_cast<AffineLoadOp>(opInst)) { in affineDataCopyGenerate() local 2408 if ((filterMemRef.has_value() && filterMemRef != loadOp.getMemRef()) || in affineDataCopyGenerate() 2409 (loadOp.getMemRefType().getMemorySpaceAsInt() != in affineDataCopyGenerate()
|
| /llvm-project-15.0.7/mlir/lib/Conversion/MemRefToSPIRV/ |
| H A D | MemRefToSPIRV.cpp | 205 matchAndRewrite(memref::LoadOp loadOp, OpAdaptor adaptor, 215 matchAndRewrite(memref::LoadOp loadOp, OpAdaptor adaptor, 320 auto loc = loadOp.getLoc(); in matchAndRewrite() 321 auto memrefType = loadOp.getMemref().getType().cast<MemRefType>(); in matchAndRewrite() 357 rewriter.replaceOp(loadOp, loadVal); in matchAndRewrite() 369 loadOp->getAttrOfType<spirv::MemoryAccessAttr>( in matchAndRewrite() 371 loadOp->getAttrOfType<IntegerAttr>("alignment")); in matchAndRewrite() 398 dstType = typeConverter.convertType(loadOp.getType()); in matchAndRewrite() 405 rewriter.replaceOp(loadOp, result); in matchAndRewrite() 421 adaptor.getIndices(), loadOp.getLoc(), rewriter); in matchAndRewrite() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/SPIRV/Transforms/ |
| H A D | UnifyAliasedResourcePass.cpp | 218 if (auto loadOp = dyn_cast<spirv::LoadOp>(op)) in shouldUnify() local 219 return shouldUnify(loadOp.ptr().getDefiningOp()); in shouldUnify() 406 matchAndRewrite(spirv::LoadOp loadOp, OpAdaptor adaptor, in matchAndRewrite() 409 loadOp.ptr().getType().cast<spirv::PointerType>().getPointeeType(); in matchAndRewrite() 413 return rewriter.notifyMatchFailure(loadOp, "not scalar type"); in matchAndRewrite() 415 Location loc = loadOp.getLoc(); in matchAndRewrite() 418 rewriter.replaceOp(loadOp, newLoadOp->getResults()); in matchAndRewrite() 425 rewriter.replaceOp(loadOp, castOp->getResults()); in matchAndRewrite() 439 return rewriter.notifyMatchFailure(loadOp, "more than 4 components"); in matchAndRewrite() 447 return rewriter.notifyMatchFailure(loadOp, "ptr not spv.AccessChain"); in matchAndRewrite() [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/NVGPU/Transforms/ |
| H A D | OptimizeSharedMemory.cpp | 107 if (auto loadOp = dyn_cast<memref::LoadOp>(op)) in getIndices() local 108 return loadOp.getIndices(); in getIndices() 123 if (auto loadOp = dyn_cast<memref::LoadOp>(op)) in setIndices() local 124 return loadOp.getIndicesMutable().assign(indices); in setIndices()
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Affine/Transforms/ |
| H A D | SuperVectorize.cpp | 1166 static Operation *vectorizeAffineLoad(AffineLoadOp loadOp, in vectorizeAffineLoad() argument 1168 MemRefType memRefType = loadOp.getMemRefType(); in vectorizeAffineLoad() 1174 state.getScalarValueReplacementsFor(loadOp.getMapOperands(), mapOperands); in vectorizeAffineLoad() 1179 if (loadOp.getAffineMap() != in vectorizeAffineLoad() 1181 computeMemoryOpIndices(loadOp, loadOp.getAffineMap(), mapOperands, state, in vectorizeAffineLoad() 1197 loadOp.getLoc(), vectorType, loadOp.getMemRef(), indices, permutationMap); in vectorizeAffineLoad() 1200 state.registerOpVectorReplacement(loadOp, transfer); in vectorizeAffineLoad() 1479 if (auto loadOp = dyn_cast<AffineLoadOp>(op)) in vectorizeOneOperation() local 1480 return vectorizeAffineLoad(loadOp, state); in vectorizeOneOperation()
|
| H A D | LoopFusion.cpp | 767 } else if (auto loadOp = dyn_cast<AffineReadOpInterface>(op)) { in init() local 1856 if (auto loadOp = dyn_cast<AffineReadOpInterface>(user)) { in findSiblingNodeToFuse() local 1872 auto memref = loadOp.getMemRef(); in findSiblingNodeToFuse()
|
| /llvm-project-15.0.7/mlir/test/lib/Dialect/Affine/ |
| H A D | TestAffineDataCopy.cpp | 115 else if (auto loadOp = dyn_cast<AffineLoadOp>(op)) in runOnOperation() local 116 copyOps.push_back(loadOp); in runOnOperation()
|
| /llvm-project-15.0.7/mlir/lib/Conversion/VectorToSCF/ |
| H A D | VectorToSCF.cpp | 324 auto loadOp = xferOp.getMask().template getDefiningOp<memref::LoadOp>(); in getMaskBuffer() local 325 assert(loadOp && "Expected transfer op mask produced by LoadOp"); in getMaskBuffer() 326 return loadOp.getMemRef(); in getMaskBuffer() 457 auto loadOp = xferOp.getVector().getDefiningOp<memref::LoadOp>(); in getBuffer() local 458 assert(loadOp && "Expected transfer op vector produced by LoadOp"); in getBuffer() 459 return loadOp.getMemRef(); in getBuffer() 465 auto loadOp = xferOp.getVector().getDefiningOp<memref::LoadOp>(); in getBufferIndices() local 466 auto prevIndices = memref::LoadOpAdaptor(loadOp).getIndices(); in getBufferIndices()
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Vector/Transforms/ |
| H A D | VectorDistribute.cpp | 66 Value loadOp = rewriter.create<vector::LoadOp>(loc, bbArgType, buffer, c0); in rewriteWarpOpToScfFor() local 67 bbArgReplacements.push_back(loadOp); in rewriteWarpOpToScfFor() 107 Value loadOp = rewriter.create<memref::LoadOp>(loc, buffer, c0); in rewriteWarpOpToScfFor() local 108 replacements.push_back(loadOp); in rewriteWarpOpToScfFor() 117 Value loadOp = rewriter.create<vector::LoadOp>(loc, loadedVectorType, in rewriteWarpOpToScfFor() local 119 replacements.push_back(loadOp); in rewriteWarpOpToScfFor()
|
| H A D | VectorTransforms.cpp | 2090 Operation *loadOp; in matchAndRewrite() local 2094 loadOp = rewriter.create<vector::MaskedLoadOp>( in matchAndRewrite() 2098 loadOp = rewriter.create<vector::LoadOp>( in matchAndRewrite() 2106 read, read.getVectorType(), loadOp->getResult(0)); in matchAndRewrite() 2108 rewriter.replaceOp(read, loadOp->getResult(0)); in matchAndRewrite() 2129 LogicalResult matchAndRewrite(vector::LoadOp loadOp, in matchAndRewrite() 2131 auto vecType = loadOp.getVectorType(); in matchAndRewrite() 2135 loadOp.getLoc(), loadOp.getBase(), loadOp.getIndices()); in matchAndRewrite() 2136 rewriter.replaceOpWithNewOp<vector::BroadcastOp>(loadOp, vecType, in matchAndRewrite()
|
| /llvm-project-15.0.7/mlir/lib/Dialect/Affine/Analysis/ |
| H A D | Utils.cpp | 715 mlir::boundCheckLoadOrStoreOp(AffineReadOpInterface loadOp, bool emitError); 1217 if (auto loadOp = dyn_cast<AffineReadOpInterface>(loadOrStoreOpInst)) { in MemRefAccess() local 1218 memref = loadOp.getMemRef(); in MemRefAccess() 1220 llvm::append_range(indices, loadOp.getMapOperands()); in MemRefAccess()
|
| H A D | AffineAnalysis.cpp | 496 if (auto loadOp = dyn_cast<AffineReadOpInterface>(opInst)) in getAccessMap() local 497 map = loadOp.getAffineMap(); in getAccessMap()
|
| /llvm-project-15.0.7/mlir/lib/Conversion/VectorToLLVM/ |
| H A D | ConvertVectorToLLVM.cpp | 186 static void replaceLoadOrStoreOp(vector::LoadOp loadOp, in replaceLoadOrStoreOp() argument 190 rewriter.replaceOpWithNewOp<LLVM::LoadOp>(loadOp, ptr, align); in replaceLoadOrStoreOp() 193 static void replaceLoadOrStoreOp(vector::MaskedLoadOp loadOp, in replaceLoadOrStoreOp() argument 198 loadOp, vectorTy, ptr, adaptor.getMask(), adaptor.getPassThru(), align); in replaceLoadOrStoreOp()
|
| /llvm-project-15.0.7/mlir/lib/Conversion/MemRefToLLVM/ |
| H A D | MemRefToLLVM.cpp | 694 matchAndRewrite(memref::LoadOp loadOp, OpAdaptor adaptor, in matchAndRewrite() 696 auto type = loadOp.getMemRefType(); in matchAndRewrite() 699 getStridedElementPtr(loadOp.getLoc(), type, adaptor.getMemref(), in matchAndRewrite() 701 rewriter.replaceOpWithNewOp<LLVM::LoadOp>(loadOp, dataPtr); in matchAndRewrite() 854 auto loadOp = rewriter.create<LLVM::LoadOp>(loc, castPtr); in rewrite() local 855 rewriter.replaceOp(memRefCastOp, loadOp.getResult()); in rewrite()
|
| /llvm-project-15.0.7/mlir/lib/Conversion/SPIRVToLLVM/ |
| H A D | SPIRVToLLVM.cpp | 225 if (auto loadOp = dyn_cast<spirv::LoadOp>(op)) { in replaceWithLoadOrStore() local 226 auto dstType = typeConverter.convertType(loadOp.getType()); in replaceWithLoadOrStore() 230 loadOp, dstType, spirv::LoadOpAdaptor(operands).ptr(), alignment, in replaceWithLoadOrStore()
|
| /llvm-project-15.0.7/flang/lib/Optimizer/Dialect/ |
| H A D | FIROps.cpp | 3475 if (auto loadOp = mlir::dyn_cast<fir::LoadOp>(definingOp)) in valueHasFirAttribute() local 3476 value = loadOp.getMemref(); in valueHasFirAttribute()
|