Skip to content

Bounds error debugging @avx from LoopVectorization #393

@baggepinnen

Description

@baggepinnen

The code below runs fine normally, but causes a bounds error when run using the debugger

julia> using LoopVectorization

julia> function debugfun(x)
           s = 0.0
           @avx for i in eachindex(x)
               s += x[i]
           end
           s
       end
debugfun (generic function with 1 method)

julia> @run debugfun(randn(3))
ERROR: BoundsError: attempt to access 4-element Array{Any,1} at index [5]
Stacktrace:
 [1] getindex at ./array.jl:788 [inlined]
 [2] build_compiled_call!(::Expr, ::Function, ::Core.CodeInfo, ::Int64, ::Int64, ::Array{Symbol,1}, ::Module) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/optimize.jl:327
 [3] optimize!(::Core.CodeInfo, ::Method) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/optimize.jl:168
 [4] JuliaInterpreter.FrameCode(::Method, ::Core.CodeInfo; generator::Bool, optimize::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/types.jl:88
 [5] prepare_framecode(::Method, ::Any; enter_generated::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/construct.jl:189
 [6] prepare_call(::Any, ::Array{Any,1}; enter_generated::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/construct.jl:260
 [7] get_call_framecode(::Array{Any,1}, ::JuliaInterpreter.FrameCode, ::Int64; enter_generated::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/localmethtable.jl:63
 [8] evaluate_call_recurse!(::Any, ::JuliaInterpreter.Frame, ::Expr; enter_generated::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/interpret.jl:225
 [9] evaluate_call_recurse! at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/interpret.jl:202 [inlined]
 [10] eval_rhs(::Any, ::JuliaInterpreter.Frame, ::Expr) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/interpret.jl:387
 [11] step_expr!(::Any, ::JuliaInterpreter.Frame, ::Any, ::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/interpret.jl:443
 [12] step_expr!(::Any, ::JuliaInterpreter.Frame, ::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/interpret.jl:566
 [13] finish!(::Any, ::JuliaInterpreter.Frame, ::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/commands.jl:14
 [14] finish_and_return! at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/commands.jl:29 [inlined]
 [15] evaluate_call_recurse!(::Any, ::JuliaInterpreter.Frame, ::Expr; enter_generated::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/interpret.jl:240
 [16] evaluate_call_recurse! at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/interpret.jl:202 [inlined]
 [17] eval_rhs(::Any, ::JuliaInterpreter.Frame, ::Expr) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/interpret.jl:387
 [18] step_expr!(::Any, ::JuliaInterpreter.Frame, ::Any, ::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/interpret.jl:522
 [19] step_expr!(::Any, ::JuliaInterpreter.Frame, ::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/interpret.jl:566
 [20] finish!(::Any, ::JuliaInterpreter.Frame, ::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/commands.jl:14
 [21] finish_and_return!(::Any, ::JuliaInterpreter.Frame, ::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/commands.jl:29
 [22] finish_stack!(::Any, ::JuliaInterpreter.Frame, ::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/commands.jl:59
 [23] debug_command(::Any, ::JuliaInterpreter.Frame, ::Symbol, ::Bool; line::Nothing) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/commands.jl:449
 [24] debug_command(::Any, ::JuliaInterpreter.Frame, ::Symbol, ::Bool) at /home/fredrikb/.julia/packages/JuliaInterpreter/R1LXQ/src/commands.jl:391
 [25] (::Atom.JunoDebugger.var"#54#56"{Bool,Bool,Bool})() at /home/fredrikb/.julia/packages/Atom/9h5Up/src/debugger/stepper.jl:153
 [26] evalscope(::Atom.JunoDebugger.var"#54#56"{Bool,Bool,Bool}) at /home/fredrikb/.julia/packages/Atom/9h5Up/src/debugger/stepper.jl:386
 [27] startdebugging(::JuliaInterpreter.Frame, ::Bool; istoplevel::Bool, toggle_ui::Bool) at /home/fredrikb/.julia/packages/Atom/9h5Up/src/debugger/stepper.jl:151
 [28] startdebugging(::JuliaInterpreter.Frame, ::Bool) at /home/fredrikb/.julia/packages/Atom/9h5Up/src/debugger/stepper.jl:137
 [29] top-level scope at /home/fredrikb/.julia/packages/Atom/9h5Up/src/debugger/stepper.jl:50

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions