-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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 logic error in PGO schema comparison #52822
Conversation
@davidwrighton PTAL |
The meaning seems to be flipped. If the schema merges items different other fields, then they should always be considered equal. Otherwise they should be considered equal only if the But I don't think that's the check we want anyway. It seems like this code might be causing a lot of problems with edges. Right now, if multiple .mibc files have profile data for the same method, we end up merging all edges outgoing from the same basic block into one edge. So we lose practically all edge counts. We should really just be checking if the instrumentation kinds are edges: jakobbotsch@45bcb3f |
I agree the name is confusing. I think your change is clearer and also clearly improves behavior, so I'll update this PR to use that instead. |
This reverts commit a3a977c.
Failure looks like an instance of #52710. @davidwrighton can you should review this one? |
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.
Long term, this code needs to be owned and understood most by the JIT team PGO experts, so if this looks good to both of you, I'm happy with whatever structure you like.
I found this while trying to figure out what was leading to #51908.
I don't think this is the problem as
SchemaMergesItemsWithDifferentOtherFields
currently always returns false.