HomePhabricator

[MLIR] Remove TableGen redundant calls to native calls when creating new…

Authored by AlexEichenberger on Jun 22 2020, 8:10 AM.

Description

[MLIR] Remove TableGen redundant calls to native calls when creating new operations in DRR TableGen files

Summary:
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:

c++
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.

Differential Revision: https://reviews.llvm.org/D82101