You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[clr-interp] Improve the performance of interpreter calls (#120067)
* [clr-interp] Improve the performance of interpreter calls
- Instead of setting the target in the CallStubHeader at each invocation, store the target in the CallStubHeader immediately.
- Avoid invoking the prestub unnecessarily. Instead, detect that we've already run the prestub to completion at least once before poisoning the m_interpreterCode field on MethodDesc.
This may be enough to make some of our tests which are currently timing out pass.
* Add a tweak so that CallPreStub is able to succeed with methods which were not quite ready to execute.
* Fix build breaks
* Change NULL check to PCODE comparison
// The prestub wasn't able to setup an interpreter code, so it will never be able to.
2469
+
targetMethod->PoisonInterpreterCode();
2470
+
}
2456
2471
}
2457
2472
if (targetIp == NULL)
2458
2473
{
2459
2474
// If we didn't get the interpreter code pointer setup, then this is a method we need to invoke as a compiled method.
2460
2475
// Interpreter-FIXME: Implement tailcall via helpers, see https://github.com/dotnet/runtime/blob/main/docs/design/features/tailcalls-with-helpers.md
0 commit comments