-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Fix the mid-level function-pass pipeline #31424
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
Fix the mid-level function-pass pipeline #31424
Conversation
Module passes need to be in a separate pipeline, otherwise the pipeline restart mechanism will be broken. This makes GlobalOpt and serialization run earlier in the pipeline. There's no explicit reason for them to be run later, in the middle of a function pass pipeline. Also, pipeline boundaries, like serialization and module passes should be explicit at the the top level function that creates the pass pipelines.
Don't allow module passes to be inserted within a function pass pipeline. This silently breaks the function pipeline both interfering with analysis and the normal pipeline restart mechanism.
@swift-ci test |
@swift-ci benchmark |
@swift-ci Please Test Source Compatibility |
Performance: -O
Code size: -O
Performance: -Osize
Code size: -Osize
Performance: -Onone
Code size: -swiftlibs
How to read the dataThe tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.If you see any unexpected regressions, you should consider fixing the Noise: Sometimes the performance results (not code size!) contain false Hardware Overview
|
@swift-ci test compiler performance |
1 similar comment
@swift-ci test compiler performance |
@swift-ci benchmark |
Having module passes in between function passes in the pipeline had an unexpected side-effect. It forced recomputation of BottomUpFunctionOrder. When I converted EagerSpecializer to a function pass, we lost this unintended side effect and saw some regression, which was fixed by #30710 . #30710 has regressions of its own. So I am going to fix EagerSpecializer separately. |
Compilation-performance test failed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@meg-gupta thanks for bringing this PR back to life after over a year and getting it checked in!
Performance: -O
Code size: -O
Performance: -Osize
Code size: -Osize
Performance: -Onone
Code size: -swiftlibs
How to read the dataThe tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.If you see any unexpected regressions, you should consider fixing the Noise: Sometimes the performance results (not code size!) contain false Hardware Overview
|
@swift-ci test compiler performance |
Reopening #31163
rdar://62549587