Skip to content

Commit 1877400

Browse files
authored
Fix: erase inlined op in reducereduce (#1043)
* Fix: erase inlined op in reducereduce * fix * fix
1 parent 32c0646 commit 1877400

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/enzyme_ad/jax/Passes/EnzymeHLOOpt.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18885,6 +18885,9 @@ struct ReduceReduce final
1888518885
return rewriter.notifyMatchFailure(
1888618886
op, "reduce op has more than one input. not yet supported");
1888718887

18888+
if (!llvm::hasSingleElement(op.getInputs()[0].getUses()))
18889+
return failure();
18890+
1888818891
if (!OperationEquivalence::isEquivalentTo(
1888918892
redOp.getInitValues()[0].getDefiningOp(),
1889018893
op.getInitValues()[0].getDefiningOp(),
@@ -18927,6 +18930,7 @@ struct ReduceReduce final
1892718930
rewriter.inlineRegionBefore(redOp.getBody(), newReduceOp.getBody(),
1892818931
newReduceOp.getBody().end());
1892918932
rewriter.replaceOp(op, newReduceOp.getResult(0));
18933+
rewriter.eraseOp(redOp);
1893018934
return success();
1893118935
}
1893218936
};

0 commit comments

Comments
 (0)