Skip to content

Commit e54a20d

Browse files
authored
Only use CachedMethodTable when available. (#434)
1 parent 7a45af6 commit e54a20d

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/jlgen.jl

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -422,17 +422,31 @@ end
422422

423423
using Core.Compiler:
424424
AbstractInterpreter, InferenceResult, InferenceParams, InferenceState,
425-
OptimizationParams, MethodTableView, CachedMethodTable
425+
OptimizationParams, MethodTableView
426426

427427
if isdefined(Base.Experimental, Symbol("@overlay"))
428428
using Core.Compiler: OverlayMethodTable
429-
const GPUMethodTableView = CachedMethodTable{OverlayMethodTable}
430429
const MTType = Core.MethodTable
431-
get_method_table_view(world::UInt, mt::MTType) = CachedMethodTable(OverlayMethodTable(world, mt))
430+
if isdefined(Core.Compiler, :CachedMethodTable)
431+
using Core.Compiler: CachedMethodTable
432+
const GPUMethodTableView = CachedMethodTable{OverlayMethodTable}
433+
get_method_table_view(world::UInt, mt::MTType) =
434+
CachedMethodTable(OverlayMethodTable(world, mt))
435+
else
436+
const GPUMethodTableView = OverlayMethodTable
437+
get_method_table_view(world::UInt, mt::MTType) = OverlayMethodTable(world, mt)
438+
end
432439
else
433-
const GPUMethodTableView = CachedMethodTable{WorldOverlayMethodTable}
434440
const MTType = Nothing
435-
get_method_table_view(world::UInt, mt::MTType) = CachedMethodTable(WorldOverlayMethodTable(world))
441+
if isdefined(Core.Compiler, :CachedMethodTable)
442+
using Core.Compiler: CachedMethodTable
443+
const GPUMethodTableView = CachedMethodTable{WorldOverlayMethodTable}
444+
get_method_table_view(world::UInt, mt::MTType) =
445+
CachedMethodTable(WorldOverlayMethodTable(world))
446+
else
447+
const GPUMethodTableView = WorldOverlayMethodTable
448+
get_method_table_view(world::UInt, mt::MTType) = WorldOverlayMethodTable(world)
449+
end
436450
end
437451

438452
struct GPUInterpreter <: AbstractInterpreter

0 commit comments

Comments
 (0)