Why does JET give these "runtime dispatch detected" lines for some LDLFactorizations calls in Tulip

Some frontend issue. This printing is “correct” since LinearAlgebra.ldiv!::typeof(LinearAlgebra.ldiv!) holds true. But I agree with this is better printed as LinearAlgebra.ldiv!(...) instead. If anyone interested in working on this issue, here is code we want to improve: JET.jl/src/abstractinterpret/inferenceerrorreport.jl at 071d3108bb20fd15571f7294aad28c99e20e798a · aviatesk/JET.jl · GitHub

I’m not familiar with LDLFactorizations codebase, but it seems like LDLFactorizations.LDLFactorization{BigFloat} is not really concrete (there seems to be missing type parameters)?

help?> LDLFactorizations.LDLFactorization
  No documentation found.

  Summary
  ≡≡≡≡≡≡≡≡≡

  mutable struct LDLFactorizations.LDLFactorization{T<:Real, Ti<:Integer, Tn<:Integer, Tp<:Integer}

This seems to be a bug of JET (as the call seems to be fully concrete and should be resolved at compile time). Could you please provide me a reproducer?

3 Likes