-
-
Couldn't load subscription status.
- Fork 5.7k
Closed
Description
julia> using NetworkOptions
julia> code_llvm(NetworkOptions.__init__, (); raw=true)
; Function Signature: __init__()
; @ /build/julia/usr/share/julia/stdlib/v1.11/NetworkOptions/src/ssh_options.jl:163 within `__init__`
define swiftcc void @julia___init___1092(ptr nonnull swiftself %pgcstack) #0 !dbg !5 {
top:
%jlcallframe1 = alloca [2 x ptr], align 8
%ptls_field = getelementptr inbounds ptr, ptr %pgcstack, i64 2
%ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !14
%0 = getelementptr inbounds ptr, ptr %ptls_load, i64 2
%safepoint = load ptr, ptr %0, align 8, !tbaa !18
fence syncscope("singlethread") seq_cst
%1 = load volatile i64, ptr %safepoint, align 8, !dbg !20
fence syncscope("singlethread") seq_cst
; @ /build/julia/usr/share/julia/stdlib/v1.11/NetworkOptions/src/ssh_options.jl:165 within `__init__`
store ptr @"jl_global#1098.jit", ptr %jlcallframe1, align 8, !dbg !21
%2 = getelementptr inbounds ptr, ptr %jlcallframe1, i64 1, !dbg !21
store ptr @"jl_global#1099.jit", ptr %2, align 8, !dbg !21
%3 = call nonnull ptr @ijl_invoke(ptr nonnull @"jl_global#1097.jit", ptr nonnull %jlcallframe1, i32 2, ptr nonnull @"-Main.Base.lock#1096.jit"), !dbg !21
ret void, !dbg !21
}versus if you call code_typed first:
julia> using NetworkOptions
julia> code_typed(NetworkOptions.__init__, ())
1-element Vector{Any}:
CodeInfo(
1 ─ invoke NetworkOptions.lock(NetworkOptions.var"#7#8"()::NetworkOptions.var"#7#8", NetworkOptions.BUNDLED_KNOWN_HOSTS_LOCK::ReentrantLock)::Nothing
└── return nothing
) => Nothing
julia> code_llvm(NetworkOptions.__init__, (); raw=true)
; Function Signature: __init__()
; @ /build/julia/usr/share/julia/stdlib/v1.11/NetworkOptions/src/ssh_options.jl:163 within `__init__`
define swiftcc void @julia___init___2493(ptr nonnull swiftself %pgcstack) #0 !dbg !5 {
top:
%ptls_field = getelementptr inbounds ptr, ptr %pgcstack, i64 2
%ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !14
%0 = getelementptr inbounds ptr, ptr %ptls_load, i64 2
%safepoint = load ptr, ptr %0, align 8, !tbaa !18
fence syncscope("singlethread") seq_cst
%1 = load volatile i64, ptr %safepoint, align 8, !dbg !20
fence syncscope("singlethread") seq_cst
; @ /build/julia/usr/share/julia/stdlib/v1.11/NetworkOptions/src/ssh_options.jl:165 within `__init__`
call swiftcc void @j_lock_2497(ptr nonnull swiftself %pgcstack, ptr nonnull @"jl_global#2498.jit"), !dbg !21
ret void, !dbg !21
}Notice the jl_invoke that became a proper static call.
Metadata
Metadata
Assignees
Labels
No labels