[mlir][tblgen] Generate generic adaptors for Ops
This is part of the RFC for a better fold API: https://discourse.llvm.org/t/rfc-a-better-fold-api-using-more-generic-adaptors/67374 This patch implements the generation of generic adaptors through TableGen. These are essentially a generalization of Adaptors, as implemented previously, but instead of indexing into a `mlir::ValueRange`, they may index into any container, regardless of the element type. This allows the use of the convenient getter methods of Adaptors to be reused on ranges that are the result of some kind of mapping functions of an ops operands. In the case of the fold API in the RFC, this would be `ArrayRef<Attribute>`, which is a mapping of the operands to their possibly-constant values. Implementation wise, some special care was taken to not cause a compile time regression, nor to break any kind of source compatibility. For that purpose, the current adaptor class was split into three: * A generic adaptor base class, within the detail name...
parent
cce49337
Please register or sign in to comment