From 06e670657d7ceebc1845d7c9534a8352c33490de Mon Sep 17 00:00:00 2001 From: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> Date: Wed, 2 Aug 2023 02:46:45 -0400 Subject: [PATCH] Adjust `concrete_eval_eligible` overload to v1.10 (#488) --- src/jlgen.jl | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/jlgen.jl b/src/jlgen.jl index 3d4a175e..8302e3a6 100644 --- a/src/jlgen.jl +++ b/src/jlgen.jl @@ -415,7 +415,25 @@ CC.method_table(interp::GPUInterpreter, sv::CC.InferenceState) = interp.method_t end # semi-concrete interepretation is broken with overlays (JuliaLang/julia#47349) -@static if VERSION >= v"1.9.0-DEV.1248" +@static if VERSION >= v"1.9.0-beta3" +function CC.concrete_eval_eligible(interp::GPUInterpreter, + @nospecialize(f), result::CC.MethodCallResult, arginfo::CC.ArgInfo, sv::CC.InferenceState) + # NOTE it's fine to skip overloading with `sv::IRInterpretationState` since we disables + # semi-concrete interpretation anyway. + ret = @invoke CC.concrete_eval_eligible(interp::CC.AbstractInterpreter, + f::Any, result::CC.MethodCallResult, arginfo::CC.ArgInfo, sv::CC.InferenceState) + @static if VERSION ≥ v"1.10.0-DEV.1345" + if ret === :semi_concrete_eval + return :none + end + else + if ret === false + return nothing + end + end + return ret +end +elseif VERSION >= v"1.9.0-DEV.1248" function CC.concrete_eval_eligible(interp::GPUInterpreter, @nospecialize(f), result::CC.MethodCallResult, arginfo::CC.ArgInfo) ret = @invoke CC.concrete_eval_eligible(interp::CC.AbstractInterpreter,