-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
LLVM assertion failure during StrideArraysCore.jl since Memory{T} change #52702
Comments
It is a StrideArraysCore bug. It is using |
There's another package that triggers this: MCPhylo.jl
At a quick glance, I don't see any |
The bad code generator is in LoopVectorization.jl here: https://github.com/JuliaSIMD/LoopVectorization.jl/blob/d2f749dbf95c161c803f8733e0b4376c441c3a4a/src/condense_loopset.jl#L40 |
Could you elaborate what's illegal about manual |
The thing that's illegal is that these codepaths weren't supposed to run for
so |
Thanks! |
That code probably should not recurse for any immutable object or MemoryRef, since that violates object identity in many cases. For immutable objects, they don't have identify anyways |
Could you maybe suggest how the code should look like? It looks like LoopVectorization.jl was deprecated because of this for Julia 1.11, which is quite sad given the nice performance improvements it can yield. |
In offline discussion, I am told that part of the code is a benchmarking microoptimization, and can simply be deleted with no adverse effect on the package or users |
I have to wonder if @vtjnash being so curt/rude about everything here added to the deprecation |
Reading #52702 (comment), it seems the particular fix here is almost trivial so I doubt that the actual change here that caused the assertion has much to do with it. |
It does seem to be a "straw that breaks the camels back" type situation |
What are the other straws? |
I assume just the significant ongoing maintenance burden as a result of changes to various unstable Julia internals that LV necessarily depends on |
Sadly, that doesn't seem like it's the only required fix. I implemented specifically that change in JuliaSIMD/LoopVectorization.jl#524, but other crashes remain, as documented in JuliaSIMD/LoopVectorization.jl#525 (comment). |
A lot of that code apparently can be simply deleted, as it is an optimization for some benchmarks which isn't generally correct and slows down the compiler (as well as makes is crash-y) |
As seen on PkgEval:
Bisected to #51319 (cc @vtjnash @oscardssmith)
The text was updated successfully, but these errors were encountered: