Add interfaces to provide target-specific configuration
- Dominant language
- MLIR
- Stars
- 906
- Forks
- 171
- Avg merge
- 4d 12h
- Merged PRs (30d)
- 32
Description
We are increasingly in need of "cost models" and target-specific configuration options for the various passes in HEIR.
For example, when we do level analysis, we have to implement a "transfer function" for bootstrap (i.e., what is the output level of a freshly-bootstrapped ciphertext?). The output level is not the max level of a freshly encrypted ciphertext, because the bootstrap operation itself consumes levels, and it is also backend dependent, because it depends on the bootstrap implementation details.
This issue is to create a system to store backend-specific information (say, in tablegen) and expose an interface and registration mechanism that allows the compiler pipeline to consume the desired backend target as a pass flag, and populate the desired backend information in an interface that is available to passes that need it.
I think if the first version of this interface supports "levels consumed by bootstrap" then we can close it and use followup issues for more information like the cost of operations at each level.
Contributor guide
Assessment
This issue has not been assessed yet.