-
Notifications
You must be signed in to change notification settings - Fork 41
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
Avoid crashing in case of alias detection failure #607
Avoid crashing in case of alias detection failure #607
Conversation
Simply use the conservative may alias value instead.
Should fix crashes in implicit null checks pass dotnet/runtime#105319 cc @radekdoulik |
@BrzVlad is this a bug upstream? I don't think the implicit null checks pass is heavily used. Can we isolate a test case where the operand doesn't have a value? |
We actually added the same check for |
I'm not sure. the reason llvm-project/llvm/include/llvm/CodeGen/MachineMemOperand.h Lines 203 to 214 in 190606b
So maybe we're the only ones who do implicit null checks of stack pointer offsets, for example? |
ImplicitNullChecks only fires on branches tagged with For example we emit it for the which will end up with a stack operand if someone is using atomic increment on a local for some misguided reason. |
@lambdageek I agree this is likely not a proper fix. I gave up quickly trying to undertand what exactly is leading to this crash since it didn't seem trivial and avoiding crashes is high priority. Further investigation would be preferable at some point. |
How long does it take for this change to become effective inside dotnet/runtime? We are still seeing failures on the CI https://dev.azure.com/dnceng-public/public/_build/results?buildId=766538&view=logs&j=bb18f708-6684-5381-2c5c-c995f6debaa3&t=644a1944-383a-5910-653c-070240832801 |
@matouskozak It has to be bumped manually dotnet/runtime#105867. I just triggered a new run there since it was still crashing before due to some simd intrinsic failures, which might have been caused by one of @tannergooding changes while llvm x64 ci was broken. |
The failures were fixed in dotnet/runtime#105538 but we verified it only on arm64. Let's see how the new run goes. |
I already had that commit when testing locally. Also I fixed a crash by replacing |
Is there still a crash or issue that I need to look at here? Was this missed or masked by CI due to the broader LLVM issue that existed? |
@tannergooding The crash was caused by dotnet/runtime@4fbd498cc25c. It is x64 specific. I reproduced it on MacOS with the llvm bump from dotnet/runtime#105867. I suspect it reproduces the same on linux. The steps to repro should look something like this: |
Also note that I tried fixing the crash (the second commit in the linked PR), which seemed to be caused by accidental unitialized passing of |
Simply use the conservative may alias value instead.
Simply use the conservative may alias value instead.
Simply use the conservative may alias value instead.
Simply use the conservative may alias value instead.
Simply use the conservative may alias value instead.