-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Shrink Dictionary asm by moving non-generic enumerator out #32287
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
Conversation
|
This was with PMI uses a simple-minded strategy to attempt instantiation of generic classes and methods. If you shift around generic code the strategy may succeed or fail more often, so total sizes can be misleading. Crossgen diffs should offer a more stable picture but will be fairly restrictive about what gets instantiated, so may miss things that PMI can spot. |
No, just regular crossgen diff of System.Private.CoreLib Will try pmi |
|
@AndyAyersMS what I was confused about is the header says and However the differences all look like improvements? e.g. |
|
Looks like it would be a break; though hopefully not one depend on? |
There are going to be apps that depend on it for sure. We have tried to messing with the iterators like this in .NET Core 1.0 days and it did not work well. I do not think we would want to make this breaking change. Clusters of non-generic code in generic types show up quite a bit. The AOT compiler (where this duplication hurts the most) should be smart enough to see this duplication and generate one piece of shared code for it. .NET Native for UWP has this optimization. |
|
Fair enough |
|
XML uses it :) #32296 |
|
@benaadams -- looks like the logic in It should add the diff and subtract the base. |
I think my version of Jitdiff is reporting summary regression/improvement backwards in error?
/cc @jkotas not sure if this is an interesting change?