Replace mapOperands and mapResults with two new callbacks. It was not clear what "mapping" meant and why the equivalence relationship was a property of the Operand/OpResult as opposed to just SSA values.
OperationEquivalence::isEquivalentTo can be used directly in CSE and there is no need for a custom op equivalence analysis.
There is a change in contract here for markEquivalent. Ideally this should be done in a separate patch, if it is too involved by now, can you at least document and motivate this in the description?