[Mlir-commits] [mlir] [mlir][IR][NFC] Add `RewriterBase::eraseOpResults` convenience helper (PR #174152)
Ivan Butygin
llvmlistbot at llvm.org
Thu Jan 1 10:26:17 PST 2026
================
@@ -244,6 +244,42 @@ void RewriterBase::eraseBlock(Block *block) {
block->erase();
}
+Operation *RewriterBase::eraseOpResults(Operation *op,
+ const BitVector &eraseIndices) {
+ assert(op->getNumResults() == eraseIndices.size() &&
+ "number of op results and bitvector size must match");
+
+ // Gather new result types.
+ SmallVector<Type> newResultTypes;
+ newResultTypes.reserve(op->getNumResults() - eraseIndices.count());
+ for (OpResult result : op->getResults())
+ if (!eraseIndices[result.getResultNumber()])
+ newResultTypes.push_back(result.getType());
+
+ // Create a new operation and inline all regions.
+ InsertionGuard g(*this);
+ setInsertionPoint(op);
+ OperationState state(op->getLoc(), op->getName().getStringRef(),
+ op->getOperands(), newResultTypes, op->getAttrs());
+ for (unsigned i = 0, e = op->getNumRegions(); i < e; ++i)
----------------
Hardcode84 wrote:
nit: `llvm::seq`
https://github.com/llvm/llvm-project/pull/174152
More information about the Mlir-commits
mailing list