dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.98k stars 4.66k forks source link

JIT: Dynamic VSD stub calls should also reuse indirection cell #76302

Open jakobbotsch opened 1 year ago

jakobbotsch commented 1 year ago

For static VSD stub calls we avoid creating any control expression and just do the call by dereferencing the indirection cell during codegen. For VSD stub calls that are dynamically computed we should be able to do the same thing. See https://github.com/dotnet/runtime/pull/76017#issuecomment-1260829404 for a regression where it matters.

category:cq theme:optimization skill-level:intermediate cost:small impact:small

ghost commented 1 year ago

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch See info in area-owners.md if you want to be subscribed.

Issue Details
For static VSD stub calls we avoid creating any control expression and just do the call by dereferencing the indirection cell during codegen. For VSD stub calls that are dynamically computed we should be able to do the same thing. See https://github.com/dotnet/runtime/pull/76017#issuecomment-1260829404 for a regression where it matters.
Author: jakobbotsch
Assignees: -
Labels: `area-CodeGen-coreclr`
Milestone: -