-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
Introduce a monomorphization cache #2636
Labels
compiler: frontend
Everything to do with type checking, control flow analysis, and everything between parsing and IRgen
Comments
emilyaherbert
added
the
compiler: frontend
Everything to do with type checking, control flow analysis, and everything between parsing and IRgen
label
Aug 26, 2022
tritao
added a commit
to tritao/sway
that referenced
this issue
Aug 29, 2022
This introduces a cache to the declaration engine that keeps track of functions/structs that have been instantiated from a specific set of type parameters. This was originally prototyped in tritao/declaration-engine-and-collection-context-demo@c3aa5e7, where these APIs where wired to the function application and struct expressions instantiation code. However given the declaration engine is not hooked up yet here, this PR is just adding the APIs, and more proper testing will be added as we wire things up. Closes FuelLabs#2636.
tritao
added a commit
to tritao/sway
that referenced
this issue
Aug 29, 2022
This introduces a cache to the declaration engine that keeps track of functions/structs that have been instantiated from a specific set of type parameters. This was originally prototyped in tritao/declaration-engine-and-collection-context-demo@c3aa5e7, where these APIs where wired to the function application and struct expressions instantiation code. However given the declaration engine is not hooked up yet here, this PR is just adding the APIs, and more proper testing will be added as we wire things up. Closes FuelLabs#2636.
tritao
added a commit
to tritao/sway
that referenced
this issue
Aug 31, 2022
This introduces a cache to the declaration engine that keeps track of functions/structs that have been instantiated from a specific set of type parameters. This was originally prototyped in tritao/declaration-engine-and-collection-context-demo@c3aa5e7, where these APIs where wired to the function application and struct expressions instantiation code. However given the declaration engine is not hooked up yet here, this PR is just adding the APIs, and more proper testing will be added as we wire things up. Closes FuelLabs#2636.
tritao
added a commit
to tritao/sway
that referenced
this issue
Sep 1, 2022
This introduces a cache to the declaration engine that keeps track of functions/structs that have been instantiated from a specific set of type parameters. This was originally prototyped in tritao/declaration-engine-and-collection-context-demo@c3aa5e7, where these APIs where wired to the function application and struct expressions instantiation code. However given the declaration engine is not hooked up yet here, this PR is just adding the APIs, and more proper testing will be added as we wire things up. Closes FuelLabs#2636.
tritao
added a commit
to tritao/sway
that referenced
this issue
Sep 1, 2022
This introduces a cache to the declaration engine that keeps track of functions/structs that have been instantiated from a specific set of type parameters. This was originally prototyped in tritao/declaration-engine-and-collection-context-demo@c3aa5e7, where these APIs where wired to the function application and struct expressions instantiation code. However given the declaration engine is not hooked up yet here, this PR is just adding the APIs, and more proper testing will be added as we wire things up. Closes FuelLabs#2636.
tritao
added a commit
to tritao/sway
that referenced
this issue
Sep 5, 2022
This introduces a cache to the declaration engine that keeps track of functions/structs that have been instantiated from a specific set of type parameters. This was originally prototyped in tritao/declaration-engine-and-collection-context-demo@c3aa5e7, where these APIs where wired to the function application and struct expressions instantiation code. However given the declaration engine is not hooked up yet here, this PR is just adding the APIs, and more proper testing will be added as we wire things up. Closes FuelLabs#2636.
tritao
added a commit
to tritao/sway
that referenced
this issue
Sep 5, 2022
This introduces a cache to the declaration engine that keeps track of functions/structs that have been instantiated from a specific set of type parameters. This was originally prototyped in tritao/declaration-engine-and-collection-context-demo@c3aa5e7, where these APIs where wired to the function application and struct expressions instantiation code. However given the declaration engine is not hooked up yet here, this PR is just adding the APIs, and more proper testing will be added as we wire things up. Closes FuelLabs#2636.
tritao
added a commit
to tritao/sway
that referenced
this issue
Sep 5, 2022
This introduces a cache to the declaration engine that keeps track of functions/structs that have been instantiated from a specific set of type parameters. This was originally prototyped in tritao/declaration-engine-and-collection-context-demo@c3aa5e7, where these APIs where wired to the function application and struct expressions instantiation code. However given the declaration engine is not hooked up yet here, this PR is just adding the APIs, and more proper testing will be added as we wire things up. Closes FuelLabs#2636.
This was referenced Sep 12, 2022
Add the concept of "collection" to the compiler and remove the concept of "in-order AST nodes"
#1819
Closed
See this closed PR description for additional context and insight into a possible design: #2723 (comment) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
compiler: frontend
Everything to do with type checking, control flow analysis, and everything between parsing and IRgen
Instead of creating one monomorphized copy per expression, we should create a monomorphization cache to keep track of monomorphized copies that we have created in the past, so that we can eliminate duplicate computation
The text was updated successfully, but these errors were encountered: