Lines Matching defs:deallocOp

45 static LogicalResult updateDeallocIfChanged(DeallocOp deallocOp,
49 if (deallocOp.getMemrefs() == memrefs &&
50 deallocOp.getConditions() == conditions)
53 rewriter.modifyOpInPlace(deallocOp, [&]() {
54 deallocOp.getMemrefsMutable().assign(memrefs);
55 deallocOp.getConditionsMutable().assign(conditions);
143 LogicalResult handleOneMemref(DeallocOp deallocOp, Value memref, Value cond,
145 rewriter.setInsertionPointAfter(deallocOp);
151 for (Value retained : deallocOp.getRetained()) {
165 for (auto [i, retained] : llvm::enumerate(deallocOp.getRetained())) {
166 Value updatedCondition = deallocOp.getUpdatedConditions()[i];
171 deallocOp.getLoc(), updatedCondition, cond);
180 LogicalResult matchAndRewrite(DeallocOp deallocOp,
184 DenseSet<Value> retained(deallocOp.getRetained().begin(),
185 deallocOp.getRetained().end());
186 if (retained.size() != deallocOp.getRetained().size())
191 llvm::zip(deallocOp.getMemrefs(), deallocOp.getConditions())) {
193 if (succeeded(handleOneMemref(deallocOp, memref, cond, rewriter)))
198 if (succeeded(handleOneMemref(deallocOp, extractOp.getOperand(), cond,
208 return updateDeallocIfChanged(deallocOp, newMemrefs, newConditions,
238 LogicalResult matchAndRewrite(DeallocOp deallocOp,
242 for (auto retainedMemref : deallocOp.getRetained()) {
243 if (potentiallyAliasesMemref(analysis, deallocOp.getMemrefs(),
251 deallocOp.getLoc(), rewriter.getBoolAttr(false)));
254 if (newRetainedMemrefs.size() == deallocOp.getRetained().size())
258 deallocOp.getLoc(), deallocOp.getMemrefs(), deallocOp.getConditions(),
266 rewriter.replaceOp(deallocOp, replacements);
307 LogicalResult matchAndRewrite(DeallocOp deallocOp,
309 Location loc = deallocOp.getLoc();
310 if (deallocOp.getMemrefs().size() <= 1)
315 for (int64_t i = 0, e = deallocOp.getMemrefs().size(); i < e; ++i) {
316 Value memref = deallocOp.getMemrefs()[i];
317 Value cond = deallocOp.getConditions()[i];
318 SmallVector<Value> otherMemrefs(deallocOp.getMemrefs());
330 deallocOp.getRetained());
336 if (remainingMemrefs.size() == deallocOp.getMemrefs().size())
341 loc, remainingMemrefs, remainingConditions, deallocOp.getRetained());
354 rewriter.replaceOp(deallocOp, replacements);
391 LogicalResult matchAndRewrite(DeallocOp deallocOp,
393 BitVector aliasesWithConstTrueMemref(deallocOp.getRetained().size());
396 llvm::zip(deallocOp.getMemrefs(), deallocOp.getConditions())) {
399 deallocOp.getRetained(), deallocOp.getUpdatedConditions())) {
436 return updateDeallocIfChanged(deallocOp, newMemrefs, newConditions,