Skip to content

Commit cecf20b

Browse files
authored
Add a cache for method table queries within the same inference invocation. (#292)
1 parent 5223e58 commit cecf20b

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/jlgen.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,8 @@ end
166166

167167
## interpreter
168168

169-
using Core.Compiler: AbstractInterpreter, InferenceResult, InferenceParams, InferenceState, OptimizationParams
169+
using Core.Compiler: AbstractInterpreter, InferenceResult, InferenceParams, InferenceState,
170+
OptimizationParams, CachedMethodTable
170171

171172
struct GPUInterpreter <: AbstractInterpreter
172173
global_cache::CodeCache
@@ -224,11 +225,12 @@ Core.Compiler.verbose_stmt_info(interp::GPUInterpreter) = false
224225
end
225226

226227
if isdefined(Base.Experimental, Symbol("@overlay"))
228+
using Core.Compiler: OverlayMethodTable
227229
Core.Compiler.method_table(interp::GPUInterpreter, sv::InferenceState) =
228-
Core.Compiler.OverlayMethodTable(interp.world, interp.method_table)
230+
CachedMethodTable(OverlayMethodTable(interp.world, interp.method_table))
229231
else
230232
Core.Compiler.method_table(interp::GPUInterpreter, sv::InferenceState) =
231-
WorldOverlayMethodTable(interp.world)
233+
CachedMethodTable(WorldOverlayMethodTable(interp.world))
232234
end
233235

234236

0 commit comments

Comments
 (0)