-
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
Delete lvVerTypeInfo
#71597
Delete lvVerTypeInfo
#71597
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsSaves We're mostly not expecting diffs, except a few (< 10 cases across all of SPMI) where the new "is normed" logic in
|
88342d2
to
35d7f2c
Compare
35d7f2c
to
2785c2c
Compare
@dotnet/jit-contrib |
2785c2c
to
05b2733
Compare
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.
Thanks for the cleanup.
This was really cool btw, may I suggest you make it available? :-) |
Sure, it is a very simplistic single-threaded tool: https://gist.github.com/SingleAccretion/322071577c481040e409b98b6e936adf. |
Saves
0.7%
in memory consumption when CG-ing CoreLib.We're mostly not expecting diffs, except a few where the new "is normed" logic in
fgFindJumpTargets
leads to us to inline something we didn't before. The reason this happens is that previously we would assign "is normed"false
in case the inlining info hadTI_ERROR
(invalid)lclVerTypeInfo
s in it.Diffs - there is a large TP regression on x86.
I have built a PIN-based mini-profiler to diagnose it, here's is an example of a diff it produces for a method context representative of the regression: PIN diff. It took me some time to realize this, but the cause is rather prosaic:
LclVarDsc
goes from 88 to 80 bytes and this causes MSVC to uselea + shl
instead ofimul
for pointer arithmetic fetchingLclVarDsc*
s, inflating the retired instructions count. Evidently, this also pessimizes MSVC's inliner sometimes, but I am not too worried about that given we have native PGO.To confirm, I added this "useless" padding to
LclVarDsc
:And the regression went away.