Skip to content

Commit

Permalink
fixup test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
aviatesk committed Apr 23, 2024
1 parent 64b1d17 commit d84bbb3
Showing 1 changed file with 9 additions and 13 deletions.
22 changes: 9 additions & 13 deletions test/compiler/AbstractInterpreter.jl
Original file line number Diff line number Diff line change
Expand Up @@ -373,12 +373,15 @@ let src = code_typed1((Float64,Float64,Float64)) do x, y, z
@test count(iscall((src, inlined_usually)), src.code) == 0
end
let NoinlineModule = Module()
OtherModule = Module()
main_func(x, y, z) = inlined_usually(x, y, z)
@eval NoinlineModule noinline_func(x, y, z) = $inlined_usually(x, y, z)
@eval OtherModule other_func(x, y, z) = $inlined_usually(x, y, z)

interp = NoinlineInterpreter(Set((NoinlineModule,)))

# this anonymous function's context is Main -- it should be inlined as usual
let src = code_typed1((Float64,Float64,Float64); interp) do x, y, z
inlined_usually(x, y, z)
end
let src = code_typed1(main_func, (Float64,Float64,Float64); interp)
@test count(isinvoke(:inlined_usually), src.code) == 0
@test count(iscall((src, inlined_usually)), src.code) == 0
end
Expand All @@ -387,26 +390,19 @@ let NoinlineModule = Module()
method = only(methods(inlined_usually, (Float64,Float64,Float64,)))
mi = CC.specialize_method(method, Tuple{typeof(inlined_usually),Float64,Float64,Float64}, Core.svec())
@test CC.haskey(CC.code_cache(interp), mi)
let src = code_typed1((Float64,Float64,Float64); interp) do x, y, z
inlined_usually(x, y, z)
end
let src = code_typed1(main_func, (Float64,Float64,Float64); interp)
@test count(isinvoke(:inlined_usually), src.code) == 0
@test count(iscall((src, inlined_usually)), src.code) == 0
end

# now the context module is `NoinlineModule` -- it should not be inlined
let src = @eval NoinlineModule $code_typed1((Float64,Float64,Float64); interp=$interp) do x, y, z
$inlined_usually(x, y, z)
end
let src = code_typed1(NoinlineModule.noinline_func, (Float64,Float64,Float64); interp)
@test count(isinvoke(:inlined_usually), src.code) == 1
@test count(iscall((src, inlined_usually)), src.code) == 0
end

# the context module is totally irrelevant -- it should be inlined as usual
OtherModule = Module()
let src = @eval OtherModule $code_typed1((Float64,Float64,Float64); interp=$interp) do x, y, z
$inlined_usually(x, y, z)
end
let src = code_typed1(OtherModule.other_func, (Float64,Float64,Float64); interp)
@test count(isinvoke(:inlined_usually), src.code) == 0
@test count(iscall((src, inlined_usually)), src.code) == 0
end
Expand Down

0 comments on commit d84bbb3

Please sign in to comment.