-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
Using JET.jl avi/demo with JuliaLowering:
julia> report_opt(Float64, (BigFloat,))
═════ 3 possible errors found ═════
┌ Float64(x::BigFloat) @ Base.MPFR ./mpfr.jl:546
│┌ Float64(x::BigFloat, r::Base.MPFR.MPFRRoundingMode) @ Base.MPFR ./mpfr.jl:546
││┌ to_ieee754(::Type{Float64}, x::BigFloat, rm::Base.MPFR.MPFRRoundingMode) @ Base.MPFR ./mpfr.jl:522
│││┌ correct_rounding_requires_increment(x::Base.MPFR.BigFloatDataRoundingIncrementHelper{…}, rounding_mode::Base.MPFR.MPFRRoundingMode, sign_bit::Bool) @ Base.Rounding ./rounding.jl:144
││││┌ (::Base.Rounding.var"#correct_rounding_requires_increment##0#correct_rounding_requires_increment##1"{…})(z::Base.Rounding.RoundBit) @ Base.Rounding ./:141
│││││ runtime dispatch detected: %1::Any(z::Base.Rounding.RoundBit)::Any
││││└────────────────────
│││┌ correct_rounding_requires_increment(x::Base.MPFR.BigFloatDataRoundingIncrementHelper{…}, rounding_mode::Base.MPFR.MPFRRoundingMode, sign_bit::Bool) @ Base.Rounding ./rounding.jl:145
││││┌ (::Base.Rounding.var"#correct_rounding_requires_increment##0#correct_rounding_requires_increment##1"{…})(z::Base.Rounding.StickyBit) @ Base.Rounding ./:141
│││││ runtime dispatch detected: %1::Any(z::Base.Rounding.StickyBit)::Any
││││└────────────────────
│││┌ correct_rounding_requires_increment(x::Base.MPFR.BigFloatDataRoundingIncrementHelper{…}, rounding_mode::Base.MPFR.MPFRRoundingMode, sign_bit::Bool) @ Base.Rounding ./rounding.jl:149
││││┌ (::Base.Rounding.var"#correct_rounding_requires_increment##0#correct_rounding_requires_increment##1"{…})(z::Base.Rounding.FinalBit) @ Base.Rounding ./:141
│││││ runtime dispatch detected: %1::Any(z::Base.Rounding.FinalBit)::Any
││││└────────────────────compared to standard JET.jl + Scheme lowering:
julia> report_opt(Float64, (BigFloat,))
No errors detectedSeems that:
f = let y = x
(z::Union{FinalBit,RoundBit,StickyBit}) -> y(z)::Bool
endis not able to infer / propagate f for some reason (it is the %1::Any above)
Metadata
Metadata
Assignees
Labels
No labels