Shuhei Kadowaki
Shuhei Kadowaki
Close this in favor of #55625.
I mostly agree with this approach. It would be very nice to make inference resumable. There are some performance concerns with creating a large number of closures, but we can...
Also, we might need an alternative for the timing framework. It was never entirely accurate in the presence of recursive calls, so it might make sense to remove it altogether....
@nanosoldier `runbenchmarks("inference", vs=":master")`
As Jameson suggested on Slack, adding a guard on the side that consumes `Conditional` might be a better solution. This PR assumes that the slot assignment is always visited before...
@nanosoldier `runbenchmarks("inference", vs=":master")`
> As Jameson suggested on Slack, adding a guard on the side that consumes `Conditional` might be a better solution. I tried implementing 22249491d463305e904d2e3a8859048e6f4b1331 with this approach, but it ended...
We might need to pass `InferenceState` to `stupdate!` or `stoverwrite!` and call `ssa_def_slot` from there https://github.com/JuliaLang/julia/blob/84831302997263c70375be070ef0df244fbe5b75/base/compiler/abstractinterpretation.jl#L1443-L1492 Although `ssa_def_slot` might not be entirely sound either... That being said, the correct way...
Allocation regression would be fixed by https://github.com/JuliaLang/JuliaSyntax.jl/pull/559, but there still seem to remain the time regression.
I will give them reviews quickly.