-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Closed
Description
While playing with dict, I found Julia may crash when printing @code_native, but the llvm code runs fine. Prefetch is important for SIMD implementation. It is not from my head
Julia 1.7.2
julia> _prefetchr(p::Ptr) = ccall("llvm.prefetch", llvmcall, Cvoid,
(Ref{Int8}, Int32, Int32, Int32), Ptr{Int8}(p), 0, 3, 1);
julia> a = [1];
julia> _prefetchr(pointer(a))
julia> @code_llvm _prefetchr(pointer(a))
; @ REPL[6]:1 within `_prefetchr`
define void @julia__prefetchr_197(i64 zeroext %0) #0 {
top:
%1 = inttoptr i64 %0 to i8*
call void @llvm.prefetch.p0i8(i8* %1, i32 0, i32 3, i32 1)
ret void
}
julia> @code_native _prefetchr(pointer(a))
.text
; ┌ @ REPL[6]:1 within `_prefetchr`
prefetcht0 (%rdi)
retq
nopw %cs:(%rax,%rax)
; └
}Master
julia> _prefetchr(p::Ptr) = ccall("llvm.prefetch", llvmcall, Cvoid,
(Ref{Int8}, Int32, Int32, Int32), Ptr{Int8}(p), 0, 3, 1);
julia> a = [1];
julia> _prefetchr(pointer(a))
julia> @code_llvm _prefetchr(pointer(a))
; @ REPL[1]:1 within `_prefetchr`
define void @julia__prefetchr_134(i64 zeroext %0) #0 {
top:
%1 = inttoptr i64 %0 to i8*
call void @llvm.prefetch.p0i8(i8* %1, i32 0, i32 3, i32 1)
ret void
}
julia> @code_native _prefetchr(pointer(a))
Intrinsic name not mangled correctly for type arguments! Should be: llvm.prefetch.p0i8
void (i8*, i32, i32, i32)* @llvm.prefetch
in function julia__prefetchr_158
LLVM ERROR: Broken function found, compilation aborted!
signal (6): Aborted
in expression starting at REPL[5]:1
gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_ZN4llvm18report_fatal_errorERKNS_5TwineEb at /home/petr/software/julia/julia-petvana/usr/bin/../lib/libLLVM-13jl.so (unknown line)
_ZN4llvm18report_fatal_errorEPKcb at /home/petr/software/julia/julia-petvana/usr/bin/../lib/libLLVM-13jl.so (unknown line)
_ZN12_GLOBAL__N_118VerifierLegacyPass13runOnFunctionERN4llvm8FunctionE at /home/petr/software/julia/julia-petvana/usr/bin/../lib/libLLVM-13jl.so (unknown line)
_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE at /home/petr/software/julia/julia-petvana/usr/bin/../lib/libLLVM-13jl.so (unknown line)
_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE at /home/petr/software/julia/julia-petvana/usr/bin/../lib/libLLVM-13jl.so (unknown line)
_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE at /home/petr/software/julia/julia-petvana/usr/bin/../lib/libLLVM-13jl.so (unknown line)
jl_dump_function_asm_impl at /home/petr/software/julia/julia-petvana/src/disasm.cpp:1250
_dump_function_linfo_native at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/InteractiveUtils/src/codeview.jl:194
_dump_function at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/InteractiveUtils/src/codeview.jl:171
_dump_function at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/InteractiveUtils/src/codeview.jl:152 [inlined]
#code_native#31 at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/InteractiveUtils/src/codeview.jl:254
code_native##kw at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/InteractiveUtils/src/codeview.jl:254
unknown function (ip: 0x7fe83602fc04)
_jl_invoke at /home/petr/software/julia/julia-petvana/src/gf.c:2367 [inlined]
ijl_apply_generic at /home/petr/software/julia/julia-petvana/src/gf.c:2549
#code_native#32 at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/InteractiveUtils/src/codeview.jl:261
code_native at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/InteractiveUtils/src/codeview.jl:261
unknown function (ip: 0x7fe83602f166)
_jl_invoke at /home/petr/software/julia/julia-petvana/src/gf.c:2367 [inlined]
ijl_apply_generic at /home/petr/software/julia/julia-petvana/src/gf.c:2549
jl_apply at /home/petr/software/julia/julia-petvana/src/julia.h:1832 [inlined]
do_call at /home/petr/software/julia/julia-petvana/src/interpreter.c:126
eval_value at /home/petr/software/julia/julia-petvana/src/interpreter.c:215
eval_stmt_value at /home/petr/software/julia/julia-petvana/src/interpreter.c:166 [inlined]
eval_body at /home/petr/software/julia/julia-petvana/src/interpreter.c:612
jl_interpret_toplevel_thunk at /home/petr/software/julia/julia-petvana/src/interpreter.c:750
jl_toplevel_eval_flex at /home/petr/software/julia/julia-petvana/src/toplevel.c:906
jl_toplevel_eval_flex at /home/petr/software/julia/julia-petvana/src/toplevel.c:850
ijl_toplevel_eval_in at /home/petr/software/julia/julia-petvana/src/toplevel.c:965
eval at ./boot.jl:370 [inlined]
eval_user_input at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:151
repl_backend_loop at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:247
start_repl_backend at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:232
#run_repl#47 at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:369
run_repl at /home/petr/software/julia/julia-petvana/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:356
jfptr_run_repl_61844 at /home/petr/software/julia/julia-petvana/usr/lib/julia/sys.so (unknown line)
_jl_invoke at /home/petr/software/julia/julia-petvana/src/gf.c:2367 [inlined]
ijl_apply_generic at /home/petr/software/julia/julia-petvana/src/gf.c:2549
#962 at ./client.jl:419
jfptr_YY.962_52588 at /home/petr/software/julia/julia-petvana/usr/lib/julia/sys.so (unknown line)
_jl_invoke at /home/petr/software/julia/julia-petvana/src/gf.c:2367 [inlined]
ijl_apply_generic at /home/petr/software/julia/julia-petvana/src/gf.c:2549
jl_apply at /home/petr/software/julia/julia-petvana/src/julia.h:1832 [inlined]
jl_f__call_latest at /home/petr/software/julia/julia-petvana/src/builtins.c:769
#invokelatest#2 at ./essentials.jl:729 [inlined]
invokelatest at ./essentials.jl:727 [inlined]
run_main_repl at ./client.jl:404
exec_options at ./client.jl:318
_start at ./client.jl:518
jfptr__start_36277 at /home/petr/software/julia/julia-petvana/usr/lib/julia/sys.so (unknown line)
_jl_invoke at /home/petr/software/julia/julia-petvana/src/gf.c:2367 [inlined]
ijl_apply_generic at /home/petr/software/julia/julia-petvana/src/gf.c:2549
jl_apply at /home/petr/software/julia/julia-petvana/src/julia.h:1832 [inlined]
true_main at /home/petr/software/julia/julia-petvana/src/jlapi.c:567
jl_repl_entrypoint at /home/petr/software/julia/julia-petvana/src/jlapi.c:711
main at /home/petr/software/julia/julia-petvana/cli/loader_exe.c:59
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_start at /home/petr/software/julia/julia-petvana/julia (unknown line)
Allocations: 1473343 (Pool: 1472186; Big: 1157); GC: 2
Aborted (core dumped)Metadata
Metadata
Assignees
Labels
No labels