-
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
Enable R2R for NarrowUtf16ToAscii / WidentAsciiToUtf16 #90361
Conversation
s390x that is only big endian arch does not support Vector acceleration. Is the Vector block effectively dead code given the state of our platforms and backends? |
In that case, yes, I believe these paths are dead. I'll delete 'em instead. |
Tagging subscribers to this area: @dotnet/area-system-runtime Issue DetailsCurrently both of these methods on System.Text.Ascii are on the startup path and are being JIT'd:
They're not using R2R because of use of
@EgorBo, I am curious why they were showing up as "Instrumented Tier0" without another "Tier0" entry for them first. What causes a non-instrumented tier0 to be skipped?
|
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.
Thank you!
Methods with loops bypass Tier0 (but not R2R) and go straight to Tier0-instrumented - it's done to avoid cases when a cold method with a hot loop won't benefit from PGO as we can't have two OSR versions |
#90326 fixes 3rd ,4th, 5th methods. 7th method is weird, cg throws an exception when I try to prejit it 😐 |
@LeVladIonescu - can you run a before/after on the Mono Interpreter config to make sure this is not a cause of the regressions seen in dotnet/perf-autofiling-issues#20737. |
Currently both of these methods on System.Text.Ascii are on the startup path and are being JIT'd:
They're not using R2R because of use of
Vector<T>
. But theVector<T>
block will only be used if either on big-endian or if Vector128 isn't accelerated. If Vector128 isn't accelerated, then given the current state of our target platforms and backends,Vector<T>
won't be used, either, which means theVector<T>
block is only for big endian. By adding a guard clause for big endian, then, R2R starts being used for these methods:@EgorBo, I am curious why they were showing up as "Instrumented Tier0" without another "Tier0" entry for them first. What causes a non-instrumented tier0 to be skipped?