-
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: enable reading PGO data when switching to optimized #66618
JIT: enable reading PGO data when switching to optimized #66618
Conversation
When QuickJitForLoops=0 (current default) and the JIT sees a Tier0 method with a loop, it will switch to optimizing the method instead. When this happens we should also have set `BBOPT` so that the JIT will read and incorporate PGO data for the method and/or its inliees. But we were not doing that. This change sets `BBOPT`.
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsWhen QuickJitForLoops=0 (current default) and the JIT sees a Tier0 method with When this happens we should also have set This change sets
|
@EgorBo PTAL This has the potential to cause perf swings. Hopefully mostly for the better. I know of at least one regression in microbenchmarks: in See #33658 (comment) for some context. |
No SPMI diffs. Presumably because when we originally jitted all those methods we never asked for PGO data, so if we now start asking, there's none to be had, and we end up in the same place. I'll run some PMI diffs locally and post the results. |
I had to hack
|
Alpine arm64 failure in Alpine arm64 Failure in
|
Win-arm64 improvement dotnet/perf-autofiling-issues#4143 |
Regression in single-min dotnet/perf-autofiling-issues#4221 |
Improvements in dotnet/perf-autofiling-issues#4223 |
Regression in BitArrayByteArrayCtor dotnet/perf-autofiling-issues#4246 |
When QuickJitForLoops=0 (current default) and the JIT sees a Tier0 method with a loop, it will switch to optimizing the method instead. When this happens we should also have set `BBOPT` so that the JIT will read and incorporate PGO data for the method and/or its inliees. But we were not doing that. This change sets `BBOPT`.
When QuickJitForLoops=0 (current default) and the JIT sees a Tier0 method with
a loop, it will switch to optimizing the method instead.
When this happens we should also have set
BBOPT
so that the JIT will read andincorporate PGO data for the method and/or its inliees. But we were not doing that.
This change sets
BBOPT
.