add a pass to optimize environment conversion #195
+35
−3
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.
In each CPS legs, we take a Continuation then convert it into Env
everytime we want to access a local. This is an extremely slow process
under arc/orc due to type checks.
Add a pass that convert the continuation symbol exactly once, with hopes
that it would speed things up for us.
It doesn't seem to improve
performance.nim
with--objChecks:on
at all though :(Draft because we might want to only use this under
-d:release
and that I couldn'tsee an improvement with
performance.nim
. Theoretically a loop in cps will performbetter, but I haven't tested.
Fixes #184