-
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
JIT: enable GDV when static class deduction fails. #55660
JIT: enable GDV when static class deduction fails. #55660
Conversation
Update the early bailout in impDevirtualizeCall that gives up if the object class cannot not be determined to check if we can do GDV (guarded devirtualization) based on profile data. Fixes one of the cases noted in dotnet#55079.
@EgorBo PTAL On the second test case from #55079:
and in the jitdump:
|
SPMI only sees one method with a diff.
There were quite a few replay failures (not surprising) so the actual set of diffs is perhaps considerably larger. Not sure how to assess this without merging this and getting a new collection, then undoing this. For the asp.net collection (~45K methods) there were ~1900 replay failures. Not currently easy to verify these are all caused by the above, but seems plausible. |
PMI diffs didn't spot anything either, but both diff and base jits failed in SPC where we probably have the most relevant PGO data. At any rate I think this change is clearly improved functionality and am not too worried about bad diffs. |
Nice! I actually also tried to fix that via "get class handle for method" but didn't finish it |
@EgorBo you might try running this over TE, I think your scripting is better than mine. |
Sure, I've just started a couple of benchmarks to compare |
Not obvious how/if the installer test failure (Breadcrumb_thread_does_not_finish_when_app_has_unhandled_exception) is related. Suspect it isn't... |
Pretty sure failures are unrelated, have kicked off retries but CI doesn't seem to responding. Will look again in the morning. |
Update the early bailout in impDevirtualizeCall that gives up if
the object class cannot not be determined to check if we can do
GDV (guarded devirtualization) based on profile data.
Fixes one of the cases noted in #55079.