Lines Matching defs:memref
99 void DeallocationState::updateOwnership(Value memref, Ownership ownership,
103 block = memref.getParentBlock();
105 // Update ownership of current memref itself.
106 ownershipMap[{memref, block}].combine(ownership);
114 Ownership DeallocationState::getOwnership(Value memref, Block *block) const {
115 return ownershipMap.lookup({memref, block});
118 void DeallocationState::addMemrefToDeallocate(Value memref, Block *block) {
119 memrefsToDeallocatePerBlock[block].push_back(memref);
122 void DeallocationState::dropMemrefToDeallocate(Value memref, Block *block) {
123 llvm::erase(memrefsToDeallocatePerBlock[block], memref);
136 Value memref, Block *block) {
137 auto iter = ownershipMap.find({memref, block});
143 return {memref, ownership.getIndicator()};
152 builder.create<bufferization::CloneOp>(memref.getLoc(), memref);
153 Value condition = buildBoolValue(builder, memref.getLoc(), true);
189 for (auto [i, memref] :
191 Ownership ownership = ownershipMap.lookup({memref, block});
193 return emitError(memref.getLoc(),
198 if (auto unrankedMemRefTy = dyn_cast<UnrankedMemRefType>(memref.getType()))
199 memref = builder.create<memref::ReinterpretCastOp>(
200 loc, memref,
205 // Use the `memref.extract_strided_metadata` operation to get the base
206 // memref. This is needed because the same MemRef that was produced by the
210 builder.create<memref::ExtractStridedMetadataOp>(loc, memref)