feat(compiler): Optimize constant global initializations #2337
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed that programs like:
were producing codegen like:
This isn't really optimal as binaryen doesn't see an oppurtunity to propogate a lot of these global constants outside the immediate scope and this produces a lot more codegen, instead we could just initialize the global to begin with.
This pr implements that behaviour where we instead directly produce:
Notes:
use-start-sectionis used or the import is never exported.