Currently, the TableGen rewrite generates redundant native calls in MLIR DRR files. This is a problem as some native calls may involve significant computations (e.g. when performing constant propagation where every values in a large tensor is touched).
The pattern was as follow:
if (native-call(args)) tblgen_attrs.emplace_back(rewriter, attribute, native-call(args))
The replacement pattern compute native-call(args) once and then use it both in the if condition and the emplace_back call.