Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Type Inference #105

Closed
rengolin opened this issue May 7, 2020 · 0 comments
Closed

Type Inference #105

rengolin opened this issue May 7, 2020 · 0 comments

Comments

@rengolin
Copy link
Contributor

rengolin commented May 7, 2020

With the type system designed in #104, we need to create the system that will convert from opaque MLIR types to explicit Verona dialect types. This will likely incur in inter-procedural analysis and may need to generate multiple copies of the same function with different types.

We'd want to keep those auto-generate functions in sync, or at least related to each other with some form of annotation (ex. from which base function they're derived, other sibling stubs) and we may need to more aggressively inline or elide those auto-generated functions.

We could implement this as a precursor of the partial conversion (opaque -> Verona), so that the lowering happens in a more natural way, or we could make that as part of the lowering, but we need to be careful with partially lowered types and stubs. In any case, we'll need a cleanup pass before validation.

The initial support is critical to get right, with the remaining support included as it's added, later in the process.

Acceptance criteria:

  • Generate complete explicit Verona types from existing opaque MLIR types for existing examples
  • Tests covering expected types from opaque ones

Not included:

  • Full language support for all possible types
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant