Skip to content

InvalidIRError: hide GC intrinsics #554

@maleadt

Description

@maleadt

When there's actual useful frames to report, the GC ones are pretty much irrelevant:

julia> map(i->evalpoly(i,p.coefficients), cux)
ERROR: InvalidIRError: compiling MethodInstance for (::GPUArrays.var"#broadcast_kernel#34")(::CUDA.CuKernelContext, ::CuDeviceVector{…}, ::CartesianIndices{…}, ::Base.Broadcast.Broadcasted{…}, ::Int64) resulted in invalid LLVM IR
Reason: unsupported call to an unknown function (call to julia.new_gc_frame)
Stacktrace:
 [1] _broadcast_getindex_evalf
   @ ./broadcast.jl:709
 [2] _broadcast_getindex
   @ ./broadcast.jl:682
 [3] getindex
   @ ./broadcast.jl:636
 [4] broadcast_kernel
   @ ~/Julia/pkg/GPUArrays/src/host/broadcast.jl:62
Reason: unsupported call to an unknown function (call to julia.push_gc_frame)
Stacktrace:
 [1] _broadcast_getindex_evalf
   @ ./broadcast.jl:709
 [2] _broadcast_getindex
   @ ./broadcast.jl:682
 [3] getindex
   @ ./broadcast.jl:636
 [4] broadcast_kernel
   @ ~/Julia/pkg/GPUArrays/src/host/broadcast.jl:62
Reason: unsupported call to an unknown function (call to julia.get_gc_frame_slot)
Stacktrace:
 [1] _broadcast_getindex_evalf
   @ ./broadcast.jl:709
 [2] _broadcast_getindex
   @ ./broadcast.jl:682
 [3] getindex
   @ ./broadcast.jl:636
 [4] broadcast_kernel
   @ ~/Julia/pkg/GPUArrays/src/host/broadcast.jl:62
Reason: unsupported dynamic function invocation (call to getproperty)
Stacktrace:
 [1] #34
   @ ./REPL[25]:1
 [2] _broadcast_getindex_evalf
   @ ./broadcast.jl:709
 [3] _broadcast_getindex
   @ ./broadcast.jl:682
 [4] getindex
   @ ./broadcast.jl:636
 [5] broadcast_kernel
   @ ~/Julia/pkg/GPUArrays/src/host/broadcast.jl:62
Reason: unsupported dynamic function invocation (call to evalpoly)
Stacktrace:
 [1] #34
   @ ./REPL[25]:1
 [2] _broadcast_getindex_evalf
   @ ./broadcast.jl:709
 [3] _broadcast_getindex
   @ ./broadcast.jl:682
 [4] getindex
   @ ./broadcast.jl:636
 [5] broadcast_kernel
   @ ~/Julia/pkg/GPUArrays/src/host/broadcast.jl:62
Reason: unsupported call to an unknown function (call to julia.pop_gc_frame)
Stacktrace:
 [1] _broadcast_getindex_evalf
   @ ./broadcast.jl:709
 [2] _broadcast_getindex
   @ ./broadcast.jl:682
 [3] getindex
   @ ./broadcast.jl:636
 [4] broadcast_kernel
   @ ~/Julia/pkg/GPUArrays/src/host/broadcast.jl:62

However, we can't always hide them, as it's possible that there's GC operations without type instabilities (as commonly encountered with escaping StaticArrays).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions