Shuhei Kadowaki
Shuhei Kadowaki
I see, in that case, it seems necessary to use https://github.com/JuliaLang/julia/pull/54322 and mark `throw_boundserror` as `@consistent_overlay`. Since `throw_boundserror` always just throws, it should be `@consistent_overlay`. I'm checking it locally.
Yeah, I confirmed it fixes the issue if we overlay it as `@consistent_overlay CUDA_2241_MT @inline Base.throw_boundserror(A, I) = error()`.
Ah I see, so our situation is trickier than I thought... In this case, both the original and `@overlay`ed `throw_boundserror` will unconditionally `throw`, so it is indeed `@consistent_overlay`, but the...
@maleadt After further investigation, it seems that simply using `@consistent_overlay` should suffice (there's no need to modify the implementation of the overlayed `throw_boundserror` and refine its effects). CUDA's `throw_boundserror` does...
Even if the effects mismatch, there is no problem using `@consistent_overlay`. To summarize the usage conditions of `@consistent_overlay` explained in JuliaLang/julia#54322 concisely: - If `f(x)` returns a value, `f′(x)` must...
I think this refactoring approach is a really good idea overall. I've wanted `descend(...; interp=MyInterpreter())` to be truly functional for years, but I still haven't gotten around to it. I'd...
If a method is declared as `@noinline`, then we skip the inlining cost model calculation for it and just mark it non-inlineable: https://github.com/JuliaLang/julia/blob/760b2e5b7396f9cc0da5efce0cadd5d1974c4069/base/compiler/optimize.jl#L491-L492 I guess this causes the issue?
Indeed, TypedSyntax.jl needs to be bumped to use JuliaSyntax v1, but the test case modifications haven't been completed yet. I tried to update it at JuliaDebug/Cthulhu.jl#637 but it's not finished...
I think we should do all of them ideally, but I won't have time for them in the next week or so. Is it better to do them before this...
Yes, since `unoptimize_throw_blocks` is still present in v1.11, you might be able to resolve this issue by disabling it like `InferenceParams(::GPUInterpreter) = InferenceParams(; unoptimize_throw_blocks=false)`.