Uh oh!
There was an error while loading. Please reload this page.
JIT: fix another case of early flow graph divergence - #85873
Conversation
The JIT will sometimes decide to instrument a Tier0 method even if `BBINSTR` is not passed by the VM (this is enabled when the VM passes `BBINSTR_IF_LOOPS` so that we can provide some PGO data to OSR methods). In such cases we build the flow graph and then decide to instrument, so the flow graph shape may differ from the case where we know up front that we are going to instrument or optimize. Remedy this by also running the early branch to next flow graph opt when a Tier0 JIT is passed `BBINSTR_IF_LOOPS`. Addresses another case of dotnet#85856.
ghost
commented
May 6, 2023
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsThe JIT will sometimes decide to instrument a Tier0 method even if In such cases we build the flow graph and then decide to instrument, so the flow graph shape may differ from the case where we know up front that we are going to instrument or optimize. Remedy this by also running the early branch to next flow graph opt when a Tier0 JIT is passed Addresses another case of #85856.
|
AndyAyersMS
commented
May 6, 2023
@EgorBo PTAL Relatively small number of diffs, but this impacts some important methods.... |
EgorBo
left a comment
There was a problem hiding this comment.
The name sounds a bit weird but I don't have a better alternative🙂
AndyAyersMS
commented
May 7, 2023
We can always change it later.... |
AndyAyersMS
commented
May 7, 2023
Diffs these are all in Tier0 instrumentation strategy / schema. |
The JIT will sometimes decide to instrument a Tier0 method even if
BBINSTRis not passed by the VM (this is enabled when the VM passesBBINSTR_IF_LOOPSso that we can provide some PGO data to OSR methods).In such cases we build the flow graph and then decide to instrument, so the flow graph shape may differ from the case where we know up front that we are going to instrument or optimize.
Remedy this by also running the early branch to next flow graph opt when a Tier0 JIT is passed
BBINSTR_IF_LOOPS.Addresses another case of #85856.