-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Sil verify all verify functions when added to worklist #5221
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
Sil verify all verify functions when added to worklist #5221
Conversation
An int is already constant and in general in LLVM style we do not create such const ints. On the other hand, a constexpr I think expresses the intent slightly better and gives the compiler more freedom anyways.
…be more explicit.
@swift-ci Please smoke test |
Oops... pushed an older version. 1 sec |
…ions after adding them to the worklist. When SILVerifyAll is enabled, individual functions are verified after function passes are run upon them. This means that any functions created by a function pass will not be verified after the pass runs. Thus specialization errors that cause the verifier to trip will be misattributed to the first pass that makes a change to the specialized function. This is very misleading and increases triage time. This change eliminates that problem by ensuring that when SILVerifyAll is enabled, we always verify newly specialized functions as they are added to the worklist. rdar://28706158
284555f
to
1ba8182
Compare
@swift-ci Please smoke test |
@swift-ci Please smoke test linux platform |
Now that I think about it, given that this can potentially cause the verifier to trigger many more times, I really need to do a full test to be careful. |
(specifically since I could expose bad code patterns to the verifier that previously were DCEed or the like). |
@swift-ci Please test |
Build failed |
Build failed |
These are from the earlier "oops" version. Not sure why it took so long for this post to land though. @shahmishal Might be a sign of a bigger problem.
|
@swift-ci Please test |
Build failed |
Build failed |
@shahmishal My tests failed I think b/c of infrastructure issues. Can you take a look? |
@swift-ci Please test |
Linux smoke test failed due to
|
Time out was due to no output to console for 300mins. Test getting stuck? |
Other Linux failure is due to
|
When SILVerifyAll is enabled, individual functions are verified after
function passes are run upon them. This means that any functions created
by a function pass will not be verified after the pass runs. Thus
specialization errors that cause the verifier to trip will be
misattributed to the first pass that makes a change to the specialized
function. This is very misleading and increases triage time.
As a result, when SILVerifyAll is enabled, we always verify newly
specialized functions as they are added to the worklist.