With this patch:
diff --git a/src/ssair/inlining.jl b/src/ssair/inlining.jl
index c7e052e..0afdfd5 100644
--- a/src/ssair/inlining.jl
+++ b/src/ssair/inlining.jl
@@ -1643,6 +1643,10 @@ function assemble_inline_todo!(ir::IRCode, state::InliningState)
continue
end
+ if sig.f === Core.invoke
+ @show info
+ end
+
# handle special cased builtins
if isa(info, OpaqueClosureCallInfo)
handle_opaque_closure_call!(todo, ir, idx, stmt, info, flag, sig, state)
and the testcast from #19, calls to evalpoly fail to inline
info = FRuleCallInfo(Compiler.InvokeCallInfo, Compiler.ConstCallInfo)
info = FRuleCallInfo(Compiler.InvokeCallInfo, Compiler.ConstCallInfo)
We should either the order of the infos (although InvokeCallInfo does not support a nested general info), or make inlining robust to this case.
With this patch:
and the testcast from #19, calls to
evalpolyfail to inlineWe should either the order of the infos (although
InvokeCallInfodoes not support a nested general info), or make inlining robust to this case.