-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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\Directed\tailcall fails at runtime with jitstress=2 #1752
Comments
See also dotnet/coreclr#27658 This looks like a stress mode imposed issue. We have a method This test has passed jitstress in the past, eg it passes on my 3.0 snapshot, and the same inhibitions were in place there. But stress modes are a function of method hash, and it looks like the method hash has changed since then and new stress modes have been enabled for this method. Timing of the first reported stress failure in dotnet/coreclr#27658 on Nov 3rd lines up nicely with dotnet/coreclr#27147 which went in on Oct 31 and altered method hash computations. Suggest we mark this test as optimization sensitive and exclude it from jitstress. |
You can also explicitly disable this test for that stress mode, eg. However it would probably make more sense to disable this stress mode for functions containing explicit tail calls. By the way, #341 relaxes this and allows explicit tail calls out of functions with stack cookies. |
Thanks @jakobbotsch. Looks like STRESS_UNSAFE_BUFFER_CHECKS could be handled internally (for now) by disabling it if there are explicit tail calls. But if that limitation is about to be relaxed, I will update the proj file insteaed. STRESS_GENERIC_VARN sets compGcChecks early before we've imported anything, but it looks like we could selectively disable the check (added in |
Make STRESS_GENERIC_VARN more compatible with methods that make explicit tail calls. Don't add gc checks for explicit tail calls, and remove the code in morph that blocks tail calls if gc checks are active. Update the tailcall test to to disable STRESS_UNSAFE_BUFFER_CHECKS. This can be reverted when dotnet#314 is merged. Fixes dotnet#1752.
Make STRESS_GENERIC_VARN more compatible with methods that make explicit tail calls. Don't add gc checks for explicit tail calls, and remove the code in morph that blocks tail calls if gc checks are active. Update the tailcall test to to disable STRESS_UNSAFE_BUFFER_CHECKS. This can be reverted when #341 is merged. Fixes #1752.
The text was updated successfully, but these errors were encountered: