- 
                Notifications
    You must be signed in to change notification settings 
- Fork 198
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. | 
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. | 
| You should probably rebase and rerun the bench now that #1935 is merged to check that this PR still improves perfs | 
65cf622    to
    0561523      
    Compare
  
    | @OlivierNicole, there might be some improvement and the size increase seems small. Do you want to rebase the PR one more time and have the feature under a flag ? That way, we can merge instead of letting the PR rot. | 
| Yes, I intend to do this; I just haven’t found the time to squeeze it between my other tasks yet… | 
0fa87ae    to
    77b8921      
    Compare
  
    | The test failures seem unrelated to this PR, as they also show up on master. | 
| Sorry for the delay in coming back to this. I have put the feature behind a flag. | 
| Please a small test for this, probably in compiler/tests-compiler/ | 
| Done. The CI failure seems unrelated. | 
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.
61e2268    to
    e3c5496      
    Compare
  
    
With @vouillon we realized that the
Lambda_lifting_simplepass 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.)