-
Notifications
You must be signed in to change notification settings - Fork 73
Open
Description
julia> using KernelAbstractions
julia> @kernel function fill_kernel!(a)
idx = @index(Global, Linear)
a[idx] = 1.0
end
fill_kernel! (generic function with 4 methods)
julia> kernel = fill_kernel!(POCLBackend())
KernelAbstractions.Kernel{POCLBackend, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, typeof(gpu_fill_kernel!)}(POCLBackend(), gpu_fill_kernel!)
julia> a = rand(10)
10-element Vector{Float64}:
0.6822692440313737
0.3371782119612552
0.8457634072442086
0.20465783758160327
0.5169753967593322
0.016227699974923127
0.7989457129155456
0.5807788656724961
0.33162929814084385
0.0942627377125238
julia> kernel(a; ndrange = 10)
InvalidModule: Invalid SPIR-V module: Casts from private/local/global address space are allowed only to generic
%1 = addrspacecast ptr addrspace(1) @exception to ptr
ERROR: Failed to translate LLVM code to SPIR-V.
If you think this is a bug, please file an issue and attach /tmp/jl_cjYj07yDYX.bc.
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:44
[2] mcgen(job::GPUCompiler.CompilerJob{GPUCompiler.SPIRVCompilerTarget, KernelAbstractions.POCL.OpenCLCompilerParams}, mod::LLVM.Module, format::LLVM.API.LLVMCodeGenFileType)
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/spirv.jl:154
[3] macro expansion
@ ~/.julia/packages/Tracy/slmNc/src/tracepoint.jl:163 [inlined]
[4] macro expansion
@ ~/.julia/dev/GPUCompiler/src/driver.jl:406 [inlined]
[5] macro expansion
@ ~/.julia/packages/Tracy/slmNc/src/tracepoint.jl:163 [inlined]
[6] emit_asm(job::GPUCompiler.CompilerJob, ir::LLVM.Module, format::LLVM.API.LLVMCodeGenFileType)
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/driver.jl:403
[7] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/driver.jl:115
[8] compile_unhooked
@ ~/.julia/dev/GPUCompiler/src/driver.jl:80 [inlined]
[9] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/driver.jl:67
[10] compile
@ ~/.julia/dev/GPUCompiler/src/driver.jl:55 [inlined]
[11] #compile##0
@ ~/.julia/dev/KernelAbstractions/src/pocl/compiler/compilation.jl:62 [inlined]
[12] JuliaContext(f::KernelAbstractions.POCL.var"#compile##0#compile##1"{GPUCompiler.CompilerJob{GPUCompiler.SPIRVCompilerTarget, KernelAbstractions.POCL.OpenCLCompilerParams}}; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/driver.jl:34
[13] JuliaContext(f::Function)
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/driver.jl:25
[14] compile(job::GPUCompiler.CompilerJob)
@ KernelAbstractions.POCL ~/.julia/dev/KernelAbstractions/src/pocl/compiler/compilation.jl:61
[15] actual_compilation(cache::Dict{…}, src::Core.MethodInstance, world::UInt64, cfg::GPUCompiler.CompilerConfig{…}, compiler::typeof(KernelAbstractions.POCL.compile), linker::typeof(KernelAbstractions.POCL.link))
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/execution.jl:245
[16] cached_compilation(cache::Dict{Any, Any}, src::Core.MethodInstance, cfg::GPUCompiler.CompilerConfig{GPUCompiler.SPIRVCompilerTarget, KernelAbstractions.POCL.OpenCLCompilerParams}, compiler::Function, linker::Function)
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/execution.jl:159
[17] macro expansion
@ ~/.julia/dev/KernelAbstractions/src/pocl/compiler/execution.jl:201 [inlined]
[18] macro expansion
@ ./lock.jl:376 [inlined]
[19] clfunction(f::typeof(gpu_fill_kernel!), tt::Type{Tuple{KernelAbstractions.CompilerMetadata{…}, KernelAbstractions.POCL.CLDeviceVector{…}}}; kwargs::@Kwargs{})
@ KernelAbstractions.POCL ~/.julia/dev/KernelAbstractions/src/pocl/compiler/execution.jl:196
[20] clfunction
@ ~/.julia/dev/KernelAbstractions/src/pocl/compiler/execution.jl:192 [inlined]
[21] macro expansion
@ ~/.julia/dev/KernelAbstractions/src/pocl/compiler/execution.jl:67 [inlined]
[22] (::KernelAbstractions.Kernel{POCLBackend, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, typeof(gpu_fill_kernel!)})(args::Vector{Float64}; ndrange::Int64, workgroupsize::Nothing)
@ KernelAbstractions.POCL.POCLKernels ~/.julia/dev/KernelAbstractions/src/pocl/backend.jl:114
[23] top-level scope
@ REPL[6]:1
[24] top-level scope
@ REPL:1
caused by: failed process: Process(setenv(`/home/simeon/.julia/artifacts/4a726d5d664f0ce91f1a3574ee443942454369d5/bin/llvm-spirv -o /tmp/jl_41cf0Pm7sP.spv /tmp/jl_cjYj07yDYX.bc --spirv-debug-info-version=ocl-100 --spirv-max-version=1.2`,["_P9K_TTY=/dev/pts/3", "POCL_ARGS_CLANG=-fuse-ld=lld;--ld-path=/home/simeon/.julia/scratchspaces/627d6b7a-bbe6-5189-83e7-98cc0a5aeadd/bin/lld;-L;/home/simeon/.julia/artifacts/335e91adc50bc361682926789360ef6150603b44/share/lib;-L;/home/simeon/.julia/scratchspaces/627d6b7a-bbe6-5189-83e7-98cc0a5aeadd/lib", "LD_LIBRARY_PATH=/home/simeon/.julia/artifacts/4db1e58d71ac6bbb35ecc832033264c630d5d3b3/lib:/home/simeon/Documents/Julia/julia/usr/bin/../lib/julia:/home/simeon/Documents/Julia/julia/usr/bin/../lib", "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus", "MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles:/usr/share/modulefiles", "DEBUGINFOD_IMA_CERT_PATH=/etc/keys/ima:", "LESS_TERMCAP_mb=\e[01;32m", "XDG_SESSION_TYPE=wayland", "SYSTEMD_EXEC_PID=6574", "USER=simeon" … "_=/home/simeon/Documents/Julia/julia/julia", "LESS_TERMCAP_ue=\e[0m", "MEMORY_PRESSURE_WRITE=c29tZSAyMDAwMDAgMjAwMDAwMAA=", "MODULESHOME=/usr/share/Modules", "XDG_SESSION_CLASS=user", "GNOME_SETUP_DISPLAY=:1", "MODULES_RUN_QUARANTINE=LD_LIBRARY_PATH LD_PRELOAD", "HISTCONTROL=ignoredups", "MAIL=/var/spool/mail/simeon", "LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.7z=01;31:*.ace=01;31:*.alz=01;31:*.apk=01;31:*.arc=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cab=01;31:*.cpio=01;31:*.crate=01;31:*.deb=01;31:*.drpm=01;31:*.dwm=01;31:*.dz=01;31:*.ear=01;31:*.egg=01;31:*.esd=01;31:*.gz=01;31:*.jar=01;31:*.lha=01;31:*.lrz=01;31:*.lz=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.lzo=01;31:*.pyz=01;31:*.rar=01;31:*.rpm=01;31:*.rz=01;31:*.sar=01;31:*.swm=01;31:*.t7z=01;31:*.tar=01;31:*.taz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tgz=01;31:*.tlz=01;31:*.txz=01;31:*.tz=01;31:*.tzo=01;31:*.tzst=01;31:*.udeb=01;31:*.war=01;31:*.whl=01;31:*.wim=01;31:*.xz=01;31:*.z=01;31:*.zip=01;31:*.zoo=01;31:*.zst=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:"]), ProcessExited(10)) [10]
Stacktrace:
[1] pipeline_error
@ ./process.jl:598 [inlined]
[2] run(::Cmd; wait::Bool)
@ Base ./process.jl:513
[3] run
@ ./process.jl:510 [inlined]
[4] mcgen(job::GPUCompiler.CompilerJob{GPUCompiler.SPIRVCompilerTarget, KernelAbstractions.POCL.OpenCLCompilerParams}, mod::LLVM.Module, format::LLVM.API.LLVMCodeGenFileType)
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/spirv.jl:152
[5] macro expansion
@ ~/.julia/packages/Tracy/slmNc/src/tracepoint.jl:163 [inlined]
[6] macro expansion
@ ~/.julia/dev/GPUCompiler/src/driver.jl:406 [inlined]
[7] macro expansion
@ ~/.julia/packages/Tracy/slmNc/src/tracepoint.jl:163 [inlined]
[8] emit_asm(job::GPUCompiler.CompilerJob, ir::LLVM.Module, format::LLVM.API.LLVMCodeGenFileType)
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/driver.jl:403
[9] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/driver.jl:115
[10] compile_unhooked
@ ~/.julia/dev/GPUCompiler/src/driver.jl:80 [inlined]
[11] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/driver.jl:67
[12] compile
@ ~/.julia/dev/GPUCompiler/src/driver.jl:55 [inlined]
[13] #compile##0
@ ~/.julia/dev/KernelAbstractions/src/pocl/compiler/compilation.jl:62 [inlined]
[14] JuliaContext(f::KernelAbstractions.POCL.var"#compile##0#compile##1"{GPUCompiler.CompilerJob{GPUCompiler.SPIRVCompilerTarget, KernelAbstractions.POCL.OpenCLCompilerParams}}; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/driver.jl:34
[15] JuliaContext(f::Function)
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/driver.jl:25
[16] compile(job::GPUCompiler.CompilerJob)
@ KernelAbstractions.POCL ~/.julia/dev/KernelAbstractions/src/pocl/compiler/compilation.jl:61
[17] actual_compilation(cache::Dict{…}, src::Core.MethodInstance, world::UInt64, cfg::GPUCompiler.CompilerConfig{…}, compiler::typeof(KernelAbstractions.POCL.compile), linker::typeof(KernelAbstractions.POCL.link))
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/execution.jl:245
[18] cached_compilation(cache::Dict{Any, Any}, src::Core.MethodInstance, cfg::GPUCompiler.CompilerConfig{GPUCompiler.SPIRVCompilerTarget, KernelAbstractions.POCL.OpenCLCompilerParams}, compiler::Function, linker::Function)
@ GPUCompiler ~/.julia/dev/GPUCompiler/src/execution.jl:159
[19] macro expansion
@ ~/.julia/dev/KernelAbstractions/src/pocl/compiler/execution.jl:201 [inlined]
[20] macro expansion
@ ./lock.jl:376 [inlined]
[21] clfunction(f::typeof(gpu_fill_kernel!), tt::Type{Tuple{KernelAbstractions.CompilerMetadata{…}, KernelAbstractions.POCL.CLDeviceVector{…}}}; kwargs::@Kwargs{})
@ KernelAbstractions.POCL ~/.julia/dev/KernelAbstractions/src/pocl/compiler/execution.jl:196
[22] clfunction
@ ~/.julia/dev/KernelAbstractions/src/pocl/compiler/execution.jl:192 [inlined]
[23] macro expansion
@ ~/.julia/dev/KernelAbstractions/src/pocl/compiler/execution.jl:67 [inlined]
[24] (::KernelAbstractions.Kernel{POCLBackend, KernelAbstractions.NDIteration.DynamicSize, KernelAbstractions.NDIteration.DynamicSize, typeof(gpu_fill_kernel!)})(args::Vector{Float64}; ndrange::Int64, workgroupsize::Nothing)
@ KernelAbstractions.POCL.POCLKernels ~/.julia/dev/KernelAbstractions/src/pocl/backend.jl:114
[25] top-level scope
@ REPL[6]:1
[26] top-level scope
@ REPL:1
Some type information was truncated. Use `show(err)` to see complete types.
Using the regular OpenCL with the pocl_jll backend, I don't get this error (Even though I checked out JuliaGPU/OpenCL.jl#328 for the error reporing part).
Pkg.status()
:
Project KernelAbstractions v0.10.0-dev
Status `~/.julia/dev/KernelAbstractions/Project.toml`
[79e6a3ab] Adapt v4.3.0
[a9b6321e] Atomix v1.1.1
[61eb1bfa] GPUCompiler v1.6.1
[929cbde3] LLVM v9.4.2
[1914dd2f] MacroTools v0.5.16
⌃ [aea7be01] PrecompileTools v1.2.1
[71d1d633] SPIRVIntrinsics v0.3.0
[90137ffa] StaticArrays v1.9.13
[6cb37087] OpenCL_jll v2024.10.24+1
[4376b9bf] SPIRV_LLVM_Backend_jll v20.1.5+1
[6ac6d60f] SPIRV_Tools_jll v2025.1.0+1
[627d6b7a] pocl_jll v7.0.0+14
[b77e0a4c] InteractiveUtils v1.11.0
[de0858da] Printf v1.11.0
[cf7118a7] UUIDs v1.11.0
Info Packages marked with ⌃ have new versions available and may be upgradable.
Full LLVM module:
; ModuleID = 'start'
source_filename = "start"
target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-G1"
target triple = "spir64-unknown-unknown"
@__spirv_BuiltInWorkgroupId = external local_unnamed_addr addrspace(7) global <3 x i64>
@__spirv_BuiltInLocalInvocationId = external local_unnamed_addr addrspace(7) global <3 x i64>
@0 = private unnamed_addr addrspace(2) constant [36 x i8] c"ERROR: Out-of-bounds array access.\0A\00", align 1
@exception.1 = private unnamed_addr addrspace(1) constant [10 x i8] c"exception\00", align 1
@1 = private unnamed_addr addrspace(2) constant [72 x i8] c"ERROR: a %s was thrown during kernel execution on thread (%d, %d, %d).\0A\00", align 1
@__spirv_BuiltInGlobalInvocationId = external local_unnamed_addr addrspace(7) global <3 x i64>
; Function Attrs: cold noreturn nounwind memory(inaccessiblemem: write)
declare void @llvm.trap() #0
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write)
declare void @llvm.assume(i1 noundef) #1
; Function Attrs: nobuiltin
declare i32 @printf(ptr addrspace(2), ...) local_unnamed_addr #2
; Function Attrs: noinline noreturn
define internal fastcc void @julia__throw_boundserror_18106() unnamed_addr #3 !dbg !39 {
top:
%0 = call i32 (ptr addrspace(2), ...) @printf(ptr addrspace(2) @0), !dbg !43
call fastcc void @gpu_report_exception(ptr addrspacecast (ptr addrspace(1) @exception.1 to ptr)), !dbg !57
call fastcc void @gpu_signal_exception(), !dbg !57
call void @llvm.trap(), !dbg !57
unreachable, !dbg !57
}
define spir_kernel void @_Z16gpu_fill_kernel_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILi1E5TupleI5OneToI5Int64EEE7NDRangeILi1ES0_S0_S8_S8_EE13CLDeviceArrayI7Float64Li1ELi1EE(ptr byval({ { [1 x [1 x [1 x i64]]], [2 x [1 x [1 x [1 x i64]]]] } }) %"__ctx__::CompilerMetadata", ptr byval({ { ptr addrspace(1), i64, [1 x i64], i64 } }) %"a::CLDeviceArray") local_unnamed_addr !dbg !58 {
conversion:
%"new::Tuple11" = alloca [1 x i64], align 8
%"__ctx__::CompilerMetadata.iterspace_ptr" = getelementptr inbounds i8, ptr %"__ctx__::CompilerMetadata", i64 8
%val.i = load <3 x i64>, ptr addrspace(7) @__spirv_BuiltInWorkgroupId, align 32, !dbg !60
%element.i = extractelement <3 x i64> %val.i, i64 0, !dbg !60
%val.i18 = load <3 x i64>, ptr addrspace(7) @__spirv_BuiltInLocalInvocationId, align 32, !dbg !60
%element.i19 = extractelement <3 x i64> %val.i18, i64 0, !dbg !60
%0 = add i64 %element.i19, 1
%"__ctx__::CompilerMetadata.iterspace_ptr.workitems_ptr" = getelementptr inbounds i8, ptr %"__ctx__::CompilerMetadata", i64 16
%"__ctx__::CompilerMetadata.iterspace_ptr.unbox" = load i64, ptr %"__ctx__::CompilerMetadata.iterspace_ptr", align 8, !tbaa !61, !alias.scope !65, !noalias !68
%1 = icmp sgt i64 %"__ctx__::CompilerMetadata.iterspace_ptr.unbox", 0
call void @llvm.assume(i1 %1), !dbg !60
%"__ctx__::CompilerMetadata.iterspace_ptr.workitems_ptr.unbox" = load i64, ptr %"__ctx__::CompilerMetadata.iterspace_ptr.workitems_ptr", align 8, !tbaa !61, !alias.scope !65, !noalias !68
%2 = icmp sgt i64 %"__ctx__::CompilerMetadata.iterspace_ptr.workitems_ptr.unbox", 0
call void @llvm.assume(i1 %2), !dbg !60
%3 = mul i64 %"__ctx__::CompilerMetadata.iterspace_ptr.workitems_ptr.unbox", %element.i
%4 = add i64 %0, %3
%5 = icmp slt i64 %4, 1
%"__ctx__::CompilerMetadata.unbox" = load i64, ptr %"__ctx__::CompilerMetadata", align 8, !tbaa !61, !alias.scope !65, !noalias !68
%6 = icmp sgt i64 %4, %"__ctx__::CompilerMetadata.unbox"
%.not2 = or i1 %5, %6
br i1 %.not2, label %L144, label %L119
L119: ; preds = %conversion
%val.i20 = load <3 x i64>, ptr addrspace(7) @__spirv_BuiltInGlobalInvocationId, align 32, !dbg !73
%element.i21 = extractelement <3 x i64> %val.i20, i64 0, !dbg !73
%7 = add i64 %element.i21, 1, !dbg !85
store i64 %7, ptr %"new::Tuple11", align 8, !dbg !88, !tbaa !94, !alias.scope !96, !noalias !97
%"a::CLDeviceArray.dims_ptr" = getelementptr inbounds i8, ptr %"a::CLDeviceArray", i64 16, !dbg !98
%bitcast12 = load i64, ptr %"a::CLDeviceArray.dims_ptr", align 8, !dbg !113, !tbaa !61, !alias.scope !65, !noalias !68
%.not = icmp ult i64 %element.i21, %bitcast12, !dbg !120
br i1 %.not, label %L137, label %L134, !dbg !112
L134: ; preds = %L119
call fastcc void @julia__throw_boundserror_18106() #4, !dbg !112
unreachable, !dbg !112
L137: ; preds = %L119
%"a::CLDeviceArray.unbox" = load ptr addrspace(1), ptr %"a::CLDeviceArray", align 8, !dbg !122, !tbaa !61, !alias.scope !65, !noalias !68
%8 = getelementptr inbounds double, ptr addrspace(1) %"a::CLDeviceArray.unbox", i64 %element.i21, !dbg !122
store double 1.000000e+00, ptr addrspace(1) %8, align 8, !dbg !122, !tbaa !134
br label %L144, !dbg !137
L144: ; preds = %L137, %conversion
ret void, !dbg !82
}
define internal fastcc void @gpu_report_exception(ptr %"ex::Ptr") unnamed_addr !dbg !138 {
top:
%val.i1 = load <3 x i64>, ptr addrspace(7) @__spirv_BuiltInGlobalInvocationId, align 32, !dbg !140
%element.i = extractelement <3 x i64> %val.i1, i64 0, !dbg !140
%0 = add i64 %element.i, 1, !dbg !143
%element.i3 = extractelement <3 x i64> %val.i1, i64 1, !dbg !140
%1 = add i64 %element.i3, 1, !dbg !143
%2 = call i32 (ptr addrspace(2), ...) @printf(ptr addrspace(2) @1, ptr %"ex::Ptr", i64 poison, i64 %0, i64 %1), !dbg !145
ret void, !dbg !151
}
define internal fastcc void @gpu_signal_exception() unnamed_addr !dbg !152 {
top:
ret void, !dbg !153
}
attributes #0 = { cold noreturn nounwind memory(inaccessiblemem: write) }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) }
attributes #2 = { nobuiltin }
attributes #3 = { noinline noreturn }
attributes #4 = { noreturn }
!llvm.module.flags = !{!0, !1}
!llvm.dbg.cu = !{!2, !4, !5, !6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35}
!opencl.ocl.version = !{!36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36, !36}
!opencl.spirv.version = !{!37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37, !37}
!julia.kernel = !{!38}
!0 = !{i32 2, !"Dwarf Version", i32 4}
!1 = !{i32 2, !"Debug Info Version", i32 3}
!2 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!3 = !DIFile(filename: "julia", directory: ".")
!4 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!5 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!6 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!7 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!8 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!9 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!10 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!11 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!12 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!13 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!14 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!15 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!16 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!17 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!18 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!19 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!20 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!21 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!22 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!23 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!24 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!25 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!26 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!27 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!28 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!29 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!30 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!31 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!32 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!33 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!34 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!35 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, nameTableKind: None)
!36 = !{i32 2, i32 0}
!37 = !{i32 1, i32 5}
!38 = !{ptr @_Z16gpu_fill_kernel_16CompilerMetadataI11DynamicSize12DynamicCheckv16CartesianIndicesILi1E5TupleI5OneToI5Int64EEE7NDRangeILi1ES0_S0_S8_S8_EE13CLDeviceArrayI7Float64Li1ELi1EE}
!39 = distinct !DISubprogram(name: "#throw_boundserror", linkageName: "julia_#throw_boundserror_18106", scope: null, file: !40, line: 33, type: !41, scopeLine: 33, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !5)
!40 = !DIFile(filename: "/home/simeon/.julia/dev/KernelAbstractions/src/pocl/device/quirks.jl", directory: ".")
!41 = !DISubroutineType(cc: DW_CC_nocall, types: !42)
!42 = !{}
!43 = !DILocation(line: 39, scope: !44, inlinedAt: !47)
!44 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !45, file: !45, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !5)
!45 = !DIFile(filename: "/home/simeon/.julia/packages/LLVM/UFrs4/src/interop/base.jl", directory: ".")
!46 = !DISubroutineType(types: !42)
!47 = !DILocation(line: 27, scope: !48, inlinedAt: !50)
!48 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !49, file: !49, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !5)
!49 = !DIFile(filename: "/home/simeon/.julia/packages/SPIRVIntrinsics/r99OU/src/printf.jl", directory: ".")
!50 = !DILocation(line: 27, scope: !51, inlinedAt: !52)
!51 = distinct !DISubprogram(name: "emit_printf;", linkageName: "emit_printf", scope: !49, file: !49, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !5)
!52 = !DILocation(line: 165, scope: !48, inlinedAt: !53)
!53 = !DILocation(line: 127, scope: !54, inlinedAt: !55)
!54 = distinct !DISubprogram(name: "_print;", linkageName: "_print", scope: !49, file: !49, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !5)
!55 = !DILocation(line: 214, scope: !48, inlinedAt: !56)
!56 = !DILocation(line: 3, scope: !39)
!57 = !DILocation(line: 4, scope: !39)
!58 = distinct !DISubprogram(name: "gpu_fill_kernel!", linkageName: "julia_gpu_fill_kernel!_18092", scope: null, file: !59, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!59 = !DIFile(filename: "none", directory: ".")
!60 = !DILocation(line: 0, scope: !58)
!61 = !{!62, !62, i64 0}
!62 = !{!"jtbaa_const", !63, i64 0}
!63 = !{!"jtbaa", !64, i64 0}
!64 = !{!"jtbaa"}
!65 = !{!66}
!66 = !{!"jnoalias_const", !67}
!67 = !{!"jnoalias"}
!68 = !{!69, !70, !71, !72}
!69 = !{!"jnoalias_gcframe", !67}
!70 = !{!"jnoalias_stack", !67}
!71 = !{!"jnoalias_data", !67}
!72 = !{!"jnoalias_typemd", !67}
!73 = !DILocation(line: 53, scope: !74, inlinedAt: !76)
!74 = distinct !DISubprogram(name: "#get_global_id;", linkageName: "#get_global_id", scope: !75, file: !75, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!75 = !DIFile(filename: "/home/simeon/.julia/packages/SPIRVIntrinsics/r99OU/src/work_item.jl", directory: ".")
!76 = !DILocation(line: 152, scope: !77, inlinedAt: !79)
!77 = distinct !DISubprogram(name: "#__index_Global_Linear;", linkageName: "#__index_Global_Linear", scope: !78, file: !78, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!78 = !DIFile(filename: "/home/simeon/.julia/dev/KernelAbstractions/src/pocl/backend.jl", directory: ".")
!79 = !DILocation(line: 2, scope: !80, inlinedAt: !82)
!80 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !81, file: !81, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!81 = !DIFile(filename: "REPL[5]", directory: ".")
!82 = !DILocation(line: 185, scope: !83, inlinedAt: !60)
!83 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !84, file: !84, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!84 = !DIFile(filename: "/home/simeon/.julia/dev/KernelAbstractions/src/macros.jl", directory: ".")
!85 = !DILocation(line: 87, scope: !86, inlinedAt: !73)
!86 = distinct !DISubprogram(name: "+;", linkageName: "+", scope: !87, file: !87, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!87 = !DIFile(filename: "int.jl", directory: ".")
!88 = !DILocation(line: 128, scope: !89, inlinedAt: !91)
!89 = distinct !DISubprogram(name: "#arrayset;", linkageName: "#arrayset", scope: !90, file: !90, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!90 = !DIFile(filename: "/home/simeon/.julia/dev/KernelAbstractions/src/pocl/device/array.jl", directory: ".")
!91 = !DILocation(line: 171, scope: !92, inlinedAt: !93)
!92 = distinct !DISubprogram(name: "setindex!;", linkageName: "setindex!", scope: !90, file: !90, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!93 = !DILocation(line: 3, scope: !80, inlinedAt: !82)
!94 = !{!95, !95, i64 0}
!95 = !{!"jtbaa_stack", !63, i64 0}
!96 = !{!70}
!97 = !{!69, !71, !72, !66}
!98 = !DILocation(line: 54, scope: !99, inlinedAt: !101)
!99 = distinct !DISubprogram(name: "getproperty;", linkageName: "getproperty", scope: !100, file: !100, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!100 = !DIFile(filename: "Base_compiler.jl", directory: ".")
!101 = !DILocation(line: 49, scope: !102, inlinedAt: !103)
!102 = distinct !DISubprogram(name: "size;", linkageName: "size", scope: !90, file: !90, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!103 = !DILocation(line: 98, scope: !104, inlinedAt: !106)
!104 = distinct !DISubprogram(name: "axes;", linkageName: "axes", scope: !105, file: !105, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!105 = !DIFile(filename: "abstractarray.jl", directory: ".")
!106 = !DILocation(line: 137, scope: !107, inlinedAt: !108)
!107 = distinct !DISubprogram(name: "axes1;", linkageName: "axes1", scope: !105, file: !105, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!108 = !DILocation(line: 389, scope: !109, inlinedAt: !110)
!109 = distinct !DISubprogram(name: "eachindex;", linkageName: "eachindex", scope: !105, file: !105, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!110 = !DILocation(line: 689, scope: !111, inlinedAt: !112)
!111 = distinct !DISubprogram(name: "checkbounds;", linkageName: "checkbounds", scope: !105, file: !105, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!112 = !DILocation(line: 699, scope: !111, inlinedAt: !88)
!113 = !DILocation(line: 733, scope: !114, inlinedAt: !116)
!114 = distinct !DISubprogram(name: "reinterpret;", linkageName: "reinterpret", scope: !115, file: !115, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!115 = !DIFile(filename: "essentials.jl", directory: ".")
!116 = !DILocation(line: 668, scope: !117, inlinedAt: !118)
!117 = distinct !DISubprogram(name: "unsigned;", linkageName: "unsigned", scope: !115, file: !115, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!118 = !DILocation(line: 754, scope: !119, inlinedAt: !110)
!119 = distinct !DISubprogram(name: "checkindex;", linkageName: "checkindex", scope: !105, file: !105, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!120 = !DILocation(line: 519, scope: !121, inlinedAt: !118)
!121 = distinct !DISubprogram(name: "<;", linkageName: "<", scope: !87, file: !87, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!122 = !DILocation(line: 39, scope: !123, inlinedAt: !124)
!123 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !45, file: !45, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!124 = !DILocation(line: 0, scope: !125, inlinedAt: !126)
!125 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !59, file: !59, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!126 = !DILocation(line: 0, scope: !127, inlinedAt: !128)
!127 = distinct !DISubprogram(name: "pointerset;", linkageName: "pointerset", scope: !59, file: !59, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!128 = !DILocation(line: 88, scope: !129, inlinedAt: !131)
!129 = distinct !DISubprogram(name: "unsafe_store!;", linkageName: "unsafe_store!", scope: !130, file: !130, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!130 = !DIFile(filename: "/home/simeon/.julia/packages/LLVM/UFrs4/src/interop/pointer.jl", directory: ".")
!131 = !DILocation(line: 139, scope: !132, inlinedAt: !133)
!132 = distinct !DISubprogram(name: "arrayset_bits;", linkageName: "arrayset_bits", scope: !90, file: !90, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !2)
!133 = !DILocation(line: 130, scope: !89, inlinedAt: !91)
!134 = !{!135, !135, i64 0, i64 0}
!135 = !{!"custom_tbaa_addrspace(1)", !136, i64 0}
!136 = !{!"custom_tbaa"}
!137 = !DILocation(line: 134, scope: !89, inlinedAt: !91)
!138 = distinct !DISubprogram(name: "report_exception", linkageName: "julia_report_exception_14496", scope: null, file: !139, line: 12, type: !46, scopeLine: 12, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !10)
!139 = !DIFile(filename: "/home/simeon/.julia/dev/KernelAbstractions/src/pocl/device/runtime.jl", directory: ".")
!140 = !DILocation(line: 53, scope: !141, inlinedAt: !142)
!141 = distinct !DISubprogram(name: "#get_global_id;", linkageName: "#get_global_id", scope: !75, file: !75, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !10)
!142 = !DILocation(line: 13, scope: !138)
!143 = !DILocation(line: 87, scope: !144, inlinedAt: !140)
!144 = distinct !DISubprogram(name: "+;", linkageName: "+", scope: !87, file: !87, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !10)
!145 = !DILocation(line: 39, scope: !146, inlinedAt: !147)
!146 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !45, file: !45, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !10)
!147 = !DILocation(line: 27, scope: !148, inlinedAt: !149)
!148 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !49, file: !49, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !10)
!149 = !DILocation(line: 27, scope: !150, inlinedAt: !142)
!150 = distinct !DISubprogram(name: "emit_printf;", linkageName: "emit_printf", scope: !49, file: !49, type: !46, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !10)
!151 = !DILocation(line: 17, scope: !138)
!152 = distinct !DISubprogram(name: "signal_exception", linkageName: "julia_signal_exception_14556", scope: null, file: !139, line: 4, type: !46, scopeLine: 4, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !18)
!153 = !DILocation(line: 4294967295, scope: !152)
Metadata
Metadata
Assignees
Labels
No labels