-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[analysis] Turn on the pass manager notification verifier analysis. #18781
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
[analysis] Turn on the pass manager notification verifier analysis. #18781
Conversation
…ead of SILFunction pointers for its internal state. This enables us to have state independent of the liveness of the SILFunction's that we are tracking. I also changed the verifier to implement only verifyFull instead of verify to ensure that when we run with sil-verify-all this only runs at the end of pass manager pipelines. rdar://42301529
When asserts are enabled this tracks the add/delete notifications from the SILPassManager it belongs to. When the SILPassManager is destroyed, the analysis verifies that it worked correctly by looping over all the functions in the module and verifying that its internal state is consistent with the module. This will ensure we never lose add/delete notification events ever again by mistake. rdar://42301529
@swift-ci smoke test |
@swift-ci test |
@swift-ci test source compatibility |
@swift-ci smoke benchmark |
Doing a bunch of testing to make sure I don't break anything by turning this on. |
I am going to kill the smoke test jobs |
This turns on #18781. |
Erm: #18767. |
I am going to test perf as well. If this is too expensive to run normally, then I will only have it run at end of pipeline with -sil-verify-all enabled. |
@swift-ci test compiler performance |
Build comment file:Optimized (O)Regression (6)
Improvement (3)
No Changes (438)
Hardware Overview
|
And may we never speak of missing pass manager notifications... ever again. |
When asserts are enabled this tracks the add/delete notifications from the
SILPassManager it belongs to. When the SILPassManager is destroyed, the analysis
verifies that it worked correctly by looping over all the functions in the
module and verifying that its internal state is consistent with the module.
This will ensure we never lose add/delete notification events ever again by
mistake.
rdar://42301529
NOTE: The second commit is in a different PR. I just wanted to do some parallel testing.