Uh oh!
There was an error while loading. Please reload this page.
Remove class constraint from Interlocked.{Compare}Exchange - #104558
Conversation
Tagging subscribers to this area: @mangod9 |
3b6379c to
0ad780bComparestephentoub
commented
Jul 8, 2024
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
c8afae7 to
f1ed396Comparea729caf to
b23c285Compareb23c285 to
1bff925Compare1bff925 to
8a57ce2CompareUh oh!
There was an error while loading. Please reload this page.
30acb0b to
116f650Comparejkotas
commented
Jul 18, 2024
@lambdageek@steveisok Are there any Mono-specific concerns related to this change? |
3ae4df4 to
1d192f9Comparelambdageek
commented
Jul 18, 2024
Are there new/existing tests for the throwing behavior? If mono is green, one of two things is wrong (I'm on a phone and can't check):
/cc @kg |
stephentoub
commented
Jul 18, 2024
Yes:
The mono legs are green (or at least the failures in the wasm legs are unrelated). Are you saying something is definitely wrong, or are you saying if something were wrong and going unnoticed it would be those? From what I could tell, mono's intrinsic implementations here already only support a subset of what the APIs do and already fall back to the managed implementations for other cases, and the throwing behavior is handled in the managed implementation. Did I misunderstand how things fit together? |
lambdageek
commented
Jul 18, 2024
I think we should keep an eye on the perf runs - I wonder if generic sharing will see a perf regression. Also startup perf on the interpreter might be affected since it doesn't do many optimizations in Tier0.
No, I think it's fine. In JIT/AOT we handle two cases: In the interpreter we only seem to handle tl;dr:
|
lambdageek
commented
Jul 18, 2024
oh, in case it wasn't clear: I don't think we should hold up this PR due to #104558 (comment) - just that we have some follow-up work |
stephentoub
commented
Jul 18, 2024
Thanks, @lambdageek. In that case, I think the remaining blocker is just figuring out why I'm getting some invalid program exceptions with native aot :) |
MichalStrehovsky
commented
Jul 19, 2024
Pushed out a fix for that. There was also a problem in crossgen2 but there it was just a deoptimization since we skip compiling methods with invalid IL and leave it to JIT. |
stephentoub
commented
Jul 19, 2024
Thank you, @MichalStrehovsky! It would have taken me a while to discover the existence of TryGetIntrinsicMethodIL vs TryGetPerInstantiationIntrinsicMethodIL. |
stephentoub
commented
Jul 19, 2024
Thanks, all. |
#65184