Don't have custom attribute printers, and handle this at the op pretty-print level. I.e. for ConvDimensionNumbers, don't specify custom mnemonic, or custom assembly for the attr, and instead on ops that use it, add custom assembly with custom<ConvolutionDimensions>
Have an attr verifier. Attrs that use custom assembly that fail verification can get printed with a raw_ prefix.
Attributes like
ConvDimensionNumbers
always prettyprint at the moment, regardless of--mlir-print-op-generic
.