-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JIT: fix another case of early flow graph divergence #85873
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.
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.
|
@EgorBo PTAL Relatively small number of diffs, but this impacts some important methods.... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The name sounds a bit weird but I don't have a better alternative🙂
We can always change it later.... |
Diffs these are all in Tier0 instrumentation strategy / schema. |
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 passesBBINSTR_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 #85856.