-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
270x and 36000x faster beam_ssa_bool and ssa_opt_sink passes from simple change #5686
Comments
I can't reproduce the problem with the I suggest that you try to compile your full module with the |
Okey, will do! |
For the example in erlang#5686, the time for running the `place_frames` sub pass of `beam_ssa_pre_codegen` is reduced from about 30 seconds to less than 20 seconds on my computer.
For the example in erlang#5686, the time for running the `place_frames` sub pass of `beam_ssa_pre_codegen` is reduced from about 30 seconds to less than 20 seconds on my computer, and the time for each of the `beam_ssa_bool` and `ssa_opt_sink` passes is almost halved.
I didn't like the long time for the I turns out that the dominator calculation is a partial explanation for the slow |
I can reproduce this with a clean build on mac with your latest changes:
You can see that With the old test file,
And with the new test file,
I doubt it's mac-specific though. Could you give it another try? Both files are in the gist, maybe you didn't run both files? |
I did use the newest file, the one with the Commit e1a6460 is based on I get times very similar to yours when I compile using |
I got it now. Must've mixed up These are the timings for the original file that triggered this performance problem in #5140:
This is a massive improvement over what we had back in August. Big thanks! |
Thanks for bug reports. They helped us improve the compiler. |
Describe the bug
This is a follow-up on #5140 (comment) namely
This one-line change to the
dump@ps.erl
test file from #5140 triggers some pathologic case in both thebeam_bool
andssa_opt_sink
passes:The new file is available here: https://gist.github.com/drathier/709f7c5be3de1c1c345dc9fa93227dc2#file-booloptsink-ps-erl
To Reproduce
I ran this using the 24.2 erlc, not any of the fixed ones from #5140. Hence the disabled compiler pass.
Affected versions
Only tested 24.2
Hope it's fun to debug!
The text was updated successfully, but these errors were encountered: