Uh oh!
There was an error while loading. Please reload this page.
Enable inlining of shared generics code within same type - #38229
Conversation
8cbb058 to
3770ae3CompareUh oh!
There was an error while loading. Please reload this page.
jkotas
commented
Jun 25, 2020
Asm diffs |
Example of code-size regression - inlining tends to increase code size on average:
Baseline Diff |
jkotas
commented
Jun 25, 2020
Example of code-size improvement - inlining reduces code size when it enables additional constant-prop:
Baseline: Diff: |
nietras
commented
Jun 25, 2020
The example improvements are exactly the kind I am hoping for 👍 |
jkotas
commented
Jun 26, 2020
@dotnet/crossgen-contrib Any crossgen2 specific legs you would recommend to run on this? @dotnet/jit-contrib Any JIT specific legs you would recommend to run on this? |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
MichalStrehovsky
left a comment
There was a problem hiding this comment.
Crossgen2 side looks good to me.
I echo Manish's question about the assert - I think that code might be reachable.
Not commenting on the parallel sort thing because I didn't look at that code before.
mangod9
commented
Jun 26, 2020
for crossgen2 would be good to run the |
jkotas
commented
Jun 26, 2020
/azp run runtime-coreclr crossgen2 |
|
Azure Pipelines could not run because the pipeline triggers exclude this branch/path. |
jkotas
commented
Jun 26, 2020
@mangod9 What is the right way to trigger it? I have tried to trigger it above, but it does not seem to work. |
mangod9
commented
Jun 26, 2020
Hmm.. not sure why that pipeline command fails (probably some config for the pipeline @trylek ?). For now I have manually triggered it via AzDo portal |
BruceForstall
commented
Jun 26, 2020
I thought (almost) no triggers were enabled, due to issues with accidentally triggering too many builds. Also, #32777 |
davidwrighton
commented
Jun 26, 2020
@jkotas, you can no longer use any of the pipelines from the AzDo command line. You need to find the pipeline in AzDo and manually start a build. |
Uh oh!
There was an error while loading. Please reload this page.
AndyAyersMS
left a comment
There was a problem hiding this comment.
Were those diffs from crossgen or PMI?
Might want to run a wider set of diffs (pass -f to jit-diff) and/or look diffs from both prejitting and jitting.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
jkotas
commented
Jun 26, 2020
@davidwrighton Done. The updated description is at the top. |
BruceForstall
commented
Jun 27, 2020
Seems like it would be worthwhile to |
jkotas
commented
Jun 27, 2020
-f crossgen diffs: |
jkotas
commented
Jun 27, 2020
|
jkotas
commented
Jun 27, 2020
nietras
commented
Jun 27, 2020
Great to see this merged. 👍
This is quite clear but to be sure, I assume this means this won't work for base class methods for example? E. g. called in a derived class? |
jkotas
commented
Jun 27, 2020
Correct. |
This change allows inlining of generic dictionary lookups when the caller and callee are the same exact type and instantiation. It is a simpler version of #31833.
Motivation for this change is to unblock #37941.
Example: