@@ -305,11 +305,7 @@ widenincidence(@nospecialize(x)) = x
305305 end
306306 end
307307 arginfo = ArgInfo (arginfo. fargs, map (widenincidence, arginfo. argtypes))
308- r = Diffractor. fwd_abstract_call_gf_by_type (interp, f, arginfo, si, sv, ret)
309- return Future {CallMeta} (CC. isready (r) ? ret : r, interp, sv) do _, interp, sv
310- r[] != = nothing && return r[]
311- return ret[]
312- end
308+ return Diffractor. fwd_abstract_call_gf_by_type (interp, f, arginfo, si, sv, ret)
313309end
314310
315311@override function CC. abstract_call_method (interp:: DAEInterpreter ,
447443
448444# TODO propagate debug configurations here
449445@override function CC. optimize (interp:: DAEInterpreter , opt:: OptimizationState , caller:: InferenceResult )
450- ir = CC. run_passes_ipo_safe (opt. src, opt, caller )
446+ ir = CC. run_passes_ipo_safe (opt. src, opt)
451447 ir = run_dae_passes (interp, ir)
452- CC. ipo_dataflow_analysis! (interp, ir, caller)
448+ CC. ipo_dataflow_analysis! (interp, opt, ir, caller)
453449 if interp. ipo_analysis_mode
454450 result = ipo_dae_analysis! (interp, ir, caller. linfo, caller)
455451 if result != = nothing
@@ -528,14 +524,10 @@ end
528524 src === nothing && return nothing
529525 (; inferred, ir) = src:: DAECache
530526 (isa (inferred, CodeInfo) && isa (ir, IRCode)) || return nothing
531- method_info = CC. MethodInfo (inferred)
527+ method_info = CC. SpecInfo (inferred)
532528 ir = copy (ir)
533529 (; min_world, max_world) = inferred
534- if Base. __has_internal_change (v " 1.12-alpha" , :codeinfonargs )
535- argtypes = CC. va_process_argtypes (CC. optimizer_lattice (interp), argtypes, inferred. nargs, inferred. isva)
536- elseif VERSION >= v " 1.12.0-DEV.341"
537- argtypes = CC. va_process_argtypes (CC. optimizer_lattice (interp), argtypes, mi)
538- end
530+ argtypes = CC. va_process_argtypes (CC. optimizer_lattice (interp), argtypes, inferred. nargs, inferred. isva)
539531 return IRInterpretationState (interp, method_info, ir, mi, argtypes,
540532 world, min_world, max_world)
541533end
@@ -1224,7 +1216,8 @@ function infer_ir!(ir, interp::AbstractInterpreter, mi::MethodInstance)
12241216 end
12251217 end
12261218
1227- method_info = CC. MethodInfo (#= propagate_inbounds=# true , nothing )
1219+ (nargs, isva) = isa (mi. def, Method) ? (mi. def. nargs, mi. def. isva) : (0 , false )
1220+ method_info = CC. SpecInfo (nargs, isva, #= propagate_inbounds=# true , nothing )
12281221 min_world = world = get_inference_world (interp)
12291222 max_world = get_world_counter ()
12301223 irsv = IRInterpretationState (interp, method_info, ir, mi, ir. argtypes, world, min_world, max_world)
0 commit comments