google / google/heir

Add interfaces to provide target-specific configuration

Open
#2,554 1 comment 0 reactions 1 assignee Claimed by @j2kun View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.