Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Algol68
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C with Coccinelle
C++ with Coccinelle
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Mojo
Nim
Numba
Nix
Objective-C
Objective-C++
OCaml
Odin
OpenCL C
Pascal
Pony
PTX
Python
Racket
Raku
Ruby
Rust
Sail
Snowball
Scala
Slang
Solidity
Spice
SPIR-V
Swift
LLVM TableGen
Toit
Triton
TypeScript Native
V
Vala
Visual Basic
Vyper
WASM
Zig
Javascript
GIMPLE
Ygen
sway
llvm source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
clang (assertions trunk)
clang (trunk)
clang 10.0.0
clang 10.0.1
clang 11.0.0
clang 11.0.1
clang 12.0.0
clang 12.0.1
clang 13.0.0
clang 14.0.0
clang 15.0.0
clang 16.0.0
clang 17.0.1
clang 18.1.0
clang 19.1.0
clang 20.1.0
clang 21.1.0
clang 4.0.1
clang 5.0.0
clang 6.0.0
clang 7.0.0
clang 8.0.0
clang 9.0.0
hexagon-clang 16.0.5
llc (assertions trunk)
llc (trunk)
llc 10.0.0
llc 10.0.1
llc 11.0.0
llc 11.0.1
llc 12.0.0
llc 12.0.1
llc 13.0.0
llc 14.0.0
llc 15.0.0
llc 16.0.0
llc 17.0.1
llc 18.1.0
llc 19.1.0
llc 20.1.0
llc 21.1.0
llc 3.2
llc 3.3
llc 3.9.1
llc 4.0.0
llc 4.0.1
llc 5.0.0
llc 6.0.0
llc 7.0.0
llc 8.0.0
llc 9.0.0
opt (assertions trunk)
opt (trunk)
opt 10.0.0
opt 10.0.1
opt 11.0.0
opt 11.0.1
opt 12.0.0
opt 12.0.1
opt 13.0.0
opt 14.0.0
opt 15.0.0
opt 16.0.0
opt 17.0.1
opt 18.1.0
opt 19.1.0
opt 20.1.0
opt 21.1.0
opt 3.2
opt 3.3
opt 3.9.1
opt 4.0.0
opt 4.0.1
opt 5.0.0
opt 6.0.0
opt 7.0.0
opt 8.0.0
opt 9.0.0
Options
Source code
; ModuleID = 'perf_sumskipmissing' source_filename = "perf_sumskipmissing" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:10:11:12:13" target triple = "x86_64-unknown-linux-gnu" @"*Core.getfield#14184" = private unnamed_addr constant ptr @"*Core.getfield#14184.jit" @"*Core.Intrinsics.slt_int#14185" = private unnamed_addr constant ptr @"*Core.Intrinsics.slt_int#14185.jit" @"*Core.Intrinsics.not_int#14186" = private unnamed_addr constant ptr @"*Core.Intrinsics.not_int#14186.jit" @"*Core.Intrinsics.sub_int#14187" = private unnamed_addr constant ptr @"*Core.Intrinsics.sub_int#14187.jit" @"*Core.Intrinsics.bitcast#14188" = private unnamed_addr constant ptr @"*Core.Intrinsics.bitcast#14188.jit" @"*Core.UInt#14189" = private unnamed_addr constant ptr @"*Core.UInt#14189.jit" @"*Core.Intrinsics.ult_int#14190" = private unnamed_addr constant ptr @"*Core.Intrinsics.ult_int#14190.jit" @"*Core.memoryrefnew#14191" = private unnamed_addr constant ptr @"*Core.memoryrefnew#14191.jit" @"*Core.memoryrefget#14192" = private unnamed_addr constant ptr @"*Core.memoryrefget#14192.jit" @"*Core.tuple#14193" = private unnamed_addr constant ptr @"*Core.tuple#14193.jit" @"*Main.Base.LazyString#14194" = private unnamed_addr constant ptr @"*Main.Base.LazyString#14194.jit" @"+Main.Base.LazyString#14195" = private unnamed_addr constant ptr @"+Main.Base.LazyString#14195.jit" @"jl_global#14196" = private unnamed_addr constant ptr @"jl_global#14196.jit" @"+Core.Tuple#14197" = private unnamed_addr constant ptr @"+Core.Tuple#14197.jit" @"jl_global#14198" = private unnamed_addr constant ptr @"jl_global#14198.jit" @"*Main.Base.MissingException#14199" = private unnamed_addr constant ptr @"*Main.Base.MissingException#14199.jit" @"+Main.Base.MissingException#14200" = private unnamed_addr constant ptr @"+Main.Base.MissingException#14200.jit" @"*Core.throw#14201" = private unnamed_addr constant ptr @"*Core.throw#14201.jit" @"*Core.Intrinsics.add_int#14202" = private unnamed_addr constant ptr @"*Core.Intrinsics.add_int#14202.jit" @"*Core.===#14203" = private unnamed_addr constant ptr @"*Core.===#14203.jit" @"*Main.Base.throw_boundserror#14204" = private unnamed_addr constant ptr @"*Main.Base.throw_boundserror#14204.jit" @"+Core.Tuple#14197.jit" = private alias ptr, inttoptr (i64 134257329314608 to ptr) @"*Core.getfield#14184.jit" = private alias ptr, inttoptr (i64 134257330573744 to ptr) @"*Core.tuple#14193.jit" = private alias ptr, inttoptr (i64 134257331168192 to ptr) @"*Core.UInt#14189.jit" = private alias ptr, inttoptr (i64 134257331168384 to ptr) @"+Main.Base.LazyString#14195.jit" = private alias ptr, inttoptr (i64 134257332071728 to ptr) @"*Core.===#14203.jit" = private alias ptr, inttoptr (i64 134257335812064 to ptr) @"*Core.throw#14201.jit" = private alias ptr, inttoptr (i64 134257340796720 to ptr) @"+Main.Base.MissingException#14200.jit" = private alias ptr, inttoptr (i64 134257345525872 to ptr) @"*Main.Base.LazyString#14194.jit" = private alias ptr, inttoptr (i64 134257348284160 to ptr) @"*Core.Intrinsics.bitcast#14188.jit" = private alias ptr, inttoptr (i64 134257363719104 to ptr) @"*Core.Intrinsics.not_int#14186.jit" = private alias ptr, inttoptr (i64 134257381832240 to ptr) @"*Core.Intrinsics.ult_int#14190.jit" = private alias ptr, inttoptr (i64 134257381833472 to ptr) @"*Core.Intrinsics.slt_int#14185.jit" = private alias ptr, inttoptr (i64 134257381833584 to ptr) @"*Core.Intrinsics.sub_int#14187.jit" = private alias ptr, inttoptr (i64 134257381835264 to ptr) @"*Core.Intrinsics.add_int#14202.jit" = private alias ptr, inttoptr (i64 134257381835376 to ptr) @"*Core.memoryrefget#14192.jit" = private alias ptr, inttoptr (i64 134257383659120 to ptr) @"*Core.memoryrefnew#14191.jit" = private alias ptr, inttoptr (i64 134257383659312 to ptr) @"*Main.Base.throw_boundserror#14204.jit" = private alias ptr, inttoptr (i64 134257391247328 to ptr) @"*Main.Base.MissingException#14199.jit" = private alias ptr, inttoptr (i64 134257391314064 to ptr) @"jl_global#14198.jit" = private alias ptr, inttoptr (i64 134257424842000 to ptr) @"jl_global#14196.jit" = private alias ptr, inttoptr (i64 134257424842032 to ptr) ; Function Signature: perf_sumskipmissing(Array{Union{Base.Missing, Int64}, 1}) ; @ REPL[23]:1 within `perf_sumskipmissing` define i64 @julia_perf_sumskipmissing_14182(ptr noundef nonnull align 8 dereferenceable(24) %"X::Array") #0 { top: %"X::Array.size" = alloca [1 x i64], align 8 %"X::Array.size14" = alloca [1 x i64], align 8 %immutable_union = alloca [1 x i64], align 8 %"new::Tuple" = alloca [1 x i64], align 8 %"X::Array.size32" = alloca [1 x i64], align 8 %immutable_union43 = alloca [1 x i64], align 8 %"X::Array.size65" = alloca [1 x i64], align 8 %immutable_union76 = alloca [1 x i64], align 8 %"new::Tuple95" = alloca [1 x i64], align 8 %"new::Tuple99" = alloca [1 x i64], align 8 %"new::Tuple112" = alloca [1 x i64], align 8 %pgcstack = call ptr @julia.get_pgcstack() %current_task = getelementptr inbounds ptr, ptr %pgcstack, i64 -14 %world_age = getelementptr inbounds i64, ptr %current_task, i64 15 %0 = load i64, ptr %world_age, align 8 ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ missing.jl:253 within `eachindex` @ abstractarray.jl:321 ; │┌ @ abstractarray.jl:137 within `axes1` ; ││┌ @ abstractarray.jl:98 within `axes` ; │││┌ @ array.jl:194 within `size` %"*Core.getfield#14184" = load ptr, ptr @"*Core.getfield#14184", align 8 %1 = getelementptr inbounds ptr, ptr %"*Core.getfield#14184", i64 0 %2 = getelementptr inbounds i8, ptr %"X::Array", i64 16 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %"X::Array.size", ptr align 8 %2, i64 8, i1 false) ; │││└ ; │││┌ @ tuple.jl:356 within `map` ; ││││┌ @ tuple.jl:31 within `getindex` %"*Core.getfield#141841" = load ptr, ptr @"*Core.getfield#14184", align 8 %3 = getelementptr inbounds ptr, ptr %"*Core.getfield#141841", i64 0 %"X::Array.size[1]_ptr" = getelementptr inbounds [1 x i64], ptr %"X::Array.size", i32 0, i32 0 ; └└└└└ ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:911 ; │┌ @ range.jl:688 within `isempty` ; ││┌ @ operators.jl:420 within `>` ; │││┌ @ int.jl:83 within `<` %"*Core.Intrinsics.slt_int#14185" = load ptr, ptr @"*Core.Intrinsics.slt_int#14185", align 8 %4 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.slt_int#14185", i64 0 %"X::Array.size[1]_ptr.unbox" = load i64, ptr %"X::Array.size[1]_ptr", align 8 %5 = icmp slt i64 %"X::Array.size[1]_ptr.unbox", 1 ; │└└└ %6 = xor i1 %5, true br i1 %6, label %L7, label %L6 L6: ; preds = %top br label %L8 L7: ; preds = %top br label %L8 L8: ; preds = %L7, %L6 %value_phi = phi i8 [ 1, %L6 ], [ 0, %L7 ] %value_phi2 = phi i64 [ 1, %L7 ], [ undef, %L6 ] %value_phi3 = phi i64 [ 1, %L7 ], [ undef, %L6 ] %value_phi4 = phi i8 [ 1, %L6 ], [ 0, %L7 ] %value_phi5 = phi i64 [ 1, %L7 ], [ undef, %L6 ] %value_phi6 = phi i64 [ 1, %L7 ], [ undef, %L6 ] br label %L14 L14: ; preds = %L54, %L8 %value_phi7 = phi i8 [ %value_phi, %L8 ], [ %value_phi104, %L54 ] %value_phi8 = phi i64 [ %value_phi2, %L8 ], [ %value_phi106, %L54 ] %value_phi9 = phi i64 [ %value_phi3, %L8 ], [ %value_phi105, %L54 ] %value_phi10 = phi i8 [ %value_phi4, %L8 ], [ %value_phi107, %L54 ] %value_phi11 = phi i64 [ %value_phi5, %L8 ], [ %value_phi108, %L54 ] %value_phi12 = phi i64 [ %value_phi6, %L8 ], [ %value_phi109, %L54 ] ; │ @ iterators.jl:545 within `iterate` %"*Core.Intrinsics.not_int#14186" = load ptr, ptr @"*Core.Intrinsics.not_int#14186", align 8 %7 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.not_int#14186", i64 0 %8 = trunc i8 %value_phi7 to i1 %9 = xor i1 %8, true %10 = xor i1 %9, true br i1 %10, label %L61, label %L22 L22: ; preds = %L14 ; │ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` br i1 true, label %L36, label %L24 L24: ; preds = %L22 %"*Core.Intrinsics.sub_int#14187" = load ptr, ptr @"*Core.Intrinsics.sub_int#14187", align 8 %11 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.sub_int#14187", i64 0 %12 = sub i64 %value_phi8, 1 %"*Core.Intrinsics.bitcast#14188" = load ptr, ptr @"*Core.Intrinsics.bitcast#14188", align 8 %13 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.bitcast#14188", i64 0 %"*Core.UInt#14189" = load ptr, ptr @"*Core.UInt#14189", align 8 %14 = getelementptr inbounds ptr, ptr %"*Core.UInt#14189", i64 0 ; │││┌ @ essentials.jl:11 within `length` %"*Core.getfield#1418413" = load ptr, ptr @"*Core.getfield#14184", align 8 %15 = getelementptr inbounds ptr, ptr %"*Core.getfield#1418413", i64 0 %16 = getelementptr inbounds i8, ptr %"X::Array", i64 16 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %"X::Array.size14", ptr align 8 %16, i64 8, i1 false) ; ││││┌ @ tuple.jl:31 within `getindex` %"*Core.getfield#1418415" = load ptr, ptr @"*Core.getfield#14184", align 8 %17 = getelementptr inbounds ptr, ptr %"*Core.getfield#1418415", i64 0 %"X::Array.size14[1]_ptr" = getelementptr inbounds [1 x i64], ptr %"X::Array.size14", i32 0, i32 0 ; │││└└ %"*Core.Intrinsics.bitcast#1418816" = load ptr, ptr @"*Core.Intrinsics.bitcast#14188", align 8 %18 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.bitcast#1418816", i64 0 %"*Core.UInt#1418917" = load ptr, ptr @"*Core.UInt#14189", align 8 %19 = getelementptr inbounds ptr, ptr %"*Core.UInt#1418917", i64 0 %bitcast = load i64, ptr %"X::Array.size14[1]_ptr", align 8 %"*Core.Intrinsics.ult_int#14190" = load ptr, ptr @"*Core.Intrinsics.ult_int#14190", align 8 %20 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.ult_int#14190", i64 0 %21 = icmp ult i64 %12, %bitcast %22 = xor i1 %21, true br i1 %22, label %L33, label %L32 L32: ; preds = %L24 br label %L36 L33: ; preds = %L24 %"*Core.tuple#14193111" = load ptr, ptr @"*Core.tuple#14193", align 8 %23 = getelementptr inbounds ptr, ptr %"*Core.tuple#14193111", i64 0 %24 = getelementptr inbounds [1 x i64], ptr %"new::Tuple112", i32 0, i32 0 store i64 %value_phi8, ptr %24, align 8 %"*Main.Base.throw_boundserror#14204113" = load ptr, ptr @"*Main.Base.throw_boundserror#14204", align 8 %25 = getelementptr inbounds ptr, ptr %"*Main.Base.throw_boundserror#14204113", i64 0 call void @j_throw_boundserror_14205(ptr %"X::Array", ptr nocapture readonly %"new::Tuple112") #6 call void @llvm.trap() unreachable L36: ; preds = %L32, %L22 ; │││ @ essentials.jl:907 within `getindex` %"*Core.getfield#1418418" = load ptr, ptr @"*Core.getfield#14184", align 8 %26 = getelementptr inbounds ptr, ptr %"*Core.getfield#1418418", i64 0 %27 = getelementptr inbounds { i64, ptr }, ptr %"X::Array", i32 0, i32 0 %28 = load i64, ptr %27, align 8 %29 = getelementptr inbounds { i64, ptr }, ptr %"X::Array", i32 0, i32 1 %30 = load ptr, ptr %29, align 8 %31 = insertvalue { i64, ptr } zeroinitializer, i64 %28, 0 %"X::Array.ref" = insertvalue { i64, ptr } %31, ptr %30, 1 %"*Core.memoryrefnew#14191" = load ptr, ptr @"*Core.memoryrefnew#14191", align 8 %32 = getelementptr inbounds ptr, ptr %"*Core.memoryrefnew#14191", i64 0 %33 = sub i64 %value_phi8, 1 %34 = add i64 %28, %33 %35 = insertvalue { i64, ptr } zeroinitializer, i64 %34, 0 %36 = insertvalue { i64, ptr } %35, ptr %30, 1 %"*Core.memoryrefget#14192" = load ptr, ptr @"*Core.memoryrefget#14192", align 8 %37 = getelementptr inbounds ptr, ptr %"*Core.memoryrefget#14192", i64 0 %38 = getelementptr inbounds { i64, ptr }, ptr %30, i32 0, i32 0 %39 = load i64, ptr %38, align 8 %.data_ptr = getelementptr inbounds { i64, ptr }, ptr %30, i32 0, i32 1 %40 = load ptr, ptr %.data_ptr, align 8 %41 = call ptr @julia.gc_loaded(ptr %30, ptr %40) %42 = getelementptr inbounds [1 x i64], ptr %41, i64 %39 %43 = getelementptr inbounds [1 x i64], ptr %41, i64 %34 %44 = getelementptr inbounds i8, ptr %42, i64 %34 %45 = load i8, ptr %44, align 1 %46 = add nuw i8 1, %45 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %immutable_union, ptr align 8 %43, i64 8, i1 false) br label %L40 L40: ; preds = %L36 ; ││└ %47 = and i8 %46, 127 %exactly_isa = icmp eq i8 %47, 1 %48 = xor i1 %exactly_isa, true br i1 %48, label %L43, label %L42 L42: ; preds = %L40 ; │└ ; │ @ iterators.jl:544 within `iterate` @ range.jl:911 br label %L44 L43: ; preds = %L40 br label %L44 L44: ; preds = %L43, %L42 %value_phi19 = phi i8 [ 1, %L42 ], [ 0, %L43 ] ; │ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ bool.jl:35 within `!` %"*Core.Intrinsics.not_int#1418620" = load ptr, ptr @"*Core.Intrinsics.not_int#14186", align 8 %49 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.not_int#1418620", i64 0 %50 = trunc i8 %value_phi19 to i1 %51 = xor i1 %50, true br label %L47 L47: ; preds = %L44 ; │└└ %52 = xor i1 %51, true br i1 %52, label %L49, label %L48 L48: ; preds = %L47 ; │ @ iterators.jl:544 within `iterate` @ range.jl:911 br label %L62 L49: ; preds = %L47 ; │ @ iterators.jl:549 within `iterate` @ range.jl:915 ; │┌ @ promotion.jl:639 within `==` %"*Core.===#14203102" = load ptr, ptr @"*Core.===#14203", align 8 %53 = getelementptr inbounds ptr, ptr %"*Core.===#14203102", i64 0 %"X::Array.size[1]_ptr.unbox103" = load i64, ptr %"X::Array.size[1]_ptr", align 8 %54 = icmp eq i64 %value_phi9, %"X::Array.size[1]_ptr.unbox103" ; │└ %55 = xor i1 %54, true br i1 %55, label %L52, label %L51 L51: ; preds = %L49 ; └ ; @ REPL[23]:7 within `perf_sumskipmissing` ; ┌ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` br label %L54 L52: ; preds = %L49 ; └└└ ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ iterators.jl:549 within `iterate` @ range.jl:916 ; │┌ @ int.jl:87 within `+` %"*Core.Intrinsics.add_int#14202110" = load ptr, ptr @"*Core.Intrinsics.add_int#14202", align 8 %56 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.add_int#14202110", i64 0 %57 = add i64 %value_phi9, 1 ; └└ ; @ REPL[23]:7 within `perf_sumskipmissing` ; ┌ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` br label %L54 L54: ; preds = %L52, %L51 %value_phi104 = phi i8 [ 1, %L51 ], [ 0, %L52 ] %value_phi105 = phi i64 [ %57, %L52 ], [ undef, %L51 ] %value_phi106 = phi i64 [ %57, %L52 ], [ undef, %L51 ] %value_phi107 = phi i8 [ 1, %L51 ], [ 0, %L52 ] %value_phi108 = phi i64 [ %57, %L52 ], [ undef, %L51 ] %value_phi109 = phi i64 [ %57, %L52 ], [ undef, %L51 ] ; └└└ ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:911 br label %L14 L61: ; preds = %L14 br label %L62 L62: ; preds = %L61, %L48 %value_phi21 = phi i8 [ %value_phi10, %L48 ], [ 1, %L61 ] %value_phi22 = phi i64 [ %value_phi11, %L48 ], [ undef, %L61 ] %value_phi23 = phi i64 [ %value_phi12, %L48 ], [ undef, %L61 ] ; └ %"*Core.Intrinsics.not_int#1418624" = load ptr, ptr @"*Core.Intrinsics.not_int#14186", align 8 %58 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.not_int#1418624", i64 0 %59 = trunc i8 %value_phi21 to i1 %60 = xor i1 %59, true %61 = xor i1 %60, true br i1 %61, label %L62.L167_crit_edge, label %L62.L67_crit_edge L62.L167_crit_edge: ; preds = %L62 ; @ REPL[23]:7 within `perf_sumskipmissing` ; ┌ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` br label %L167 L62.L67_crit_edge: ; preds = %L62 ; └└└ ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:911 br label %L67 L67: ; preds = %L166, %L62.L67_crit_edge %value_phi25 = phi i64 [ %value_phi22, %L62.L67_crit_edge ], [ %value_phi81, %L166 ] %value_phi26 = phi i64 [ %value_phi23, %L62.L67_crit_edge ], [ %value_phi80, %L166 ] %value_phi27 = phi i64 [ 0, %L62.L67_crit_edge ], [ %111, %L166 ] ; └ %"*Core.tuple#14193" = load ptr, ptr @"*Core.tuple#14193", align 8 %62 = getelementptr inbounds ptr, ptr %"*Core.tuple#14193", i64 0 %63 = getelementptr inbounds [1 x i64], ptr %"new::Tuple", i32 0, i32 0 store i64 %value_phi25, ptr %63, align 8 ; @ REPL[23]:6 within `perf_sumskipmissing` ; ┌ @ missing.jl:258 within `getindex` @ essentials.jl:906 br i1 true, label %L85, label %L73 L73: ; preds = %L67 %"*Core.Intrinsics.sub_int#1418728" = load ptr, ptr @"*Core.Intrinsics.sub_int#14187", align 8 %64 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.sub_int#1418728", i64 0 %65 = sub i64 %value_phi25, 1 %"*Core.Intrinsics.bitcast#1418829" = load ptr, ptr @"*Core.Intrinsics.bitcast#14188", align 8 %66 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.bitcast#1418829", i64 0 %"*Core.UInt#1418930" = load ptr, ptr @"*Core.UInt#14189", align 8 %67 = getelementptr inbounds ptr, ptr %"*Core.UInt#1418930", i64 0 ; │┌ @ essentials.jl:11 within `length` %"*Core.getfield#1418431" = load ptr, ptr @"*Core.getfield#14184", align 8 %68 = getelementptr inbounds ptr, ptr %"*Core.getfield#1418431", i64 0 %69 = getelementptr inbounds i8, ptr %"X::Array", i64 16 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %"X::Array.size32", ptr align 8 %69, i64 8, i1 false) ; ││┌ @ tuple.jl:31 within `getindex` %"*Core.getfield#1418433" = load ptr, ptr @"*Core.getfield#14184", align 8 %70 = getelementptr inbounds ptr, ptr %"*Core.getfield#1418433", i64 0 %"X::Array.size32[1]_ptr" = getelementptr inbounds [1 x i64], ptr %"X::Array.size32", i32 0, i32 0 ; │└└ %"*Core.Intrinsics.bitcast#1418834" = load ptr, ptr @"*Core.Intrinsics.bitcast#14188", align 8 %71 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.bitcast#1418834", i64 0 %"*Core.UInt#1418935" = load ptr, ptr @"*Core.UInt#14189", align 8 %72 = getelementptr inbounds ptr, ptr %"*Core.UInt#1418935", i64 0 %bitcast36 = load i64, ptr %"X::Array.size32[1]_ptr", align 8 %"*Core.Intrinsics.ult_int#1419037" = load ptr, ptr @"*Core.Intrinsics.ult_int#14190", align 8 %73 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.ult_int#1419037", i64 0 %74 = icmp ult i64 %65, %bitcast36 %75 = xor i1 %74, true br i1 %75, label %L82, label %L81 L81: ; preds = %L73 br label %L85 L82: ; preds = %L73 %"*Core.tuple#1419398" = load ptr, ptr @"*Core.tuple#14193", align 8 %76 = getelementptr inbounds ptr, ptr %"*Core.tuple#1419398", i64 0 %77 = getelementptr inbounds [1 x i64], ptr %"new::Tuple99", i32 0, i32 0 store i64 %value_phi25, ptr %77, align 8 %"*Main.Base.throw_boundserror#14204100" = load ptr, ptr @"*Main.Base.throw_boundserror#14204", align 8 %78 = getelementptr inbounds ptr, ptr %"*Main.Base.throw_boundserror#14204100", i64 0 call void @j_throw_boundserror_14205(ptr %"X::Array", ptr nocapture readonly %"new::Tuple99") #6 call void @llvm.trap() unreachable L85: ; preds = %L81, %L67 ; │ @ missing.jl:258 within `getindex` @ essentials.jl:907 %"*Core.getfield#1418438" = load ptr, ptr @"*Core.getfield#14184", align 8 %79 = getelementptr inbounds ptr, ptr %"*Core.getfield#1418438", i64 0 %80 = getelementptr inbounds { i64, ptr }, ptr %"X::Array", i32 0, i32 0 %81 = load i64, ptr %80, align 8 %82 = getelementptr inbounds { i64, ptr }, ptr %"X::Array", i32 0, i32 1 %83 = load ptr, ptr %82, align 8 %84 = insertvalue { i64, ptr } zeroinitializer, i64 %81, 0 %"X::Array.ref39" = insertvalue { i64, ptr } %84, ptr %83, 1 %"*Core.memoryrefnew#1419140" = load ptr, ptr @"*Core.memoryrefnew#14191", align 8 %85 = getelementptr inbounds ptr, ptr %"*Core.memoryrefnew#1419140", i64 0 %86 = sub i64 %value_phi25, 1 %87 = add i64 %81, %86 %88 = insertvalue { i64, ptr } zeroinitializer, i64 %87, 0 %89 = insertvalue { i64, ptr } %88, ptr %83, 1 %"*Core.memoryrefget#1419241" = load ptr, ptr @"*Core.memoryrefget#14192", align 8 %90 = getelementptr inbounds ptr, ptr %"*Core.memoryrefget#1419241", i64 0 %91 = getelementptr inbounds { i64, ptr }, ptr %83, i32 0, i32 0 %92 = load i64, ptr %91, align 8 %.data_ptr42 = getelementptr inbounds { i64, ptr }, ptr %83, i32 0, i32 1 %93 = load ptr, ptr %.data_ptr42, align 8 %94 = call ptr @julia.gc_loaded(ptr %83, ptr %93) %95 = getelementptr inbounds [1 x i64], ptr %94, i64 %92 %96 = getelementptr inbounds [1 x i64], ptr %94, i64 %87 %97 = getelementptr inbounds i8, ptr %95, i64 %87 %98 = load i8, ptr %97, align 1 %99 = add nuw i8 1, %98 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %immutable_union43, ptr align 8 %96, i64 8, i1 false) br label %L89 L89: ; preds = %L85 ; │ @ missing.jl:259 within `getindex` %100 = and i8 %99, 127 %exactly_isa44 = icmp eq i8 %100, 1 %101 = xor i1 %exactly_isa44, true br i1 %101, label %L92, label %L91 L91: ; preds = %L89 ; └ ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:911 br label %L93 L92: ; preds = %L89 br label %L93 L93: ; preds = %L92, %L91 %value_phi45 = phi i8 [ 1, %L91 ], [ 0, %L92 ] ; └ ; @ REPL[23]:6 within `perf_sumskipmissing` ; ┌ @ missing.jl:259 within `getindex` %102 = trunc i8 %value_phi45 to i1 %103 = xor i1 %102, true br i1 %103, label %L99, label %L95 L95: ; preds = %L93 %"*Main.Base.LazyString#14194" = load ptr, ptr @"*Main.Base.LazyString#14194", align 8 %104 = getelementptr inbounds ptr, ptr %"*Main.Base.LazyString#14194", i64 0 %"+Main.Base.LazyString#14195" = load ptr, ptr @"+Main.Base.LazyString#14195", align 8 %"jl_global#14196" = load ptr, ptr @"jl_global#14196", align 8 %"+Core.Tuple#14197" = load ptr, ptr @"+Core.Tuple#14197", align 8 %Tuple = ptrtoint ptr %"+Core.Tuple#14197" to i64 %105 = inttoptr i64 %Tuple to ptr %current_task46 = getelementptr inbounds ptr, ptr %pgcstack, i64 -14 %"box::Tuple" = call noalias nonnull align 8 dereferenceable(8) ptr @julia.gc_alloc_obj(ptr %current_task46, i64 8, ptr %105) #10 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %"box::Tuple", ptr align 8 %"new::Tuple", i64 8, i1 false) %"jl_global#14198" = load ptr, ptr @"jl_global#14198", align 8 %106 = call nonnull ptr (ptr, ptr, ...) @julia.call(ptr @ijl_apply_generic, ptr %"+Main.Base.LazyString#14195", ptr %"jl_global#14196", ptr %"box::Tuple", ptr %"jl_global#14198") %"*Main.Base.MissingException#14199" = load ptr, ptr @"*Main.Base.MissingException#14199", align 8 %107 = getelementptr inbounds ptr, ptr %"*Main.Base.MissingException#14199", i64 0 %"+Main.Base.MissingException#14200" = load ptr, ptr @"+Main.Base.MissingException#14200", align 8 %108 = call nonnull ptr (ptr, ptr, ...) @julia.call(ptr @ijl_apply_generic, ptr %"+Main.Base.MissingException#14200", ptr %106) %"*Core.throw#14201" = load ptr, ptr @"*Core.throw#14201", align 8 %109 = getelementptr inbounds ptr, ptr %"*Core.throw#14201", i64 0 call void @ijl_throw(ptr %108) unreachable L99: ; preds = %L93 ; │ @ missing.jl:260 within `getindex` br label %L101 L101: ; preds = %L99 ; └ ; ┌ @ int.jl:87 within `+` %"*Core.Intrinsics.add_int#14202" = load ptr, ptr @"*Core.Intrinsics.add_int#14202", align 8 %110 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.add_int#14202", i64 0 %immutable_union43.unbox = load i64, ptr %immutable_union43, align 8 %111 = add i64 %value_phi27, %immutable_union43.unbox ; └ ; @ REPL[23]:7 within `perf_sumskipmissing` ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:915 ; │┌ @ promotion.jl:639 within `==` %"*Core.===#14203" = load ptr, ptr @"*Core.===#14203", align 8 %112 = getelementptr inbounds ptr, ptr %"*Core.===#14203", i64 0 %"X::Array.size[1]_ptr.unbox47" = load i64, ptr %"X::Array.size[1]_ptr", align 8 %113 = icmp eq i64 %value_phi26, %"X::Array.size[1]_ptr.unbox47" ; │└ %114 = xor i1 %113, true br i1 %114, label %L105, label %L104 L104: ; preds = %L101 ; └ ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:911 br label %L107 L105: ; preds = %L101 ; └ ; @ REPL[23]:7 within `perf_sumskipmissing` ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:916 ; │┌ @ int.jl:87 within `+` %"*Core.Intrinsics.add_int#1420297" = load ptr, ptr @"*Core.Intrinsics.add_int#14202", align 8 %115 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.add_int#1420297", i64 0 %116 = add i64 %value_phi26, 1 ; └└ ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:911 br label %L107 L107: ; preds = %L105, %L104 %value_phi48 = phi i8 [ 1, %L104 ], [ 0, %L105 ] %value_phi49 = phi i64 [ %116, %L105 ], [ undef, %L104 ] %value_phi50 = phi i64 [ %116, %L105 ], [ undef, %L104 ] %value_phi51 = phi i64 [ %116, %L105 ], [ undef, %L104 ] %value_phi52 = phi i64 [ %116, %L105 ], [ undef, %L104 ] %value_phi53 = phi i8 [ 1, %L104 ], [ 0, %L105 ] br label %L113 L113: ; preds = %L153, %L107 %value_phi54 = phi i8 [ %value_phi48, %L107 ], [ %value_phi87, %L153 ] %value_phi55 = phi i64 [ %value_phi49, %L107 ], [ %value_phi89, %L153 ] %value_phi56 = phi i64 [ %value_phi50, %L107 ], [ %value_phi88, %L153 ] %value_phi57 = phi i64 [ %value_phi52, %L107 ], [ %value_phi90, %L153 ] %value_phi58 = phi i64 [ %value_phi51, %L107 ], [ %value_phi91, %L153 ] %value_phi59 = phi i8 [ %value_phi53, %L107 ], [ %value_phi92, %L153 ] ; └ ; @ REPL[23]:7 within `perf_sumskipmissing` ; ┌ @ iterators.jl:545 within `iterate` %"*Core.Intrinsics.not_int#1418660" = load ptr, ptr @"*Core.Intrinsics.not_int#14186", align 8 %117 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.not_int#1418660", i64 0 %118 = trunc i8 %value_phi54 to i1 %119 = xor i1 %118, true %120 = xor i1 %119, true br i1 %120, label %L160, label %L121 L121: ; preds = %L113 ; │ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` br i1 true, label %L135, label %L123 L123: ; preds = %L121 %"*Core.Intrinsics.sub_int#1418761" = load ptr, ptr @"*Core.Intrinsics.sub_int#14187", align 8 %121 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.sub_int#1418761", i64 0 %122 = sub i64 %value_phi55, 1 %"*Core.Intrinsics.bitcast#1418862" = load ptr, ptr @"*Core.Intrinsics.bitcast#14188", align 8 %123 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.bitcast#1418862", i64 0 %"*Core.UInt#1418963" = load ptr, ptr @"*Core.UInt#14189", align 8 %124 = getelementptr inbounds ptr, ptr %"*Core.UInt#1418963", i64 0 ; │││┌ @ essentials.jl:11 within `length` %"*Core.getfield#1418464" = load ptr, ptr @"*Core.getfield#14184", align 8 %125 = getelementptr inbounds ptr, ptr %"*Core.getfield#1418464", i64 0 %126 = getelementptr inbounds i8, ptr %"X::Array", i64 16 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %"X::Array.size65", ptr align 8 %126, i64 8, i1 false) ; ││││┌ @ tuple.jl:31 within `getindex` %"*Core.getfield#1418466" = load ptr, ptr @"*Core.getfield#14184", align 8 %127 = getelementptr inbounds ptr, ptr %"*Core.getfield#1418466", i64 0 %"X::Array.size65[1]_ptr" = getelementptr inbounds [1 x i64], ptr %"X::Array.size65", i32 0, i32 0 ; │││└└ %"*Core.Intrinsics.bitcast#1418867" = load ptr, ptr @"*Core.Intrinsics.bitcast#14188", align 8 %128 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.bitcast#1418867", i64 0 %"*Core.UInt#1418968" = load ptr, ptr @"*Core.UInt#14189", align 8 %129 = getelementptr inbounds ptr, ptr %"*Core.UInt#1418968", i64 0 %bitcast69 = load i64, ptr %"X::Array.size65[1]_ptr", align 8 %"*Core.Intrinsics.ult_int#1419070" = load ptr, ptr @"*Core.Intrinsics.ult_int#14190", align 8 %130 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.ult_int#1419070", i64 0 %131 = icmp ult i64 %122, %bitcast69 %132 = xor i1 %131, true br i1 %132, label %L132, label %L131 L131: ; preds = %L123 br label %L135 L132: ; preds = %L123 %"*Core.tuple#1419394" = load ptr, ptr @"*Core.tuple#14193", align 8 %133 = getelementptr inbounds ptr, ptr %"*Core.tuple#1419394", i64 0 %134 = getelementptr inbounds [1 x i64], ptr %"new::Tuple95", i32 0, i32 0 store i64 %value_phi55, ptr %134, align 8 %"*Main.Base.throw_boundserror#14204" = load ptr, ptr @"*Main.Base.throw_boundserror#14204", align 8 %135 = getelementptr inbounds ptr, ptr %"*Main.Base.throw_boundserror#14204", i64 0 call void @j_throw_boundserror_14205(ptr %"X::Array", ptr nocapture readonly %"new::Tuple95") #6 call void @llvm.trap() unreachable L135: ; preds = %L131, %L121 ; │││ @ essentials.jl:907 within `getindex` %"*Core.getfield#1418471" = load ptr, ptr @"*Core.getfield#14184", align 8 %136 = getelementptr inbounds ptr, ptr %"*Core.getfield#1418471", i64 0 %137 = getelementptr inbounds { i64, ptr }, ptr %"X::Array", i32 0, i32 0 %138 = load i64, ptr %137, align 8 %139 = getelementptr inbounds { i64, ptr }, ptr %"X::Array", i32 0, i32 1 %140 = load ptr, ptr %139, align 8 %141 = insertvalue { i64, ptr } zeroinitializer, i64 %138, 0 %"X::Array.ref72" = insertvalue { i64, ptr } %141, ptr %140, 1 %"*Core.memoryrefnew#1419173" = load ptr, ptr @"*Core.memoryrefnew#14191", align 8 %142 = getelementptr inbounds ptr, ptr %"*Core.memoryrefnew#1419173", i64 0 %143 = sub i64 %value_phi55, 1 %144 = add i64 %138, %143 %145 = insertvalue { i64, ptr } zeroinitializer, i64 %144, 0 %146 = insertvalue { i64, ptr } %145, ptr %140, 1 %"*Core.memoryrefget#1419274" = load ptr, ptr @"*Core.memoryrefget#14192", align 8 %147 = getelementptr inbounds ptr, ptr %"*Core.memoryrefget#1419274", i64 0 %148 = getelementptr inbounds { i64, ptr }, ptr %140, i32 0, i32 0 %149 = load i64, ptr %148, align 8 %.data_ptr75 = getelementptr inbounds { i64, ptr }, ptr %140, i32 0, i32 1 %150 = load ptr, ptr %.data_ptr75, align 8 %151 = call ptr @julia.gc_loaded(ptr %140, ptr %150) %152 = getelementptr inbounds [1 x i64], ptr %151, i64 %149 %153 = getelementptr inbounds [1 x i64], ptr %151, i64 %144 %154 = getelementptr inbounds i8, ptr %152, i64 %144 %155 = load i8, ptr %154, align 1 %156 = add nuw i8 1, %155 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %immutable_union76, ptr align 8 %153, i64 8, i1 false) br label %L139 L139: ; preds = %L135 ; ││└ %157 = and i8 %156, 127 %exactly_isa77 = icmp eq i8 %157, 1 %158 = xor i1 %exactly_isa77, true br i1 %158, label %L142, label %L141 L141: ; preds = %L139 ; └└ ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:911 br label %L143 L142: ; preds = %L139 br label %L143 L143: ; preds = %L142, %L141 %value_phi78 = phi i8 [ 1, %L141 ], [ 0, %L142 ] ; └ ; @ REPL[23]:7 within `perf_sumskipmissing` ; ┌ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ bool.jl:35 within `!` %"*Core.Intrinsics.not_int#1418679" = load ptr, ptr @"*Core.Intrinsics.not_int#14186", align 8 %159 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.not_int#1418679", i64 0 %160 = trunc i8 %value_phi78 to i1 %161 = xor i1 %160, true br label %L146 L146: ; preds = %L143 ; │└└ %162 = xor i1 %161, true br i1 %162, label %L148, label %L147 L147: ; preds = %L146 ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` br label %L161 L148: ; preds = %L146 ; │└└ ; │ @ iterators.jl:549 within `iterate` @ range.jl:915 ; │┌ @ promotion.jl:639 within `==` %"*Core.===#1420385" = load ptr, ptr @"*Core.===#14203", align 8 %163 = getelementptr inbounds ptr, ptr %"*Core.===#1420385", i64 0 %"X::Array.size[1]_ptr.unbox86" = load i64, ptr %"X::Array.size[1]_ptr", align 8 %164 = icmp eq i64 %value_phi56, %"X::Array.size[1]_ptr.unbox86" ; │└ %165 = xor i1 %164, true br i1 %165, label %L151, label %L150 L150: ; preds = %L148 ; │ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` br label %L153 L151: ; preds = %L148 ; │└└ ; │ @ iterators.jl:549 within `iterate` @ range.jl:916 ; │┌ @ int.jl:87 within `+` %"*Core.Intrinsics.add_int#1420293" = load ptr, ptr @"*Core.Intrinsics.add_int#14202", align 8 %166 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.add_int#1420293", i64 0 %167 = add i64 %value_phi56, 1 ; │└ ; │ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` br label %L153 L153: ; preds = %L151, %L150 %value_phi87 = phi i8 [ 1, %L150 ], [ 0, %L151 ] %value_phi88 = phi i64 [ %167, %L151 ], [ undef, %L150 ] %value_phi89 = phi i64 [ %167, %L151 ], [ undef, %L150 ] %value_phi90 = phi i64 [ %167, %L151 ], [ undef, %L150 ] %value_phi91 = phi i64 [ %167, %L151 ], [ undef, %L150 ] %value_phi92 = phi i8 [ 1, %L150 ], [ 0, %L151 ] ; └└└ ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:911 br label %L113 L160: ; preds = %L113 ; └ ; @ REPL[23]:7 within `perf_sumskipmissing` ; ┌ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` br label %L161 L161: ; preds = %L160, %L147 %value_phi80 = phi i64 [ %value_phi57, %L147 ], [ undef, %L160 ] %value_phi81 = phi i64 [ %value_phi58, %L147 ], [ undef, %L160 ] %value_phi82 = phi i8 [ %value_phi59, %L147 ], [ 1, %L160 ] ; └└└ %"*Core.Intrinsics.not_int#1418683" = load ptr, ptr @"*Core.Intrinsics.not_int#14186", align 8 %168 = getelementptr inbounds ptr, ptr %"*Core.Intrinsics.not_int#1418683", i64 0 %169 = trunc i8 %value_phi82 to i1 %170 = xor i1 %169, true %171 = xor i1 %170, true br i1 %171, label %L161.L167_crit_edge, label %L166 L161.L167_crit_edge: ; preds = %L161 ; ┌ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` br label %L167 L166: ; preds = %L161 ; └└└ ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ iterators.jl:544 within `iterate` @ range.jl:911 br label %L67 L167: ; preds = %L161.L167_crit_edge, %L62.L167_crit_edge %value_phi84 = phi i64 [ %111, %L161.L167_crit_edge ], [ 0, %L62.L167_crit_edge ] ; └ ; @ REPL[23]:7 within `perf_sumskipmissing` ret i64 %value_phi84 after_throw: ; No predecessors! ; @ REPL[23]:6 within `perf_sumskipmissing` ; ┌ @ missing.jl:259 within `getindex` call void @llvm.trap() unreachable after_noret: ; No predecessors! call void @llvm.trap() unreachable after_noret96: ; No predecessors! ; └ ; @ REPL[23]:7 within `perf_sumskipmissing` ; ┌ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` call void @llvm.trap() unreachable after_noret101: ; No predecessors! ; └└└ ; @ REPL[23]:6 within `perf_sumskipmissing` ; ┌ @ missing.jl:258 within `getindex` @ essentials.jl:906 call void @llvm.trap() unreachable after_noret114: ; No predecessors! ; └ ; @ REPL[23]:5 within `perf_sumskipmissing` ; ┌ @ iterators.jl:546 within `iterate` ; │┌ @ missing.jl:254 within `#723` ; ││┌ @ essentials.jl:906 within `getindex` call void @llvm.trap() unreachable ; └└└ } ; Function Attrs: noinline optnone define nonnull ptr @jfptr_perf_sumskipmissing_14183(ptr %"function::Core.Function", ptr noalias nocapture noundef readonly %"args::Any[]", i32 %"nargs::UInt32") #1 { top: %pgcstack = call ptr @julia.get_pgcstack() %0 = getelementptr inbounds ptr, ptr %"args::Any[]", i32 0 %1 = load ptr, ptr %0, align 8 %2 = call i64 @julia_perf_sumskipmissing_14182(ptr %1) %box_Int64 = call nonnull align 8 dereferenceable(8) ptr @ijl_box_int64(i64 signext %2) #2 ret ptr %box_Int64 } declare ptr @julia.get_pgcstack() ; Function Attrs: nounwind willreturn memory(inaccessiblemem: readwrite) declare nonnull align 8 dereferenceable(8) ptr @ijl_box_int64(i64 signext) #2 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare void @llvm.dbg.declare(metadata, metadata, metadata) #3 ; Function Attrs: norecurse nosync nounwind speculatable willreturn memory(none) declare noundef nonnull ptr @julia.gc_loaded(ptr nocapture noundef nonnull readnone, ptr noundef nonnull readnone) #4 declare nonnull ptr @ijl_apply_generic(ptr, ptr noalias nocapture noundef readonly, i32) declare nonnull ptr @julia.call(ptr, ptr, ...) ; Function Attrs: nounwind willreturn allockind("alloc") allocsize(1) memory(argmem: read, inaccessiblemem: readwrite) declare noalias nonnull ptr @julia.gc_alloc_obj(ptr, i64, ptr) #5 ; Function Attrs: noreturn declare void @ijl_throw(ptr) #6 ; Function Attrs: cold noreturn nounwind declare void @llvm.trap() #7 ; Function Signature: throw_boundserror(Array{Union{Base.Missing, Int64}, 1}, Tuple{Int64}) ; Function Attrs: noreturn declare void @j_throw_boundserror_14205(ptr, ptr nocapture readonly) #8 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9 attributes #0 = { "frame-pointer"="all" "julia.fsig"="perf_sumskipmissing(Array{Union{Base.Missing, Int64}, 1})" "probe-stack"="inline-asm" } attributes #1 = { noinline optnone "frame-pointer"="all" "probe-stack"="inline-asm" } attributes #2 = { nounwind willreturn memory(inaccessiblemem: readwrite) } attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #4 = { norecurse nosync nounwind speculatable willreturn memory(none) } attributes #5 = { nounwind willreturn allockind("alloc") allocsize(1) memory(argmem: read, inaccessiblemem: readwrite) } attributes #6 = { noreturn } attributes #7 = { cold noreturn nounwind } attributes #8 = { noreturn "frame-pointer"="all" "julia.fsig"="throw_boundserror(Array{Union{Base.Missing, Int64}, 1}, Tuple{Int64})" "probe-stack"="inline-asm" } attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #10 = { nounwind willreturn allockind("alloc,uninitialized") allocsize(1) memory(argmem: read, inaccessiblemem: readwrite) } !llvm.module.flags = !{!0, !1, !2} !0 = !{i32 2, !"Dwarf Version", i32 4} !1 = !{i32 2, !"Debug Info Version", i32 3} !2 = !{i32 2, !"julia.debug_level", i32 2}
Become a Patron
Sponsor on GitHub
Donate via PayPal
Compiler Explorer Shop
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
CE on Bluesky
Statistics
Changelog
Version tree