Uh oh!
There was an error while loading. Please reload this page.
Remove unnecessary runtime lookup for constrained callvirt - #73823
Conversation
trylek
commented
Aug 11, 2022
Fixes: #73681 |
trylek
commented
Aug 11, 2022
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
jakobbotsch
left a comment
There was a problem hiding this comment.
LGTM. I've verified this returns the behavior of the example in #73606 back to what it was previously.
jkotas
commented
Aug 12, 2022
Is R2R codegen correct for this case? |
AaronRobinsonMSFT
commented
Aug 16, 2022
@trylek Do we also need to update R2R as mentioned at #73823 (comment)? |
AaronRobinsonMSFT
commented
Aug 16, 2022
Perhaps in this area? |
markples
left a comment
There was a problem hiding this comment.
lgtm for jitinterface logic (not familiar with r2r aspect)
mangod9
commented
Aug 22, 2022
@trylek is this good to merge. Appears that needs to be ported to 7 too? |
AaronRobinsonMSFT
commented
Aug 22, 2022
trylek
commented
Aug 22, 2022
I'm doing my best to produce an update this afternoon. |
In my change adding support for default static virtual interface method implementations I made a subtle bug that caused behavioral change for some pre-existing constrained virtual calls that newly started to require runtime lookup. This is unnecessary and perf-negative, I have modified the code so that my change kicks in only for static virtual methods. Thanks Tomas
d1d25ea to
ad29661Comparetrylek
commented
Aug 23, 2022
I have finally gotten to debugging the jitted and crossgenned version of the test described in the issue #73606. To answer @jkotas' question, I believe there's no counterpart logic in Crossgen2 as Crossgen2 still globally skips functions containing static virtual method calls using the following conditional statement: The fix presented in this PR basically just scales back my |
trylek
commented
Aug 23, 2022
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
trylek
commented
Aug 24, 2022
/backport to release/7.0 |
Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/2922253202 |
In my change adding support for default static virtual interface
method implementations I made a subtle bug that caused
behavioral change for some pre-existing constrained virtual calls
that newly started to require runtime lookup. This is unnecessary
and perf-negative, I have modified the code so that my change
kicks in only for static virtual methods.
Thanks
Tomas
/cc @dotnet/jit-contrib