Ah okay.

I sort of assumed red = bad hehe. I guess I need to practice reading the 
output more.

Thank you,

// Kristoffer

On Friday, February 20, 2015 at 2:47:37 PM UTC+1, Tim Holy wrote:
>
> It's not actually type-unstable. Note that the "::Any" annotation is on 
> GetfieldNode(Base.Math,:sqrt_llvm), i.e., the lookup of the :sqrt_llvm 
> symbol 
> inside Base.Math. 
>
> Any PRs helping to improve the logic of code_warntype are appreciated. 
>
> --Tim 
>
> On Friday, February 20, 2015 01:00:07 PM Mauro wrote: 
> > This might be something wrong in @code_warntype as @code_llvm and 
> > @code_native give the same output. 
> > 
> > On Fri, 2015-02-20 at 12:20, Kristoffer Carlsson <[email protected] 
> <javascript:>> 
> wrote: 
> > > I had a type instability in my program and I condensed it down to this 
> > > minimal working example. 
> > > 
> > > Why is sqrt2 here unstable? The variable a should be inferred to 
> always be 
> > > a Float64 and then the function should be stable just like the normal 
> > > sqrt function is? 
> > > 
> > > 
> > > julia> function sqrt2(a::Float64) 
> > > 
> > >        return sqrt(a) 
> > >        end 
> > > 
> > > sqrt2 (generic function with 1 method) 
> > > 
> > > 
> > > 
> > > julia> @code_warntype sqrt2(5.0) 
> > > 
> > > Variables: 
> > >   a::Float64 
> > > 
> > > Body: 
> > >   begin  # none, line 2: 
> > >       return 
> > >       
> (GetfieldNode(Base.Math,:box,Any))(Float64,(GetfieldNode(Base.Math 
> > > 
> > > ,:sqrt_llvm,Any))(a::Float64)::Any)::Float64 
> > > 
> > >   end::Float64 
> > > 
> > > julia> @code_warntype sqrt(5.0) 
> > > 
> > > Variables: 
> > >   x::Float64 
> > > 
> > > Body: 
> > >   begin  # math.jl, line 130: 
> > >       return box(Float64,sqrt_llvm(x::Float64)) 
> > >   
> > >   end::Float64 
> > > 
> > > Best regards, 
> > > Kristoffer Carlsson 
>
>

Reply via email to