-
Notifications
You must be signed in to change notification settings - Fork 193
Do more aggressive lambda lifting #1886
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
base: master
Are you sure you want to change the base?
Conversation
97f8d5f
to
6f67ac7
Compare
83fff63
to
418e0ed
Compare
418e0ed
to
580b603
Compare
580b603
to
e76cef3
Compare
e76cef3
to
b59bd3e
Compare
b59bd3e
to
25929ef
Compare
This seems to result in a modest speedup on average, including on |
No, I'm using a workaround. |
25929ef
to
9e363d1
Compare
Should I guard this by an |
Yes, you should add a flag. |
025b1bd
to
3f94285
Compare
With @vouillon we realized that the `Lambda_lifting_simple` pass that is performed by double translation makes some programs significantly faster. We measured roughly a 1.45 speedup on a large (proprietary) Bonsai benchmark. Presumably V8 is much faster with more toplevel functions and less nested closures.
3f94285
to
49cde7c
Compare
I re-ran the CI a few times to double-check whether this new pass increases the compilation time. The compilation time seems to oscillate around ±2 %, so I would say it’s in the noise. |
With @vouillon we realized that the
Lambda_lifting_simple
pass that is performed by double translation makes some programs significantly faster. We measured roughly a 1.45 speedup on a large (proprietary) Bonsai benchmark. Presumably V8 is much faster with more toplevel functions and less nested closures.Making this a draft PR for now because:
We probably need to do some measurements before merging. (And maybe with other engines.)