Enzyme.jl
Enzyme.jl copied to clipboard
Illegal type analysis error for GraphsFlows.jl max flow
Hi, here a proper error message for this question. I want to differentiate a GraphsFlows.jl maximum flow function.
(@v1.10) pkg> status Enzyme
Status `~/.julia/environments/v1.10/Project.toml`
[7da242da] Enzyme v0.12.6
julia> versioninfo()
Julia Version 1.10.0
Commit 3120989f39b (2023-12-25 18:01 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: macOS (arm64-apple-darwin22.4.0)
CPU: 8 × Apple M2
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)
Threads: 8 on 4 virtual cores
Environment:
JULIA_EDITOR = code
JULIA_NUM_THREADS = 6
julia> using Enzyme
julia> using Graphs, GraphsFlows
julia> flow_graph = Graphs.DiGraph(8) # Create a flow graph
{8, 0} directed simple Int64 graph
julia> flow_edges = [
(1,2,10),(1,3,5),(1,4,15),(2,3,4),(2,5,9),
(2,6,15),(3,4,4),(3,6,8),(4,7,16),(5,6,15),
(5,8,10),(6,7,15),(6,8,10),(7,3,6),(7,8,10)
]
15-element Vector{Tuple{Int64, Int64, Int64}}:
(1, 2, 10)
(1, 3, 5)
(1, 4, 15)
(2, 3, 4)
(2, 5, 9)
(2, 6, 15)
(3, 4, 4)
(3, 6, 8)
(4, 7, 16)
(5, 6, 15)
(5, 8, 10)
(6, 7, 15)
(6, 8, 10)
(7, 3, 6)
(7, 8, 10)
julia> capacity_matrix = zeros(8, 8) # Create a capacity matrix
8×8 Matrix{Float64}:
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
julia> for e in flow_edges
u, v, f = e
Graphs.add_edge!(flow_graph, u, v)
capacity_matrix[u,v] = f
end
julia> foo(capacity_matrix) = maximum_flow(flow_graph, 1, 8, capacity_matrix, algorithm=DinicAlgorithm())[2][1, 2] # Run Dinic's algorithm
foo (generic function with 1 method)
julia> foo(capacity_matrix) # 10.0
10.0
julia> gradient(Forward, foo, capacity_matrix)
...truncated error...
julia> show(err)
1-element ExceptionStack:
Enzyme compilation failed due to illegal type analysis.
Current scope:
; Function Attrs: mustprogress willreturn
define internal fastcc nonnull "enzyme_type"="{[-1]:Pointer, [-1,-1]:Pointer}" {} addrspace(10)* @preprocess_julia__maximum_flow_1_5614({} addrspace(10)* nocapture noundef nonnull readonly align 8 dereferenceable(24) "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,0]:Pointer, [-1,8,0,0,0]:Pointer, [-1,8,0,0,0,-1]:Integer, [-1,8,0,0,8]:Integer, [-1,8,0,0,9]:Integer, [-1,8,0,0,10]:Integer, [-1,8,0,0,11]:Integer, [-1,8,0,0,12]:Integer, [-1,8,0,0,13]:Integer, [-1,8,0,0,14]:Integer, [-1,8,0,0,15]:Integer, [-1,8,0,0,16]:Integer, [-1,8,0,0,17]:Integer, [-1,8,0,0,18]:Integer, [-1,8,0,0,19]:Integer, [-1,8,0,0,20]:Integer, [-1,8,0,0,21]:Integer, [-1,8,0,0,22]:Integer, [-1,8,0,0,23]:Integer, [-1,8,0,0,24]:Integer, [-1,8,0,0,25]:Integer, [-1,8,0,0,26]:Integer, [-1,8,0,0,27]:Integer, [-1,8,0,0,28]:Integer, [-1,8,0,0,29]:Integer, [-1,8,0,0,30]:Integer, [-1,8,0,0,31]:Integer, [-1,8,0,0,32]:Integer, [-1,8,0,0,33]:Integer, [-1,8,0,0,34]:Integer, [-1,8,0,0,35]:Integer, [-1,8,0,0,36]:Integer, [-1,8,0,0,37]:Integer, [-1,8,0,0,38]:Integer, [-1,8,0,0,39]:Integer, [-1,8,8]:Integer, [-1,8,9]:Integer, [-1,8,10]:Integer, [-1,8,11]:Integer, [-1,8,12]:Integer, [-1,8,13]:Integer, [-1,8,14]:Integer, [-1,8,15]:Integer, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,8,24]:Integer, [-1,8,25]:Integer, [-1,8,26]:Integer, [-1,8,27]:Integer, [-1,8,28]:Integer, [-1,8,29]:Integer, [-1,8,30]:Integer, [-1,8,31]:Integer, [-1,8,32]:Integer, [-1,8,33]:Integer, [-1,8,34]:Integer, [-1,8,35]:Integer, [-1,8,36]:Integer, [-1,8,37]:Integer, [-1,8,38]:Integer, [-1,8,39]:Integer, [-1,16]:Pointer, [-1,16,0]:Pointer, [-1,16,0,0]:Pointer, [-1,16,0,0,0]:Pointer, [-1,16,0,0,0,-1]:Integer, [-1,16,0,0,8]:Integer, [-1,16,0,0,9]:Integer, [-1,16,0,0,10]:Integer, [-1,16,0,0,11]:Integer, [-1,16,0,0,12]:Integer, [-1,16,0,0,13]:Integer, [-1,16,0,0,14]:Integer, [-1,16,0,0,15]:Integer, [-1,16,0,0,16]:Integer, [-1,16,0,0,17]:Integer, [-1,16,0,0,18]:Integer, [-1,16,0,0,19]:Integer, [-1,16,0,0,20]:Integer, [-1,16,0,0,21]:Integer, [-1,16,0,0,22]:Integer, [-1,16,0,0,23]:Integer, [-1,16,0,0,24]:Integer, [-1,16,0,0,25]:Integer, [-1,16,0,0,26]:Integer, [-1,16,0,0,27]:Integer, [-1,16,0,0,28]:Integer, [-1,16,0,0,29]:Integer, [-1,16,0,0,30]:Integer, [-1,16,0,0,31]:Integer, [-1,16,0,0,32]:Integer, [-1,16,0,0,33]:Integer, [-1,16,0,0,34]:Integer, [-1,16,0,0,35]:Integer, [-1,16,0,0,36]:Integer, [-1,16,0,0,37]:Integer, [-1,16,0,0,38]:Integer, [-1,16,0,0,39]:Integer, [-1,16,8]:Integer, [-1,16,9]:Integer, [-1,16,10]:Integer, [-1,16,11]:Integer, [-1,16,12]:Integer, [-1,16,13]:Integer, [-1,16,14]:Integer, [-1,16,15]:Integer, [-1,16,16]:Integer, [-1,16,17]:Integer, [-1,16,18]:Integer, [-1,16,19]:Integer, [-1,16,20]:Integer, [-1,16,21]:Integer, [-1,16,22]:Integer, [-1,16,23]:Integer, [-1,16,24]:Integer, [-1,16,25]:Integer, [-1,16,26]:Integer, [-1,16,27]:Integer, [-1,16,28]:Integer, [-1,16,29]:Integer, [-1,16,30]:Integer, [-1,16,31]:Integer, [-1,16,32]:Integer, [-1,16,33]:Integer, [-1,16,34]:Integer, [-1,16,35]:Integer, [-1,16,36]:Integer, [-1,16,37]:Integer, [-1,16,38]:Integer, [-1,16,39]:Integer}" "enzymejl_parmtype"="4436138512" "enzymejl_parmtype_ref"="2" %0, i64 signext "enzyme_inactive" "enzyme_type"="{[-1]:Integer}" "enzymejl_parmtype"="5414521840" "enzymejl_parmtype_ref"="0" %1, i64 signext "enzyme_inactive" "enzyme_type"="{[-1]:Integer}" "enzymejl_parmtype"="5414521840" "enzymejl_parmtype_ref"="0" %2, {} addrspace(10)* noundef nonnull align 16 dereferenceable(40) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="5195935248" "enzymejl_parmtype_ref"="2" %3) unnamed_addr #30 !dbg !1356 {
top:
%sret_box169 = alloca [8 x i8], align 8
%4 = call {}*** @julia.get_pgcstack() #31
%current_task1262 = getelementptr inbounds {}**, {}*** %4, i64 -14
%current_task1 = bitcast {}*** %current_task1262 to {}**
%ptls_field263 = getelementptr inbounds {}**, {}*** %4, i64 2
%5 = bitcast {}*** %ptls_field263 to i64***
%ptls_load264265 = load i64**, i64*** %5, align 8, !tbaa !24
%6 = getelementptr inbounds i64*, i64** %ptls_load264265, i64 2
%safepoint = load i64*, i64** %6, align 8, !tbaa !28
fence syncscope("singlethread") seq_cst
call void @julia.safepoint(i64* %safepoint) #31, !dbg !1357
fence syncscope("singlethread") seq_cst
%7 = call fastcc noalias nonnull dereferenceable(16) {} addrspace(10)* @julia_SimpleGraph_5656({} addrspace(10)* nocapture noundef nonnull readonly align 8 dereferenceable(24) %0) #31, !dbg !1358
%8 = call fastcc nonnull dereferenceable(24) {} addrspace(10)* @julia_SimpleDiGraph_5632({} addrspace(10)* noundef nonnull align 8 dereferenceable(16) %7) #31, !dbg !1358
%9 = addrspacecast {} addrspace(10)* %8 to i8 addrspace(11)*, !dbg !1363
%getfield_addr130 = getelementptr inbounds i8, i8 addrspace(11)* %9, i64 8, !dbg !1363
%10 = bitcast i8 addrspace(11)* %getfield_addr130 to {} addrspace(10)* addrspace(11)*, !dbg !1363
%getfield131 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %10 unordered, align 8, !dbg !1363, !tbaa !291, !alias.scope !147, !noalias !293, !nonnull !23, !dereferenceable !139, !align !140
%11 = addrspacecast {} addrspace(10)* %getfield131 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !1369
%arraylen_ptr132 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %11, i64 0, i32 1, !dbg !1369
%arraylen133 = load i64, i64 addrspace(11)* %arraylen_ptr132, align 8, !dbg !1369, !tbaa !117, !range !120, !alias.scope !121, !noalias !122
%12 = call noalias nonnull {} addrspace(10)* @ijl_alloc_array_2d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 5195935248 to {}*) to {} addrspace(10)*), i64 %arraylen133, i64 %arraylen133) #32, !dbg !1370
%13 = addrspacecast {} addrspace(10)* %12 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !1375
%arraylen_ptr134 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %13, i64 0, i32 1, !dbg !1375
%arraylen135 = load i64, i64 addrspace(11)* %arraylen_ptr134, align 8, !dbg !1375, !tbaa !28, !range !120, !alias.scope !54, !noalias !57
%.not279 = icmp eq i64 %arraylen135, 0, !dbg !1380
br i1 %.not279, label %L355, label %L321.L338_crit_edge, !dbg !1378
L321.L338_crit_edge: ; preds = %top
%14 = addrspacecast {} addrspace(10)* %12 to i8 addrspace(13)* addrspace(11)*, !dbg !1384
%arrayptr143.pre280330 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(11)* %14, align 8, !dbg !1384, !tbaa !28, !alias.scope !1386, !noalias !57
%15 = shl nuw i64 %arraylen135, 3, !dbg !1378
call void @llvm.memset.p13i8.i64(i8 addrspace(13)* align 8 %arrayptr143.pre280330, i8 noundef 0, i64 %15, i1 noundef false) #31, !dbg !1384, !tbaa !322, !alias.scope !147, !noalias !1389
br label %L355, !dbg !1390
L355: ; preds = %L321.L338_crit_edge, %top
%16 = call noalias nonnull "enzyme_inactive" {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 5342034176 to {}*) to {} addrspace(10)*), i64 %arraylen133) #32, !dbg !1390
%17 = addrspacecast {} addrspace(10)* %16 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !1395
%arraylen_ptr148 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %17, i64 0, i32 1, !dbg !1395
%arraylen149 = load i64, i64 addrspace(11)* %arraylen_ptr148, align 8, !dbg !1395, !tbaa !117, !range !120, !alias.scope !121, !noalias !122
%.not282 = icmp eq i64 %arraylen149, 0, !dbg !1401
br i1 %.not282, label %L385, label %L355.L368_crit_edge, !dbg !1399
L355.L368_crit_edge: ; preds = %L355
%18 = addrspacecast {} addrspace(10)* %16 to i8 addrspace(13)* addrspace(11)*, !dbg !1405
%arrayptr157.pre283331 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(11)* %18, align 8, !dbg !1405, !tbaa !141, !alias.scope !1407, !noalias !122
%19 = shl nuw i64 %arraylen149, 3, !dbg !1399
call void @llvm.memset.p13i8.i64(i8 addrspace(13)* align 8 %arrayptr157.pre283331, i8 noundef 0, i64 %19, i1 noundef false) #31, !dbg !1405, !tbaa !322, !alias.scope !147, !noalias !1389
br label %L385, !dbg !1408
L385: ; preds = %L355.L368_crit_edge, %L355
%20 = bitcast [8 x i8]* %sret_box169 to {}*
%21 = addrspacecast {}* %20 to {} addrspace(11)*
br label %L386, !dbg !1408
L386: ; preds = %post_union_move209, %L385
%iv = phi i64 [ %iv.next, %post_union_move209 ], [ 0, %L385 ], !dbg !1408
%unbox197 = phi i64 [ 0, %L385 ], [ %unionalloca166.sroa.0.0.copyload226, %post_union_move209 ], !dbg !1408
%value_phi162.off0 = phi i1 [ false, %L385 ], [ %value_phi183, %post_union_move209 ]
%value_phi163.off0 = phi i1 [ true, %L385 ], [ %value_phi184, %post_union_move209 ]
%tindex_phi167 = phi i8 [ 2, %L385 ], [ %tindex_phi188, %post_union_move209 ]
%iv.next = add nuw nsw i64 %iv, 1, !dbg !1410
%22 = call fastcc { {} addrspace(10)*, i8 } @julia_blocking_flow__5624([8 x i8]* noalias nocapture noundef nonnull align 8 dereferenceable(8) %sret_box169, {} addrspace(10)* noundef nonnull align 8 dereferenceable(24) %8, i64 signext %1, i64 signext %2, {} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %3, {} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %12, {} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %16) #31, !dbg !1410
%23 = extractvalue { {} addrspace(10)*, i8 } %22, 0, !dbg !1410
%24 = extractvalue { {} addrspace(10)*, i8 } %22, 1, !dbg !1410
%25 = addrspacecast {} addrspace(10)* %23 to {} addrspace(11)*, !dbg !1410
%26 = icmp slt i8 %24, 0, !dbg !1410
%27 = select i1 %26, {} addrspace(11)* %25, {} addrspace(11)* %21, !dbg !1410
%28 = bitcast i64 %unbox197 to double, !dbg !1412
%trunc351 = trunc i8 %24 to i7, !dbg !1412
switch i7 %trunc351, label %L405 [
i7 1, label %L395
i7 2, label %L407
], !dbg !1412
L395: ; preds = %L386
%29 = bitcast {} addrspace(11)* %27 to double addrspace(11)*, !dbg !1413
%unbox171 = load double, double addrspace(11)* %29, align 8, !dbg !1413, !tbaa !998, !alias.scope !1000, !noalias !1001
%30 = fcmp oeq double %unbox171, 0.000000e+00, !dbg !1413
br i1 %30, label %L448, label %L410, !dbg !1412
L405: ; preds = %L386
call void @ijl_throw({} addrspace(12)* addrspacecast ({}* inttoptr (i64 5402494688 to {}*) to {} addrspace(12)*)) #31, !dbg !1412
unreachable, !dbg !1412
L407: ; preds = %L386
%31 = bitcast {} addrspace(11)* %27 to i64 addrspace(11)*, !dbg !1415
%unbox202 = load i64, i64 addrspace(11)* %31, align 8, !dbg !1415, !tbaa !998, !alias.scope !1000, !noalias !1001
%32 = icmp eq i64 %unbox202, 0, !dbg !1415
br i1 %32, label %L448, label %L425, !dbg !1412
L410: ; preds = %L395
br i1 %value_phi162.off0, label %L413, label %L417, !dbg !1416
L413: ; preds = %L410
%33 = fadd double %unbox171, %28, !dbg !1417
%34 = bitcast double %33 to i64, !dbg !1408
br label %post_union_move209, !dbg !1408
L417: ; preds = %L410
br i1 %value_phi163.off0, label %L420, label %L440, !dbg !1416
L420: ; preds = %L417
%35 = sitofp i64 %unbox197 to double, !dbg !1418
%36 = fadd double %unbox171, %35, !dbg !1423
%37 = bitcast double %36 to i64, !dbg !1408
br label %post_union_move209, !dbg !1408
L425: ; preds = %L407
br i1 %value_phi162.off0, label %L428, label %L433, !dbg !1416
L428: ; preds = %L425
%38 = sitofp i64 %unbox202 to double, !dbg !1418
%39 = fadd double %28, %38, !dbg !1423
%40 = bitcast double %39 to i64, !dbg !1408
br label %post_union_move209, !dbg !1408
L433: ; preds = %L425
br i1 %value_phi163.off0, label %L436, label %L440, !dbg !1416
L436: ; preds = %L433
%41 = add i64 %unbox202, %unbox197, !dbg !1424
br label %post_union_move209, !dbg !1408
L440: ; preds = %L433, %L417
call void @ijl_throw({} addrspace(12)* addrspacecast ({}* inttoptr (i64 5402494688 to {}*) to {} addrspace(12)*)) #31, !dbg !1416
unreachable, !dbg !1416
L448: ; preds = %L407, %L395
switch i8 %tindex_phi167, label %post_box_union174 [
i8 1, label %box_union175
i8 2, label %box_union178
], !dbg !1425
post_box_union174: ; preds = %box_union178, %box_union175, %L448
%42 = phi {} addrspace(10)* [ %unionbox177, %box_union175 ], [ %45, %box_union178 ], [ null, %L448 ], !dbg !1425
%43 = call noalias nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @jl_f_tuple, {} addrspace(10)* null, {} addrspace(10)* %42, {} addrspace(10)* nonnull %12) #33, !dbg !1425
ret {} addrspace(10)* %43, !dbg !1426
box_union175: ; preds = %L448
%unionbox177 = call noalias nonnull dereferenceable(8) {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task1, i64 8, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 5414521040 to {}*) to {} addrspace(10)*)) #34, !dbg !1425
%44 = bitcast {} addrspace(10)* %unionbox177 to i64 addrspace(10)*, !dbg !1425
store i64 %unbox197, i64 addrspace(10)* %44, align 8, !dbg !1425, !tbaa !1021
br label %post_box_union174, !dbg !1425
box_union178: ; preds = %L448
%45 = call noalias nonnull "enzyme_inactive" {} addrspace(10)* @ijl_box_int64(i64 signext %unbox197) #32, !dbg !1425
br label %post_box_union174, !dbg !1425
post_union_move209: ; preds = %L436, %L428, %L420, %L413
%unionalloca166.sroa.0.0.copyload226 = phi i64 [ %41, %L436 ], [ %40, %L428 ], [ %37, %L420 ], [ %34, %L413 ], !dbg !1408
%value_phi183 = phi i1 [ false, %L436 ], [ true, %L428 ], [ true, %L420 ], [ true, %L413 ]
%value_phi184 = phi i1 [ true, %L436 ], [ false, %L428 ], [ false, %L420 ], [ false, %L413 ]
%tindex_phi188 = phi i8 [ 2, %L436 ], [ 1, %L428 ], [ 1, %L420 ], [ 1, %L413 ]
br label %L386, !dbg !1408
}
Type analysis state:
<analysis>
i64 3: {[-1]:Integer}, intvals: {3,}
%sret_box169 = alloca [8 x i8], align 8: {[-1]:Pointer}, intvals: {}
{} addrspace(10)* %0: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,0]:Pointer, [-1,8,0,0,0]:Pointer, [-1,8,0,0,0,-1]:Integer, [-1,8,0,0,8]:Integer, [-1,8,0,0,9]:Integer, [-1,8,0,0,10]:Integer, [-1,8,0,0,11]:Integer, [-1,8,0,0,12]:Integer, [-1,8,0,0,13]:Integer, [-1,8,0,0,14]:Integer, [-1,8,0,0,15]:Integer, [-1,8,0,0,16]:Integer, [-1,8,0,0,17]:Integer, [-1,8,0,0,18]:Integer, [-1,8,0,0,19]:Integer, [-1,8,0,0,20]:Integer, [-1,8,0,0,21]:Integer, [-1,8,0,0,22]:Integer, [-1,8,0,0,23]:Integer, [-1,8,0,0,24]:Integer, [-1,8,0,0,25]:Integer, [-1,8,0,0,26]:Integer, [-1,8,0,0,27]:Integer, [-1,8,0,0,28]:Integer, [-1,8,0,0,29]:Integer, [-1,8,0,0,30]:Integer, [-1,8,0,0,31]:Integer, [-1,8,0,0,32]:Integer, [-1,8,0,0,33]:Integer, [-1,8,0,0,34]:Integer, [-1,8,0,0,35]:Integer, [-1,8,0,0,36]:Integer, [-1,8,0,0,37]:Integer, [-1,8,0,0,38]:Integer, [-1,8,0,0,39]:Integer, [-1,8,8]:Integer, [-1,8,9]:Integer, [-1,8,10]:Integer, [-1,8,11]:Integer, [-1,8,12]:Integer, [-1,8,13]:Integer, [-1,8,14]:Integer, [-1,8,15]:Integer, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,8,24]:Integer, [-1,8,25]:Integer, [-1,8,26]:Integer, [-1,8,27]:Integer, [-1,8,28]:Integer, [-1,8,29]:Integer, [-1,8,30]:Integer, [-1,8,31]:Integer, [-1,8,32]:Integer, [-1,8,33]:Integer, [-1,8,34]:Integer, [-1,8,35]:Integer, [-1,8,36]:Integer, [-1,8,37]:Integer, [-1,8,38]:Integer, [-1,8,39]:Integer, [-1,16]:Pointer, [-1,16,0]:Pointer, [-1,16,0,0]:Pointer, [-1,16,0,0,0]:Pointer, [-1,16,0,0,0,-1]:Integer, [-1,16,0,0,8]:Integer, [-1,16,0,0,9]:Integer, [-1,16,0,0,10]:Integer, [-1,16,0,0,11]:Integer, [-1,16,0,0,12]:Integer, [-1,16,0,0,13]:Integer, [-1,16,0,0,14]:Integer, [-1,16,0,0,15]:Integer, [-1,16,0,0,16]:Integer, [-1,16,0,0,17]:Integer, [-1,16,0,0,18]:Integer, [-1,16,0,0,19]:Integer, [-1,16,0,0,20]:Integer, [-1,16,0,0,21]:Integer, [-1,16,0,0,22]:Integer, [-1,16,0,0,23]:Integer, [-1,16,0,0,24]:Integer, [-1,16,0,0,25]:Integer, [-1,16,0,0,26]:Integer, [-1,16,0,0,27]:Integer, [-1,16,0,0,28]:Integer, [-1,16,0,0,29]:Integer, [-1,16,0,0,30]:Integer, [-1,16,0,0,31]:Integer, [-1,16,0,0,32]:Integer, [-1,16,0,0,33]:Integer, [-1,16,0,0,34]:Integer, [-1,16,0,0,35]:Integer, [-1,16,0,0,36]:Integer, [-1,16,0,0,37]:Integer, [-1,16,0,0,38]:Integer, [-1,16,0,0,39]:Integer, [-1,16,8]:Integer, [-1,16,9]:Integer, [-1,16,10]:Integer, [-1,16,11]:Integer, [-1,16,12]:Integer, [-1,16,13]:Integer, [-1,16,14]:Integer, [-1,16,15]:Integer, [-1,16,16]:Integer, [-1,16,17]:Integer, [-1,16,18]:Integer, [-1,16,19]:Integer, [-1,16,20]:Integer, [-1,16,21]:Integer, [-1,16,22]:Integer, [-1,16,23]:Integer, [-1,16,24]:Integer, [-1,16,25]:Integer, [-1,16,26]:Integer, [-1,16,27]:Integer, [-1,16,28]:Integer, [-1,16,29]:Integer, [-1,16,30]:Integer, [-1,16,31]:Integer, [-1,16,32]:Integer, [-1,16,33]:Integer, [-1,16,34]:Integer, [-1,16,35]:Integer, [-1,16,36]:Integer, [-1,16,37]:Integer, [-1,16,38]:Integer, [-1,16,39]:Integer}, intvals: {}
i64 %1: {[-1]:Integer}, intvals: {}
i64 %2: {[-1]:Integer}, intvals: {}
{} addrspace(10)* %3: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%8 = call fastcc nonnull dereferenceable(24) {} addrspace(10)* @julia_SimpleDiGraph_5632({} addrspace(10)* noundef nonnull align 8 dereferenceable(16) %7) #31, !dbg !31: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,0]:Pointer, [-1,8,0,0,0]:Pointer, [-1,8,0,0,0,-1]:Integer, [-1,8,0,0,8]:Integer, [-1,8,0,0,9]:Integer, [-1,8,0,0,10]:Integer, [-1,8,0,0,11]:Integer, [-1,8,0,0,12]:Integer, [-1,8,0,0,13]:Integer, [-1,8,0,0,14]:Integer, [-1,8,0,0,15]:Integer, [-1,8,0,0,16]:Integer, [-1,8,0,0,17]:Integer, [-1,8,0,0,18]:Integer, [-1,8,0,0,19]:Integer, [-1,8,0,0,20]:Integer, [-1,8,0,0,21]:Integer, [-1,8,0,0,22]:Integer, [-1,8,0,0,23]:Integer, [-1,8,0,0,24]:Integer, [-1,8,0,0,25]:Integer, [-1,8,0,0,26]:Integer, [-1,8,0,0,27]:Integer, [-1,8,0,0,28]:Integer, [-1,8,0,0,29]:Integer, [-1,8,0,0,30]:Integer, [-1,8,0,0,31]:Integer, [-1,8,0,0,32]:Integer, [-1,8,0,0,33]:Integer, [-1,8,0,0,34]:Integer, [-1,8,0,0,35]:Integer, [-1,8,0,0,36]:Integer, [-1,8,0,0,37]:Integer, [-1,8,0,0,38]:Integer, [-1,8,0,0,39]:Integer, [-1,8,8]:Integer, [-1,8,9]:Integer, [-1,8,10]:Integer, [-1,8,11]:Integer, [-1,8,12]:Integer, [-1,8,13]:Integer, [-1,8,14]:Integer, [-1,8,15]:Integer, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,8,24]:Integer, [-1,8,25]:Integer, [-1,8,26]:Integer, [-1,8,27]:Integer, [-1,8,28]:Integer, [-1,8,29]:Integer, [-1,8,30]:Integer, [-1,8,31]:Integer, [-1,8,32]:Integer, [-1,8,33]:Integer, [-1,8,34]:Integer, [-1,8,35]:Integer, [-1,8,36]:Integer, [-1,8,37]:Integer, [-1,8,38]:Integer, [-1,8,39]:Integer, [-1,16]:Pointer, [-1,16,0]:Pointer, [-1,16,0,0]:Pointer, [-1,16,0,0,0]:Pointer, [-1,16,0,0,0,-1]:Integer, [-1,16,0,0,8]:Integer, [-1,16,0,0,9]:Integer, [-1,16,0,0,10]:Integer, [-1,16,0,0,11]:Integer, [-1,16,0,0,12]:Integer, [-1,16,0,0,13]:Integer, [-1,16,0,0,14]:Integer, [-1,16,0,0,15]:Integer, [-1,16,0,0,16]:Integer, [-1,16,0,0,17]:Integer, [-1,16,0,0,18]:Integer, [-1,16,0,0,19]:Integer, [-1,16,0,0,20]:Integer, [-1,16,0,0,21]:Integer, [-1,16,0,0,22]:Integer, [-1,16,0,0,23]:Integer, [-1,16,0,0,24]:Integer, [-1,16,0,0,25]:Integer, [-1,16,0,0,26]:Integer, [-1,16,0,0,27]:Integer, [-1,16,0,0,28]:Integer, [-1,16,0,0,29]:Integer, [-1,16,0,0,30]:Integer, [-1,16,0,0,31]:Integer, [-1,16,0,0,32]:Integer, [-1,16,0,0,33]:Integer, [-1,16,0,0,34]:Integer, [-1,16,0,0,35]:Integer, [-1,16,0,0,36]:Integer, [-1,16,0,0,37]:Integer, [-1,16,0,0,38]:Integer, [-1,16,0,0,39]:Integer, [-1,16,8]:Integer, [-1,16,9]:Integer, [-1,16,10]:Integer, [-1,16,11]:Integer, [-1,16,12]:Integer, [-1,16,13]:Integer, [-1,16,14]:Integer, [-1,16,15]:Integer, [-1,16,16]:Integer, [-1,16,17]:Integer, [-1,16,18]:Integer, [-1,16,19]:Integer, [-1,16,20]:Integer, [-1,16,21]:Integer, [-1,16,22]:Integer, [-1,16,23]:Integer, [-1,16,24]:Integer, [-1,16,25]:Integer, [-1,16,26]:Integer, [-1,16,27]:Integer, [-1,16,28]:Integer, [-1,16,29]:Integer, [-1,16,30]:Integer, [-1,16,31]:Integer, [-1,16,32]:Integer, [-1,16,33]:Integer, [-1,16,34]:Integer, [-1,16,35]:Integer, [-1,16,36]:Integer, [-1,16,37]:Integer, [-1,16,38]:Integer, [-1,16,39]:Integer}, intvals: {}
%4 = call {}*** @julia.get_pgcstack() #31: {}, intvals: {}
%current_task1262 = getelementptr inbounds {}**, {}*** %4, i64 -14: {}, intvals: {}
%current_task1 = bitcast {}*** %current_task1262 to {}**: {}, intvals: {}
%ptls_field263 = getelementptr inbounds {}**, {}*** %4, i64 2: {}, intvals: {}
%5 = bitcast {}*** %ptls_field263 to i64***: {[-1]:Pointer}, intvals: {}
%ptls_load264265 = load i64**, i64*** %5, align 8, !tbaa !24: {}, intvals: {}
%6 = getelementptr inbounds i64*, i64** %ptls_load264265, i64 2: {[-1]:Pointer}, intvals: {}
%safepoint = load i64*, i64** %6, align 8, !tbaa !28: {}, intvals: {}
%7 = call fastcc noalias nonnull dereferenceable(16) {} addrspace(10)* @julia_SimpleGraph_5656({} addrspace(10)* nocapture noundef nonnull readonly align 8 dereferenceable(24) %0) #31, !dbg !31: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,0]:Pointer, [-1,8,0,0,0]:Pointer, [-1,8,0,0,0,-1]:Integer, [-1,8,0,0,8]:Integer, [-1,8,0,0,9]:Integer, [-1,8,0,0,10]:Integer, [-1,8,0,0,11]:Integer, [-1,8,0,0,12]:Integer, [-1,8,0,0,13]:Integer, [-1,8,0,0,14]:Integer, [-1,8,0,0,15]:Integer, [-1,8,0,0,16]:Integer, [-1,8,0,0,17]:Integer, [-1,8,0,0,18]:Integer, [-1,8,0,0,19]:Integer, [-1,8,0,0,20]:Integer, [-1,8,0,0,21]:Integer, [-1,8,0,0,22]:Integer, [-1,8,0,0,23]:Integer, [-1,8,0,0,24]:Integer, [-1,8,0,0,25]:Integer, [-1,8,0,0,26]:Integer, [-1,8,0,0,27]:Integer, [-1,8,0,0,28]:Integer, [-1,8,0,0,29]:Integer, [-1,8,0,0,30]:Integer, [-1,8,0,0,31]:Integer, [-1,8,0,0,32]:Integer, [-1,8,0,0,33]:Integer, [-1,8,0,0,34]:Integer, [-1,8,0,0,35]:Integer, [-1,8,0,0,36]:Integer, [-1,8,0,0,37]:Integer, [-1,8,0,0,38]:Integer, [-1,8,0,0,39]:Integer, [-1,8,8]:Integer, [-1,8,9]:Integer, [-1,8,10]:Integer, [-1,8,11]:Integer, [-1,8,12]:Integer, [-1,8,13]:Integer, [-1,8,14]:Integer, [-1,8,15]:Integer, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,8,24]:Integer, [-1,8,25]:Integer, [-1,8,26]:Integer, [-1,8,27]:Integer, [-1,8,28]:Integer, [-1,8,29]:Integer, [-1,8,30]:Integer, [-1,8,31]:Integer, [-1,8,32]:Integer, [-1,8,33]:Integer, [-1,8,34]:Integer, [-1,8,35]:Integer, [-1,8,36]:Integer, [-1,8,37]:Integer, [-1,8,38]:Integer, [-1,8,39]:Integer}, intvals: {}
%iv.next = add nuw nsw i64 %iv, 1, !dbg !142: {[-1]:Integer}, intvals: {1,}
%37 = bitcast double %36 to i64, !dbg !140: {[-1]:Float@double}, intvals: {}
%38 = sitofp i64 %unbox202 to double, !dbg !160: {[-1]:Float@double}, intvals: {}
%39 = fadd double %28, %38, !dbg !171: {[-1]:Float@double}, intvals: {}
%40 = bitcast double %39 to i64, !dbg !140: {[-1]:Float@double}, intvals: {}
%41 = add i64 %unbox202, %unbox197, !dbg !172: {[-1]:Integer}, intvals: {}
%unbox171 = load double, double addrspace(11)* %29, align 8, !dbg !146, !tbaa !150, !alias.scope !152, !noalias !153: {[-1]:Float@double}, intvals: {}
%30 = fcmp oeq double %unbox171, 0.000000e+00, !dbg !146: {[-1]:Integer}, intvals: {}
%31 = bitcast {} addrspace(11)* %27 to i64 addrspace(11)*, !dbg !154: {[-1]:Pointer}, intvals: {}
%unbox202 = load i64, i64 addrspace(11)* %31, align 8, !dbg !154, !tbaa !150, !alias.scope !152, !noalias !153: {[-1]:Integer}, intvals: {}
%32 = icmp eq i64 %unbox202, 0, !dbg !154: {[-1]:Integer}, intvals: {}
%16 = call noalias nonnull "enzyme_inactive" {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 5342034176 to {}*) to {} addrspace(10)*), i64 %arraylen133) #32, !dbg !117: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%17 = addrspacecast {} addrspace(10)* %16 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !122: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%arraylen_ptr148 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %17, i64 0, i32 1, !dbg !122: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {}
%arraylen149 = load i64, i64 addrspace(11)* %arraylen_ptr148, align 8, !dbg !122, !tbaa !72, !range !75, !alias.scope !76, !noalias !77: {[-1]:Integer}, intvals: {}
%.not282 = icmp eq i64 %arraylen149, 0, !dbg !131: {[-1]:Integer}, intvals: {}
%18 = addrspacecast {} addrspace(10)* %16 to i8 addrspace(13)* addrspace(11)*, !dbg !135: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%arrayptr157.pre283331 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(11)* %18, align 8, !dbg !135, !tbaa !137, !alias.scope !139, !noalias !77: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {}
%19 = shl nuw i64 %arraylen149, 3, !dbg !129: {[-1]:Integer}, intvals: {}
%20 = bitcast [8 x i8]* %sret_box169 to {}*: {[-1]:Pointer}, intvals: {}
%arraylen_ptr132 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %11, i64 0, i32 1, !dbg !69: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {}
%arraylen133 = load i64, i64 addrspace(11)* %arraylen_ptr132, align 8, !dbg !69, !tbaa !72, !range !75, !alias.scope !76, !noalias !77: {[-1]:Integer}, intvals: {}
%12 = call noalias nonnull {} addrspace(10)* @ijl_alloc_array_2d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 5195935248 to {}*) to {} addrspace(10)*), i64 %arraylen133, i64 %arraylen133) #32, !dbg !78: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%13 = addrspacecast {} addrspace(10)* %12 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !87: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%arraylen_ptr134 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %13, i64 0, i32 1, !dbg !87: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {}
%arraylen135 = load i64, i64 addrspace(11)* %arraylen_ptr134, align 8, !dbg !87, !tbaa !28, !range !75, !alias.scope !95, !noalias !96: {[-1]:Integer}, intvals: {}
%.not279 = icmp eq i64 %arraylen135, 0, !dbg !97: {[-1]:Integer}, intvals: {}
%14 = addrspacecast {} addrspace(10)* %12 to i8 addrspace(13)* addrspace(11)*, !dbg !108: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%arrayptr143.pre280330 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(11)* %14, align 8, !dbg !108, !tbaa !28, !alias.scope !111, !noalias !96: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
%15 = shl nuw i64 %arraylen135, 3, !dbg !92: {[-1]:Integer}, intvals: {}
%33 = fadd double %unbox171, %28, !dbg !158: {[-1]:Float@double}, intvals: {}
%34 = bitcast double %33 to i64, !dbg !140: {[-1]:Float@double}, intvals: {}
%21 = addrspacecast {}* %20 to {} addrspace(11)*: {[-1]:Pointer}, intvals: {}
%unbox197 = phi i64 [ 0, %L385 ], [ %unionalloca166.sroa.0.0.copyload226, %post_union_move209 ], !dbg !140: {[-1]:Integer}, intvals: {0,}
%value_phi162.off0 = phi i1 [ false, %L385 ], [ %value_phi183, %post_union_move209 ]: {[-1]:Integer}, intvals: {0,}
%value_phi163.off0 = phi i1 [ true, %L385 ], [ %value_phi184, %post_union_move209 ]: {[-1]:Integer}, intvals: {-1,}
%tindex_phi167 = phi i8 [ 2, %L385 ], [ %tindex_phi188, %post_union_move209 ]: {[-1]:Integer}, intvals: {2,}
%22 = call fastcc { {} addrspace(10)*, i8 } @julia_blocking_flow__5624([8 x i8]* noalias nocapture noundef nonnull align 8 dereferenceable(8) %sret_box169, {} addrspace(10)* noundef nonnull align 8 dereferenceable(24) %8, i64 signext %1, i64 signext %2, {} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %3, {} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %12, {} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %16) #31, !dbg !142: {[0]:Pointer, [8]:Integer}, intvals: {}
%44 = bitcast {} addrspace(10)* %unionbox177 to i64 addrspace(10)*, !dbg !174: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
%45 = call noalias nonnull "enzyme_inactive" {} addrspace(10)* @ijl_box_int64(i64 signext %unbox197) #32, !dbg !174: {}, intvals: {}
%iv = phi i64 [ %iv.next, %post_union_move209 ], [ 0, %L385 ], !dbg !140: {[-1]:Integer}, intvals: {0,}
%unionalloca166.sroa.0.0.copyload226 = phi i64 [ %41, %L436 ], [ %40, %L428 ], [ %37, %L420 ], [ %34, %L413 ], !dbg !140: {}, intvals: {}
%35 = sitofp i64 %unbox197 to double, !dbg !160: {[-1]:Float@double}, intvals: {0,}
%36 = fadd double %unbox171, %35, !dbg !171: {[-1]:Float@double}, intvals: {}
%9 = addrspacecast {} addrspace(10)* %8 to i8 addrspace(11)*, !dbg !41: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,0]:Pointer, [-1,8,0,0,0]:Pointer, [-1,8,0,0,0,-1]:Integer, [-1,8,0,0,8]:Integer, [-1,8,0,0,9]:Integer, [-1,8,0,0,10]:Integer, [-1,8,0,0,11]:Integer, [-1,8,0,0,12]:Integer, [-1,8,0,0,13]:Integer, [-1,8,0,0,14]:Integer, [-1,8,0,0,15]:Integer, [-1,8,0,0,16]:Integer, [-1,8,0,0,17]:Integer, [-1,8,0,0,18]:Integer, [-1,8,0,0,19]:Integer, [-1,8,0,0,20]:Integer, [-1,8,0,0,21]:Integer, [-1,8,0,0,22]:Integer, [-1,8,0,0,23]:Integer, [-1,8,0,0,24]:Integer, [-1,8,0,0,25]:Integer, [-1,8,0,0,26]:Integer, [-1,8,0,0,27]:Integer, [-1,8,0,0,28]:Integer, [-1,8,0,0,29]:Integer, [-1,8,0,0,30]:Integer, [-1,8,0,0,31]:Integer, [-1,8,0,0,32]:Integer, [-1,8,0,0,33]:Integer, [-1,8,0,0,34]:Integer, [-1,8,0,0,35]:Integer, [-1,8,0,0,36]:Integer, [-1,8,0,0,37]:Integer, [-1,8,0,0,38]:Integer, [-1,8,0,0,39]:Integer, [-1,8,8]:Integer, [-1,8,9]:Integer, [-1,8,10]:Integer, [-1,8,11]:Integer, [-1,8,12]:Integer, [-1,8,13]:Integer, [-1,8,14]:Integer, [-1,8,15]:Integer, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,8,24]:Integer, [-1,8,25]:Integer, [-1,8,26]:Integer, [-1,8,27]:Integer, [-1,8,28]:Integer, [-1,8,29]:Integer, [-1,8,30]:Integer, [-1,8,31]:Integer, [-1,8,32]:Integer, [-1,8,33]:Integer, [-1,8,34]:Integer, [-1,8,35]:Integer, [-1,8,36]:Integer, [-1,8,37]:Integer, [-1,8,38]:Integer, [-1,8,39]:Integer, [-1,16]:Pointer, [-1,16,0]:Pointer, [-1,16,0,0]:Pointer, [-1,16,0,0,0]:Pointer, [-1,16,0,0,0,-1]:Integer, [-1,16,0,0,8]:Integer, [-1,16,0,0,9]:Integer, [-1,16,0,0,10]:Integer, [-1,16,0,0,11]:Integer, [-1,16,0,0,12]:Integer, [-1,16,0,0,13]:Integer, [-1,16,0,0,14]:Integer, [-1,16,0,0,15]:Integer, [-1,16,0,0,16]:Integer, [-1,16,0,0,17]:Integer, [-1,16,0,0,18]:Integer, [-1,16,0,0,19]:Integer, [-1,16,0,0,20]:Integer, [-1,16,0,0,21]:Integer, [-1,16,0,0,22]:Integer, [-1,16,0,0,23]:Integer, [-1,16,0,0,24]:Integer, [-1,16,0,0,25]:Integer, [-1,16,0,0,26]:Integer, [-1,16,0,0,27]:Integer, [-1,16,0,0,28]:Integer, [-1,16,0,0,29]:Integer, [-1,16,0,0,30]:Integer, [-1,16,0,0,31]:Integer, [-1,16,0,0,32]:Integer, [-1,16,0,0,33]:Integer, [-1,16,0,0,34]:Integer, [-1,16,0,0,35]:Integer, [-1,16,0,0,36]:Integer, [-1,16,0,0,37]:Integer, [-1,16,0,0,38]:Integer, [-1,16,0,0,39]:Integer, [-1,16,8]:Integer, [-1,16,9]:Integer, [-1,16,10]:Integer, [-1,16,11]:Integer, [-1,16,12]:Integer, [-1,16,13]:Integer, [-1,16,14]:Integer, [-1,16,15]:Integer, [-1,16,16]:Integer, [-1,16,17]:Integer, [-1,16,18]:Integer, [-1,16,19]:Integer, [-1,16,20]:Integer, [-1,16,21]:Integer, [-1,16,22]:Integer, [-1,16,23]:Integer, [-1,16,24]:Integer, [-1,16,25]:Integer, [-1,16,26]:Integer, [-1,16,27]:Integer, [-1,16,28]:Integer, [-1,16,29]:Integer, [-1,16,30]:Integer, [-1,16,31]:Integer, [-1,16,32]:Integer, [-1,16,33]:Integer, [-1,16,34]:Integer, [-1,16,35]:Integer, [-1,16,36]:Integer, [-1,16,37]:Integer, [-1,16,38]:Integer, [-1,16,39]:Integer}, intvals: {}
%getfield_addr130 = getelementptr inbounds i8, i8 addrspace(11)* %9, i64 8, !dbg !41: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,0]:Pointer, [-1,0,0,0,0]:Pointer, [-1,0,0,0,0,-1]:Integer, [-1,0,0,0,8]:Integer, [-1,0,0,0,9]:Integer, [-1,0,0,0,10]:Integer, [-1,0,0,0,11]:Integer, [-1,0,0,0,12]:Integer, [-1,0,0,0,13]:Integer, [-1,0,0,0,14]:Integer, [-1,0,0,0,15]:Integer, [-1,0,0,0,16]:Integer, [-1,0,0,0,17]:Integer, [-1,0,0,0,18]:Integer, [-1,0,0,0,19]:Integer, [-1,0,0,0,20]:Integer, [-1,0,0,0,21]:Integer, [-1,0,0,0,22]:Integer, [-1,0,0,0,23]:Integer, [-1,0,0,0,24]:Integer, [-1,0,0,0,25]:Integer, [-1,0,0,0,26]:Integer, [-1,0,0,0,27]:Integer, [-1,0,0,0,28]:Integer, [-1,0,0,0,29]:Integer, [-1,0,0,0,30]:Integer, [-1,0,0,0,31]:Integer, [-1,0,0,0,32]:Integer, [-1,0,0,0,33]:Integer, [-1,0,0,0,34]:Integer, [-1,0,0,0,35]:Integer, [-1,0,0,0,36]:Integer, [-1,0,0,0,37]:Integer, [-1,0,0,0,38]:Integer, [-1,0,0,0,39]:Integer, [-1,0,8]:Integer, [-1,0,9]:Integer, [-1,0,10]:Integer, [-1,0,11]:Integer, [-1,0,12]:Integer, [-1,0,13]:Integer, [-1,0,14]:Integer, [-1,0,15]:Integer, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,0,24]:Integer, [-1,0,25]:Integer, [-1,0,26]:Integer, [-1,0,27]:Integer, [-1,0,28]:Integer, [-1,0,29]:Integer, [-1,0,30]:Integer, [-1,0,31]:Integer, [-1,0,32]:Integer, [-1,0,33]:Integer, [-1,0,34]:Integer, [-1,0,35]:Integer, [-1,0,36]:Integer, [-1,0,37]:Integer, [-1,0,38]:Integer, [-1,0,39]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,0]:Pointer, [-1,8,0,0,0]:Pointer, [-1,8,0,0,0,-1]:Integer, [-1,8,0,0,8]:Integer, [-1,8,0,0,9]:Integer, [-1,8,0,0,10]:Integer, [-1,8,0,0,11]:Integer, [-1,8,0,0,12]:Integer, [-1,8,0,0,13]:Integer, [-1,8,0,0,14]:Integer, [-1,8,0,0,15]:Integer, [-1,8,0,0,16]:Integer, [-1,8,0,0,17]:Integer, [-1,8,0,0,18]:Integer, [-1,8,0,0,19]:Integer, [-1,8,0,0,20]:Integer, [-1,8,0,0,21]:Integer, [-1,8,0,0,22]:Integer, [-1,8,0,0,23]:Integer, [-1,8,0,0,24]:Integer, [-1,8,0,0,25]:Integer, [-1,8,0,0,26]:Integer, [-1,8,0,0,27]:Integer, [-1,8,0,0,28]:Integer, [-1,8,0,0,29]:Integer, [-1,8,0,0,30]:Integer, [-1,8,0,0,31]:Integer, [-1,8,0,0,32]:Integer, [-1,8,0,0,33]:Integer, [-1,8,0,0,34]:Integer, [-1,8,0,0,35]:Integer, [-1,8,0,0,36]:Integer, [-1,8,0,0,37]:Integer, [-1,8,0,0,38]:Integer, [-1,8,0,0,39]:Integer, [-1,8,8]:Integer, [-1,8,9]:Integer, [-1,8,10]:Integer, [-1,8,11]:Integer, [-1,8,12]:Integer, [-1,8,13]:Integer, [-1,8,14]:Integer, [-1,8,15]:Integer, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,8,24]:Integer, [-1,8,25]:Integer, [-1,8,26]:Integer, [-1,8,27]:Integer, [-1,8,28]:Integer, [-1,8,29]:Integer, [-1,8,30]:Integer, [-1,8,31]:Integer, [-1,8,32]:Integer, [-1,8,33]:Integer, [-1,8,34]:Integer, [-1,8,35]:Integer, [-1,8,36]:Integer, [-1,8,37]:Integer, [-1,8,38]:Integer, [-1,8,39]:Integer}, intvals: {}
%10 = bitcast i8 addrspace(11)* %getfield_addr130 to {} addrspace(10)* addrspace(11)*, !dbg !41: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,0]:Pointer, [-1,0,0,0,0]:Pointer, [-1,0,0,0,0,-1]:Integer, [-1,0,0,0,8]:Integer, [-1,0,0,0,9]:Integer, [-1,0,0,0,10]:Integer, [-1,0,0,0,11]:Integer, [-1,0,0,0,12]:Integer, [-1,0,0,0,13]:Integer, [-1,0,0,0,14]:Integer, [-1,0,0,0,15]:Integer, [-1,0,0,0,16]:Integer, [-1,0,0,0,17]:Integer, [-1,0,0,0,18]:Integer, [-1,0,0,0,19]:Integer, [-1,0,0,0,20]:Integer, [-1,0,0,0,21]:Integer, [-1,0,0,0,22]:Integer, [-1,0,0,0,23]:Integer, [-1,0,0,0,24]:Integer, [-1,0,0,0,25]:Integer, [-1,0,0,0,26]:Integer, [-1,0,0,0,27]:Integer, [-1,0,0,0,28]:Integer, [-1,0,0,0,29]:Integer, [-1,0,0,0,30]:Integer, [-1,0,0,0,31]:Integer, [-1,0,0,0,32]:Integer, [-1,0,0,0,33]:Integer, [-1,0,0,0,34]:Integer, [-1,0,0,0,35]:Integer, [-1,0,0,0,36]:Integer, [-1,0,0,0,37]:Integer, [-1,0,0,0,38]:Integer, [-1,0,0,0,39]:Integer, [-1,0,8]:Integer, [-1,0,9]:Integer, [-1,0,10]:Integer, [-1,0,11]:Integer, [-1,0,12]:Integer, [-1,0,13]:Integer, [-1,0,14]:Integer, [-1,0,15]:Integer, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,0,24]:Integer, [-1,0,25]:Integer, [-1,0,26]:Integer, [-1,0,27]:Integer, [-1,0,28]:Integer, [-1,0,29]:Integer, [-1,0,30]:Integer, [-1,0,31]:Integer, [-1,0,32]:Integer, [-1,0,33]:Integer, [-1,0,34]:Integer, [-1,0,35]:Integer, [-1,0,36]:Integer, [-1,0,37]:Integer, [-1,0,38]:Integer, [-1,0,39]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,0]:Pointer, [-1,8,0,0,0]:Pointer, [-1,8,0,0,0,-1]:Integer, [-1,8,0,0,8]:Integer, [-1,8,0,0,9]:Integer, [-1,8,0,0,10]:Integer, [-1,8,0,0,11]:Integer, [-1,8,0,0,12]:Integer, [-1,8,0,0,13]:Integer, [-1,8,0,0,14]:Integer, [-1,8,0,0,15]:Integer, [-1,8,0,0,16]:Integer, [-1,8,0,0,17]:Integer, [-1,8,0,0,18]:Integer, [-1,8,0,0,19]:Integer, [-1,8,0,0,20]:Integer, [-1,8,0,0,21]:Integer, [-1,8,0,0,22]:Integer, [-1,8,0,0,23]:Integer, [-1,8,0,0,24]:Integer, [-1,8,0,0,25]:Integer, [-1,8,0,0,26]:Integer, [-1,8,0,0,27]:Integer, [-1,8,0,0,28]:Integer, [-1,8,0,0,29]:Integer, [-1,8,0,0,30]:Integer, [-1,8,0,0,31]:Integer, [-1,8,0,0,32]:Integer, [-1,8,0,0,33]:Integer, [-1,8,0,0,34]:Integer, [-1,8,0,0,35]:Integer, [-1,8,0,0,36]:Integer, [-1,8,0,0,37]:Integer, [-1,8,0,0,38]:Integer, [-1,8,0,0,39]:Integer, [-1,8,8]:Integer, [-1,8,9]:Integer, [-1,8,10]:Integer, [-1,8,11]:Integer, [-1,8,12]:Integer, [-1,8,13]:Integer, [-1,8,14]:Integer, [-1,8,15]:Integer, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,8,24]:Integer, [-1,8,25]:Integer, [-1,8,26]:Integer, [-1,8,27]:Integer, [-1,8,28]:Integer, [-1,8,29]:Integer, [-1,8,30]:Integer, [-1,8,31]:Integer, [-1,8,32]:Integer, [-1,8,33]:Integer, [-1,8,34]:Integer, [-1,8,35]:Integer, [-1,8,36]:Integer, [-1,8,37]:Integer, [-1,8,38]:Integer, [-1,8,39]:Integer}, intvals: {}
%getfield131 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %10 unordered, align 8, !dbg !41, !tbaa !55, !alias.scope !59, !noalias !62, !nonnull !23, !dereferenceable !67, !align !68: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,0]:Pointer, [-1,0,0,0,-1]:Integer, [-1,0,0,8]:Integer, [-1,0,0,9]:Integer, [-1,0,0,10]:Integer, [-1,0,0,11]:Integer, [-1,0,0,12]:Integer, [-1,0,0,13]:Integer, [-1,0,0,14]:Integer, [-1,0,0,15]:Integer, [-1,0,0,16]:Integer, [-1,0,0,17]:Integer, [-1,0,0,18]:Integer, [-1,0,0,19]:Integer, [-1,0,0,20]:Integer, [-1,0,0,21]:Integer, [-1,0,0,22]:Integer, [-1,0,0,23]:Integer, [-1,0,0,24]:Integer, [-1,0,0,25]:Integer, [-1,0,0,26]:Integer, [-1,0,0,27]:Integer, [-1,0,0,28]:Integer, [-1,0,0,29]:Integer, [-1,0,0,30]:Integer, [-1,0,0,31]:Integer, [-1,0,0,32]:Integer, [-1,0,0,33]:Integer, [-1,0,0,34]:Integer, [-1,0,0,35]:Integer, [-1,0,0,36]:Integer, [-1,0,0,37]:Integer, [-1,0,0,38]:Integer, [-1,0,0,39]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%11 = addrspacecast {} addrspace(10)* %getfield131 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !69: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,0]:Pointer, [-1,0,0,0,-1]:Integer, [-1,0,0,8]:Integer, [-1,0,0,9]:Integer, [-1,0,0,10]:Integer, [-1,0,0,11]:Integer, [-1,0,0,12]:Integer, [-1,0,0,13]:Integer, [-1,0,0,14]:Integer, [-1,0,0,15]:Integer, [-1,0,0,16]:Integer, [-1,0,0,17]:Integer, [-1,0,0,18]:Integer, [-1,0,0,19]:Integer, [-1,0,0,20]:Integer, [-1,0,0,21]:Integer, [-1,0,0,22]:Integer, [-1,0,0,23]:Integer, [-1,0,0,24]:Integer, [-1,0,0,25]:Integer, [-1,0,0,26]:Integer, [-1,0,0,27]:Integer, [-1,0,0,28]:Integer, [-1,0,0,29]:Integer, [-1,0,0,30]:Integer, [-1,0,0,31]:Integer, [-1,0,0,32]:Integer, [-1,0,0,33]:Integer, [-1,0,0,34]:Integer, [-1,0,0,35]:Integer, [-1,0,0,36]:Integer, [-1,0,0,37]:Integer, [-1,0,0,38]:Integer, [-1,0,0,39]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%42 = phi {} addrspace(10)* [ %unionbox177, %box_union175 ], [ %45, %box_union178 ], [ null, %L448 ], !dbg !174: {}, intvals: {0,}
%43 = call noalias nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @jl_f_tuple, {} addrspace(10)* null, {} addrspace(10)* %42, {} addrspace(10)* nonnull %12) #33, !dbg !174: {[-1]:Pointer, [-1,-1]:Pointer}, intvals: {}
%unionbox177 = call noalias nonnull dereferenceable(8) {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task1, i64 8, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 5414521040 to {}*) to {} addrspace(10)*)) #34, !dbg !174: {[-1,-1]:Float@double}, intvals: {}
%23 = extractvalue { {} addrspace(10)*, i8 } %22, 0, !dbg !142: {[-1]:Pointer}, intvals: {}
%24 = extractvalue { {} addrspace(10)*, i8 } %22, 1, !dbg !142: {[-1]:Integer}, intvals: {}
%25 = addrspacecast {} addrspace(10)* %23 to {} addrspace(11)*, !dbg !142: {[-1]:Pointer}, intvals: {}
%26 = icmp slt i8 %24, 0, !dbg !142: {[-1]:Integer}, intvals: {}
%27 = select i1 %26, {} addrspace(11)* %25, {} addrspace(11)* %21, !dbg !142: {[-1]:Pointer}, intvals: {}
%28 = bitcast i64 %unbox197 to double, !dbg !145: {[-1]:Float@double}, intvals: {0,}
%29 = bitcast {} addrspace(11)* %27 to double addrspace(11)*, !dbg !146: {[-1]:Pointer}, intvals: {}
double 0.000000e+00: {[-1]:Anything}, intvals: {}
{}* inttoptr (i64 5342034176 to {}*): {[-1]:Anything}, intvals: {}
{} addrspace(10)* addrspacecast ({}* inttoptr (i64 5342034176 to {}*) to {} addrspace(10)*): {[-1]:Anything}, intvals: {}
{}* inttoptr (i64 5414521040 to {}*): {[-1]:Anything}, intvals: {}
{} addrspace(10)* addrspacecast ({}* inttoptr (i64 5414521040 to {}*) to {} addrspace(10)*): {[-1]:Anything}, intvals: {}
{}* inttoptr (i64 5195935248 to {}*): {[-1]:Anything}, intvals: {}
{} addrspace(10)* addrspacecast ({}* inttoptr (i64 5195935248 to {}*) to {} addrspace(10)*): {[-1]:Anything}, intvals: {}
{} addrspace(10)* null: {[-1]:Pointer, [-1,-1]:Anything}, intvals: {0,}
i64 0: {[-1]:Anything}, intvals: {0,}
i64 8: {[-1]:Integer}, intvals: {8,}
i64 1: {[-1]:Integer}, intvals: {1,}
</analysis>
Illegal updateAnalysis prev:{[-1,-1]:Float@double} new: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}
val: %44 = bitcast {} addrspace(10)* %unionbox177 to i64 addrspace(10)*, !dbg !174 origin= store i64 %unbox197, i64 addrspace(10)* %44, align 8, !dbg !174, !tbaa !176
MethodInstance for GraphsFlows.var"#maximum_flow#1"(::DinicAlgorithm, ::Int64, ::typeof(maximum_flow), ::SimpleDiGraph{Int64}, ::Int64, ::Int64, ::Matrix{Float64})
Caused by:
Stacktrace:
[1] dinic_impl
@ ~/.julia/packages/GraphsFlows/bSpFT/src/dinic.jl:27
[2] dinic_impl
@ ~/.julia/packages/SimpleTraits/l1ZsK/src/SimpleTraits.jl:331
[3] maximum_flow
@ ~/.julia/packages/GraphsFlows/bSpFT/src/maximum_flow.jl:93
[4] maximum_flow
@ ~/.julia/packages/SimpleTraits/l1ZsK/src/SimpleTraits.jl:331
[5] #maximum_flow#1
@ ~/.julia/packages/GraphsFlows/bSpFT/src/maximum_flow.jl:179
Stacktrace:
[1] julia_error(cstr::Cstring, val::Ptr{LLVM.API.LLVMOpaqueValue}, errtype::Enzyme.API.ErrorType, data::Ptr{Nothing}, data2::Ptr{LLVM.API.LLVMOpaqueValue}, B::Ptr{LLVM.API.LLVMOpaqueBuilder})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:1692
[2] EnzymeCreateForwardDiff(logic::Enzyme.Logic, todiff::LLVM.Function, retType::Enzyme.API.CDIFFE_TYPE, constant_args::Vector{Enzyme.API.CDIFFE_TYPE}, TA::Enzyme.TypeAnalysis, returnValue::Bool, mode::Enzyme.API.CDerivativeMode, width::Int64, additionalArg::Ptr{Nothing}, typeInfo::Enzyme.FnTypeInfo, uncacheable_args::Vector{Bool})
@ Enzyme.API ~/.julia/packages/Enzyme/srACB/src/api.jl:168
[3] enzyme!(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, mod::LLVM.Module, primalf::LLVM.Function, TT::Type, mode::Enzyme.API.CDerivativeMode, width::Int64, parallel::Bool, actualRetType::Type, wrap::Bool, modifiedBetween::NTuple{7, Bool}, returnPrimal::Bool, expectedTapeType::Type, loweredArgs::Set{Int64}, boxedArgs::Set{Int64})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:3193
[4] codegen(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, toplevel::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5074
[5] codegen
@ ~/.julia/packages/Enzyme/srACB/src/compiler.jl:4481 [inlined]
[6] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, postopt::Bool) (repeats 2 times)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5771
[7] cached_compilation
@ ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5809 [inlined]
[8] (::Enzyme.Compiler.var"#560#561"{DataType, DataType, DataType, Enzyme.API.CDerivativeMode, NTuple{7, Bool}, Int64, Bool, Bool, UInt64, DataType})(ctx::LLVM.Context)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5875
[9] JuliaContext(f::Enzyme.Compiler.var"#560#561"{DataType, DataType, DataType, Enzyme.API.CDerivativeMode, NTuple{7, Bool}, Int64, Bool, Bool, UInt64, DataType}; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/packages/GPUCompiler/kqxyC/src/driver.jl:52
[10] JuliaContext(f::Function)
@ GPUCompiler ~/.julia/packages/GPUCompiler/kqxyC/src/driver.jl:42
[11] #s2027#559
@ ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5827 [inlined]
[12] var"#s2027#559"(FA::Any, A::Any, TT::Any, Mode::Any, ModifiedBetween::Any, width::Any, ReturnPrimal::Any, ShadowInit::Any, World::Any, ABI::Any, ::Any, ::Type, ::Type, ::Type, tt::Any, ::Type, ::Type, ::Type, ::Type, ::Type, ::Any)
@ Enzyme.Compiler ./none:0
[13] (::Core.GeneratedFunctionStub)(::UInt64, ::LineNumberNode, ::Any, ::Vararg{Any})
@ Core ./boot.jl:602
[14] macro expansion
@ ~/.julia/packages/Enzyme/srACB/src/rules/jitrules.jl:114 [inlined]
[15] runtime_generic_fwd(::Type{Val{(false, false, false, false, false, false, true)}}, ::Val{64}, ::Val{@NamedTuple{1, 2, 3, 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, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65}}, ::typeof(Core.kwcall), ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::@NamedTuple{algorithm::DinicAlgorithm}, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::typeof(maximum_flow), ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::SimpleDiGraph{Int64}, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Int64, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Int64, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/rules/jitrules.jl:144
[16] foo
@ ./REPL[10]:1 [inlined]
[17] fwddiffe64julia_foo_3336wrap
@ ./REPL[10]:0
[18] macro expansion
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5719 [inlined]
[19] enzyme_call
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5385 [inlined]
[20] ForwardModeThunk
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5267 [inlined]
[21] autodiff(::ForwardMode{FFIABI}, f::Const{typeof(foo)}, ::Type{BatchDuplicatedNoNeed}, args::BatchDuplicated{Matrix{Float64}, 64})
@ Enzyme ~/.julia/packages/Enzyme/srACB/src/Enzyme.jl:399
[22] autodiff
@ ~/.julia/packages/Enzyme/srACB/src/Enzyme.jl:303 [inlined]
[23] gradient(::ForwardMode{FFIABI}, f::Function, x::Matrix{Float64}; shadow::NTuple{64, Matrix{Float64}})
@ Enzyme ~/.julia/packages/Enzyme/srACB/src/Enzyme.jl:1040
[24] gradient(::ForwardMode{FFIABI}, f::Function, x::Matrix{Float64})
@ Enzyme ~/.julia/packages/Enzyme/srACB/src/Enzyme.jl:1036
[25] top-level scope
@ REPL[12]:1
[26] eval
@ ./boot.jl:385 [inlined]
[27] eval
@ ./Base.jl:88 [inlined]
[28] repleval(m::Module, code::Expr, ::String)
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:229
[29] (::VSCodeServer.var"#112#114"{Module, Expr, REPL.LineEditREPL, REPL.LineEdit.Prompt})()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:192
[30] with_logstate(f::Function, logstate::Any)
@ Base.CoreLogging ./logging.jl:515
[31] with_logger
@ ./logging.jl:627 [inlined]
[32] (::VSCodeServer.var"#111#113"{Module, Expr, REPL.LineEditREPL, REPL.LineEdit.Prompt})()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:193
[33] #invokelatest#2
@ Base ./essentials.jl:887 [inlined]
[34] invokelatest(::Any)
@ Base ./essentials.jl:884
[35] (::VSCodeServer.var"#64#65")()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:34
julia>
Ah there's a type unstable union on the inside of the code.
What happens if you try https://enzyme.mit.edu/julia/stable/api/#Enzyme.API.strictAliasing!-Tuple{Any}
using Enzyme
using Graphs, GraphsFlows
# Graph from GraphsFlows.jl demo
flow_graph = Graphs.DiGraph(8) # Create a flow graph
flow_edges = [
(1,2,10),(1,3,5),(1,4,15),(2,3,4),(2,5,9),
(2,6,15),(3,4,4),(3,6,8),(4,7,16),(5,6,15),
(5,8,10),(6,7,15),(6,8,10),(7,3,6),(7,8,10)
]
capacity_matrix = zeros(8, 8) # Create a capacity matrix
for e in flow_edges
u, v, f = e
Graphs.add_edge!(flow_graph, u, v)
capacity_matrix[u,v] = f
end
# Some arbitrary function which depends on the max-flow results
foo(capacity_matrix) = maximum_flow(flow_graph, 1, 8, capacity_matrix, algorithm=DinicAlgorithm())[2][1, 2] # Run Dinic's algorithm
foo(capacity_matrix) # 10.0
Enzyme.API.strictAliasing!(false)
gradient(Forward, foo, capacity_matrix)
It still errors:
julia> show(err)
1-element ExceptionStack:
LoadError: Enzyme execution failed.
Mismatched activity for: %unbox197 = phi i64 [ 0, %L385 ], [ %unionalloca166.sroa.0.0.copyload226, %post_union_move209 ], !dbg !140 const val: i64 0
Type tree: {}
You may be using a constant variable as temporary storage for active memory (https://enzyme.mit.edu/julia/stable/faq/#Activity-of-temporary-storage). If not, please open an issue, and either rewrite this variable to not be conditionally active or use Enzyme.API.runtimeActivity!(true) as a workaround for now
Stacktrace:
[1] iterate
@ ./range.jl:901
[2] fill!
@ ./array.jl:396
[3] zeros
@ ./array.jl:637
[4] zeros
@ ./array.jl:632
[5] dinic_impl
@ ~/.julia/packages/GraphsFlows/bSpFT/src/dinic.jl:18
[6] dinic_impl
@ ~/.julia/packages/SimpleTraits/l1ZsK/src/SimpleTraits.jl:331
[7] maximum_flow
@ ~/.julia/packages/GraphsFlows/bSpFT/src/maximum_flow.jl:93
[8] maximum_flow
@ ~/.julia/packages/SimpleTraits/l1ZsK/src/SimpleTraits.jl:331
[9] #maximum_flow#1
@ ~/.julia/packages/GraphsFlows/bSpFT/src/maximum_flow.jl:179
Stacktrace:
[1] throwerr(cstr::Cstring)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:1325
[2] iterate
@ ./range.jl:901 [inlined]
[3] fill!
@ ./array.jl:396 [inlined]
[4] zeros
@ ./array.jl:637 [inlined]
[5] zeros
@ ./array.jl:632 [inlined]
[6] dinic_impl
@ ~/.julia/packages/GraphsFlows/bSpFT/src/dinic.jl:18 [inlined]
[7] dinic_impl
@ ~/.julia/packages/SimpleTraits/l1ZsK/src/SimpleTraits.jl:331 [inlined]
[8] maximum_flow
@ ~/.julia/packages/GraphsFlows/bSpFT/src/maximum_flow.jl:93 [inlined]
[9] maximum_flow
@ ~/.julia/packages/SimpleTraits/l1ZsK/src/SimpleTraits.jl:331 [inlined]
[10] #maximum_flow#1
@ ~/.julia/packages/GraphsFlows/bSpFT/src/maximum_flow.jl:179
[11] maximum_flow
@ ~/.julia/packages/GraphsFlows/bSpFT/src/maximum_flow.jl:166 [inlined]
[12] fwddiffe64julia_maximum_flow_3559wrap
@ ~/.julia/packages/GraphsFlows/bSpFT/src/maximum_flow.jl:0
[13] macro expansion
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5719 [inlined]
[14] enzyme_call(::Val{false}, ::Ptr{Nothing}, ::Type{Enzyme.Compiler.ForwardModeThunk{Ptr{Nothing}, Const{typeof(Core.kwcall)}, BatchDuplicated{Tuple{Union{Float64, Int64}, Matrix{Float64}}, 64}, Tuple{Const{@NamedTuple{algorithm::DinicAlgorithm}}, Const{typeof(maximum_flow)}, Const{SimpleDiGraph{Int64}}, Const{Int64}, Const{Int64}, BatchDuplicated{Matrix{Float64}, 64}}, 64, true}}, ::Val{64}, ::Val{true}, ::Type{Tuple{Const{@NamedTuple{algorithm::DinicAlgorithm}}, Const{typeof(maximum_flow)}, Const{SimpleDiGraph{Int64}}, Const{Int64}, Const{Int64}, BatchDuplicated{Matrix{Float64}, 64}}}, ::Type{BatchDuplicated{Tuple{Union{Float64, Int64}, Matrix{Float64}}, 64}}, ::Const{typeof(Core.kwcall)}, ::Type{Nothing}, ::Const{@NamedTuple{algorithm::DinicAlgorithm}}, ::Const{typeof(maximum_flow)}, ::Const{SimpleDiGraph{Int64}}, ::Const{Int64}, ::Const{Int64}, ::BatchDuplicated{Matrix{Float64}, 64})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5385
[15] (::Enzyme.Compiler.ForwardModeThunk{Ptr{Nothing}, Const{typeof(Core.kwcall)}, BatchDuplicated{Tuple{Union{Float64, Int64}, Matrix{Float64}}, 64}, Tuple{Const{@NamedTuple{algorithm::DinicAlgorithm}}, Const{typeof(maximum_flow)}, Const{SimpleDiGraph{Int64}}, Const{Int64}, Const{Int64}, BatchDuplicated{Matrix{Float64}, 64}}, 64, true})(::Const{typeof(Core.kwcall)}, ::Const{@NamedTuple{algorithm::DinicAlgorithm}}, ::Vararg{Any})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5267
[16] macro expansion
@ ~/.julia/packages/Enzyme/srACB/src/rules/jitrules.jl:116 [inlined]
[17] runtime_generic_fwd(::Type{Val{(false, false, false, false, false, false, true)}}, ::Val{64}, ::Val{@NamedTuple{1, 2, 3, 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, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65}}, ::typeof(Core.kwcall), ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::@NamedTuple{algorithm::DinicAlgorithm}, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::typeof(maximum_flow), ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::SimpleDiGraph{Int64}, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Int64, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Int64, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/rules/jitrules.jl:144
[18] foo
@ ~/Documents/GitHub/foo/test_costs.jl:55 [inlined]
[19] fwddiffe64julia_foo_2274wrap
@ ~/Documents/GitHub/foo/test_costs.jl:0
[20] macro expansion
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5719 [inlined]
[21] enzyme_call
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5385 [inlined]
[22] ForwardModeThunk
@ Enzyme.Compiler ~/.julia/packages/Enzyme/srACB/src/compiler.jl:5267 [inlined]
[23] autodiff(::ForwardMode{FFIABI}, f::Const{typeof(foo)}, ::Type{BatchDuplicatedNoNeed}, args::BatchDuplicated{Matrix{Float64}, 64})
@ Enzyme ~/.julia/packages/Enzyme/srACB/src/Enzyme.jl:399
[24] autodiff
@ ~/.julia/packages/Enzyme/srACB/src/Enzyme.jl:303 [inlined]
[25] gradient(::ForwardMode{FFIABI}, f::Function, x::Matrix{Float64}; shadow::NTuple{64, Matrix{Float64}})
@ Enzyme ~/.julia/packages/Enzyme/srACB/src/Enzyme.jl:1040
[26] gradient(::ForwardMode{FFIABI}, f::Function, x::Matrix{Float64})
@ Enzyme ~/.julia/packages/Enzyme/srACB/src/Enzyme.jl:1036
[27] top-level scope
@ ~/Documents/GitHub/foo/test_costs.jl:59
[28] eval
@ ./boot.jl:385 [inlined]
[29] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
@ Base ./loading.jl:2070
[30] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
@ Base ./essentials.jl:887
[31] invokelatest(::Any, ::Any, ::Vararg{Any})
@ Base ./essentials.jl:884
[32] inlineeval(m::Module, code::String, code_line::Int64, code_column::Int64, file::String; softscope::Bool)
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:271
[33] (::VSCodeServer.var"#69#74"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:181
[34] withpath(f::VSCodeServer.var"#69#74"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams}, path::String)
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:276
[35] (::VSCodeServer.var"#68#73"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:179
[36] hideprompt(f::VSCodeServer.var"#68#73"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:38
[37] (::VSCodeServer.var"#67#72"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:150
[38] with_logstate(f::Function, logstate::Any)
@ Base.CoreLogging ./logging.jl:515
[39] with_logger
@ ./logging.jl:627 [inlined]
[40] (::VSCodeServer.var"#66#71"{VSCodeServer.ReplRunCodeRequestParams})()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:263
[41] #invokelatest#2
@ Base ./essentials.jl:887 [inlined]
[42] invokelatest(::Any)
@ Base ./essentials.jl:884
[43] (::VSCodeServer.var"#64#65")()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:34
in expression starting at /Users/johannes/Documents/GitHub/foo/test_costs.jl:59
This latter error should now be fixed on main, please reopen if it persists.