[mlir] Remove the use of FilterTypes for template metaprogramming
authorRiver Riddle <riddleriver@gmail.com>
Fri, 8 Apr 2022 04:36:40 +0000 (21:36 -0700)
committerRiver Riddle <riddleriver@gmail.com>
Fri, 15 Apr 2022 19:57:07 +0000 (12:57 -0700)
commit31c88660ab155beb5e6796ec1382afd2c0e52978
tree15efed2ae890f47239ec75bd82c703cc16e7e1a6
parent04f3a224bc9d1dad631fa8efd69fc35d28488a65
[mlir] Remove the use of FilterTypes for template metaprogramming

This technique results in an explosion in compile time, resulting from a
huge number of std::tuple/concat instatiations. This technique is replaced
by simpler metaprogramming and results in a signficant reduction in
compile time. A local debug/asan build saw a 4x speed up in the processing
of ArithmeticOps.h.inc, and given the nature of this change every dialect
should see similar reductions in compile time.

Differential Revision: https://reviews.llvm.org/D123360
mlir/include/mlir/IR/OpDefinition.h
mlir/include/mlir/Support/InterfaceSupport.h