No idea what a crash report means

Hello all, I am using Flux, DiffEqFlux and DifferentialEquations to train a custom model involving neural ODEs.

I recently moved from Julia 1.6.3 to Julia 1.7.1. In 1.6.3 used to train a relatively simpler version of the model but upon moving to 1.7.1 built a more complex one. However, upon moving to 1.7.1 I can’t train either version of my model and I am trying to understand why/how to fix it. It’s difficult to provide a MWE of my code and I don’t yet understand the cause of failure of my code. So, for starters, I would greatly appreciate if anyone could help me decode what the (quite huge, only a part of it fit below) crash report below means and what does it point to (if anything). The code crashes when I call Flux.train!(...) Many thanks!

!4036 = distinct !DILocation(line: 636, scope: !2890, inlinedAt: !4037)
!4037 = distinct !DILocation(line: 667, scope: !2892, inlinedAt: !4030)
!4038 = !DILocation(line: 405, scope: !3138, inlinedAt: !4039)
!4039 = distinct !DILocation(line: 670, scope: !2904, inlinedAt: !4040)
!4040 = distinct !DILocation(line: 643, scope: !2890, inlinedAt: !4032)
!4041 = !DILocation(line: 903, scope: !2715, inlinedAt: !4033)
!4042 = !DILocation(line: 87, scope: !2921, inlinedAt: !4043)
!4043 = distinct !DILocation(line: 78, scope: !2872, inlinedAt: !4025)
!4044 = !DILocation(line: 83, scope: !2768, inlinedAt: !4045)
!4045 = distinct !DILocation(line: 75, scope: !2872, inlinedAt: !4025)
!4046 = distinct !{!4046}
!4047 = !DILocation(line: 1588, scope: !3667, inlinedAt: !3676)
!4048 = !DILocation(line: 83, scope: !2768, inlinedAt: !4049)
!4049 = distinct !DILocation(line: 378, scope: !2770, inlinedAt: !4050)
!4050 = distinct !DILocation(line: 609, scope: !2772, inlinedAt: !4051)
!4051 = distinct !DILocation(line: 720, scope: !2690, inlinedAt: !4052)
!4052 = distinct !DILocation(line: 641, scope: !2672, inlinedAt: !4053)
!4053 = distinct !DILocation(line: 656, scope: !2672, inlinedAt: !4054)
!4054 = distinct !DILocation(line: 926, scope: !2715, inlinedAt: !3865)
!4055 = !DILocation(line: 477, scope: !2688, inlinedAt: !4056)
!4056 = distinct !DILocation(line: 715, scope: !2690, inlinedAt: !4051)
!4057 = !DILocation(line: 38, scope: !2777, inlinedAt: !4056)
!4058 = !DILocation(line: 38, scope: !2777, inlinedAt: !4051)
!4059 = !DILocation(line: 39, scope: !2780, inlinedAt: !4051)
!4060 = !DILocation(line: 656, scope: !2672, inlinedAt: !4054)
!4061 = !DILocation(line: 221, scope: !2946, inlinedAt: !3953)
!4062 = !DILocation(line: 87, scope: !2921, inlinedAt: !4063)
!4063 = distinct !DILocation(line: 700, scope: !2990, inlinedAt: !4064)
!4064 = distinct !DILocation(line: 927, scope: !2715, inlinedAt: !3865)
!4065 = !DILocation(line: 215, scope: !2727, inlinedAt: !4066)
!4066 = distinct !DILocation(line: 245, scope: !2729, inlinedAt: !4067)
!4067 = distinct !DILocation(line: 928, scope: !2715, inlinedAt: !3865)
!4068 = !DILocation(line: 468, scope: !2732, inlinedAt: !4066)
!4069 = !DILocation(line: 245, scope: !2729, inlinedAt: !4067)
!4070 = !DILocation(line: 929, scope: !2715, inlinedAt: !3865)
!4071 = !DILocation(line: 281, scope: !2735, inlinedAt: !4072)
!4072 = distinct !DILocation(line: 930, scope: !2715, inlinedAt: !3865)
!4073 = !DILocation(line: 282, scope: !2735, inlinedAt: !4072)
!4074 = !DILocation(line: 88, scope: !2983, inlinedAt: !4075)
!4075 = distinct !DILocation(line: 289, scope: !2735, inlinedAt: !4072)
!4076 = !DILocation(line: 616, scope: !3178, inlinedAt: !4077)
!4077 = distinct !DILocation(line: 626, scope: !3180, inlinedAt: !4078)
!4078 = distinct !DILocation(line: 737, scope: !3182, inlinedAt: !4079)
!4079 = distinct !DILocation(line: 767, scope: !3184, inlinedAt: !4080)
!4080 = distinct !DILocation(line: 7, scope: !3186, inlinedAt: !4081)
!4081 = distinct !DILocation(line: 417, scope: !3188, inlinedAt: !4075)
!4082 = !DILocation(line: 626, scope: !3180, inlinedAt: !4078)
!4083 = !DILocation(line: 65, scope: !2739, inlinedAt: !4084)
!4084 = distinct !DILocation(line: 1167, scope: !2741, inlinedAt: !4085)
!4085 = distinct !DILocation(line: 284, scope: !2735, inlinedAt: !4072)
!4086 = !DILocation(line: 159, scope: !2744, inlinedAt: !4084)
!4087 = !DILocation(line: 65, scope: !2739, inlinedAt: !4088)
!4088 = distinct !DILocation(line: 1167, scope: !2741, inlinedAt: !4089)
!4089 = distinct !DILocation(line: 283, scope: !2735, inlinedAt: !4072)
!4090 = !DILocation(line: 159, scope: !2744, inlinedAt: !4088)
!4091 = !DILocation(line: 289, scope: !2735, inlinedAt: !4072)
!4092 = !DILocation(line: 302, scope: !2735, inlinedAt: !4072)
!4093 = !DILocation(line: 303, scope: !2735, inlinedAt: !4072)
!4094 = !DILocation(line: 304, scope: !2735, inlinedAt: !4072)
!4095 = !DILocation(line: 861, scope: !2674, inlinedAt: !4096)
!4096 = distinct !DILocation(line: 1590, scope: !3667, inlinedAt: !3676)
!4097 = !DILocation(line: 56, scope: !3205, inlinedAt: !4096)
!4098 = !DILocation(line: 903, scope: !2715, inlinedAt: !4096)
!4099 = !DILocation(line: 399, scope: !2912, inlinedAt: !4096)
!4100 = !DILocation(line: 861, scope: !2674, inlinedAt: !4101)
!4101 = distinct !DILocation(line: 1591, scope: !3667, inlinedAt: !3676)
!4102 = !DILocation(line: 151, scope: !2678, inlinedAt: !4103)
!4103 = distinct !DILocation(line: 95, scope: !2680, inlinedAt: !4104)
!4104 = distinct !DILocation(line: 116, scope: !2682, inlinedAt: !4105)
!4105 = distinct !DILocation(line: 335, scope: !2684, inlinedAt: !4106)
!4106 = distinct !DILocation(line: 372, scope: !2709, inlinedAt: !4101)
!4107 = !DILocation(line: 399, scope: !2912, inlinedAt: !4101)
!4108 = !DILocation(line: 405, scope: !3138, inlinedAt: !4101)
!4109 = !DILocation(line: 402, scope: !3219, inlinedAt: !4101)
!4110 = !DILocation(line: 903, scope: !2715, inlinedAt: !4101)
!4111 = !DILocation(line: 1591, scope: !3667, inlinedAt: !3676)

define internal fastcc double @julia_gauss_input_12722(double %0, {} addrspace(10)* nonnull align 16 dereferenceable(40) %1) unnamed_addr #4 !dbg !2262 {
top:
  %2 = alloca { { double, {} addrspace(10)* }, [2 x i64] }, align 8
  %3 = call {}*** @julia.get_pgcstack()
  %4 = bitcast {} addrspace(10)* %1 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !2263
  %5 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %4 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !2263
  %6 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !2263
  %7 = load i64, i64 addrspace(11)* %6, align 8, !dbg !2263, !tbaa !94, !range !99
  %.not = icmp eq i64 %7, 0, !dbg !2263
  br i1 %.not, label %oob, label %idxend, !dbg !2263

L19:                                              ; preds = %pass
  %8 = bitcast {} addrspace(10)* %35 to double addrspace(13)* addrspace(10)*, !dbg !2266
  %9 = addrspacecast double addrspace(13)* addrspace(10)* %8 to double addrspace(13)* addrspace(11)*, !dbg !2266
  %10 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %9, align 8, !dbg !2266, !tbaa !535, !nonnull !4
  %11 = load double, double addrspace(13)* %10, align 8, !dbg !2266, !tbaa !546
  br label %L51, !dbg !2287

L21:                                              ; preds = %pass
  %12 = icmp ugt i64 %40, 15, !dbg !2288
  br i1 %12, label %L37, label %L23, !dbg !2290

L23:                                              ; preds = %L21
  %13 = bitcast {} addrspace(10)* %35 to double addrspace(13)* addrspace(10)*, !dbg !2291
  %14 = addrspacecast double addrspace(13)* addrspace(10)* %13 to double addrspace(13)* addrspace(11)*, !dbg !2291
  %15 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %14, align 8, !dbg !2291, !tbaa !535, !nonnull !4
  %16 = load double, double addrspace(13)* %15, align 8, !dbg !2291, !tbaa !546
  %17 = getelementptr inbounds double, double addrspace(13)* %15, i64 1, !dbg !2293
  %18 = load double, double addrspace(13)* %17, align 8, !dbg !2293, !tbaa !546
  %19 = fadd double %16, %18, !dbg !2295
  %.not89 = icmp ugt i64 %40, 2, !dbg !2300
  br i1 %.not89, label %L32, label %L51, !dbg !2301

L32:                                              ; preds = %L23, %L32
  %value_phi211 = phi i64 [ %20, %L32 ], [ 2, %L23 ]
  %value_phi110 = phi double [ %23, %L32 ], [ %19, %L23 ]
  %20 = add nuw nsw i64 %value_phi211, 1, !dbg !2302
  %21 = getelementptr inbounds double, double addrspace(13)* %15, i64 %value_phi211, !dbg !2305
  %22 = load double, double addrspace(13)* %21, align 8, !dbg !2305, !tbaa !546
  %23 = fadd double %value_phi110, %22, !dbg !2306
  %exitcond.not = icmp eq i64 %20, %40, !dbg !2300
  br i1 %exitcond.not, label %L51, label %L32, !dbg !2301

L37:                                              ; preds = %L21
  %24 = call fastcc double @julia_mapreduce_impl_12726({} addrspace(10)* %35, i64 signext 1, i64 signext %40, i64 signext 1024) #4, !dbg !2309
  br label %L51, !dbg !2311

L51:                                              ; preds = %L32, %L23, %pass, %L19, %L37
  %value_phi = phi double [ %11, %L19 ], [ %24, %L37 ], [ 0.000000e+00, %pass ], [ %19, %L23 ], [ %23, %L32 ]
  ret double %value_phi, !dbg !2265

oob:                                              ; preds = %top
  call fastcc void @gpu_report_exception(), !dbg !2263
  call fastcc void @gpu_signal_exception(), !dbg !2263
  call void @llvm.trap(), !dbg !2263
  unreachable, !dbg !2263

idxend:                                           ; preds = %top
  %25 = bitcast {} addrspace(10)* %1 to {} addrspace(10)* addrspace(13)* addrspace(10)*, !dbg !2263
  %26 = addrspacecast {} addrspace(10)* addrspace(13)* addrspace(10)* %25 to {} addrspace(10)* addrspace(13)* addrspace(11)*, !dbg !2263
  %27 = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %26, align 8, !dbg !2263, !tbaa !535, !nonnull !4
  %28 = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %27, align 8, !dbg !2263, !tbaa !2188
  %.not4 = icmp eq {} addrspace(10)* %28, null, !dbg !2263
  br i1 %.not4, label %fail, label %pass, !dbg !2263

fail:                                             ; preds = %idxend
  call fastcc void @gpu_report_exception(), !dbg !2263
  call fastcc void @gpu_signal_exception(), !dbg !2263
  call void @llvm.trap(), !dbg !2263
  unreachable, !dbg !2263

pass:                                             ; preds = %idxend
  %29 = bitcast {} addrspace(10)* %28 to {} addrspace(10)* addrspace(10)*, !dbg !2312
  %30 = addrspacecast {} addrspace(10)* addrspace(10)* %29 to {} addrspace(10)* addrspace(11)*, !dbg !2312
  %31 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %30, i64 3, !dbg !2312
  %32 = bitcast {} addrspace(10)* addrspace(11)* %31 to i64 addrspace(11)*, !dbg !2312
  %33 = load i64, i64 addrspace(11)* %32, align 8, !dbg !2312, !tbaa !459, !range !99
  %.fca.0.0.gep = getelementptr inbounds { { double, {} addrspace(10)* }, [2 x i64] }, { { double, {} addrspace(10)* }, [2 x i64] }* %2, i64 0, i32 0, i32 0, !dbg !2265
  store double %0, double* %.fca.0.0.gep, align 8, !dbg !2265
  %.fca.0.1.gep = getelementptr inbounds { { double, {} addrspace(10)* }, [2 x i64] }, { { double, {} addrspace(10)* }, [2 x i64] }* %2, i64 0, i32 0, i32 1, !dbg !2265
  store {} addrspace(10)* %1, {} addrspace(10)** %.fca.0.1.gep, align 8, !dbg !2265
  %.fca.1.0.gep = getelementptr inbounds { { double, {} addrspace(10)* }, [2 x i64] }, { { double, {} addrspace(10)* }, [2 x i64] }* %2, i64 0, i32 1, i64 0, !dbg !2265
  store i64 1, i64* %.fca.1.0.gep, align 8, !dbg !2265
  %.fca.1.1.gep = getelementptr inbounds { { double, {} addrspace(10)* }, [2 x i64] }, { { double, {} addrspace(10)* }, [2 x i64] }* %2, i64 0, i32 1, i64 1, !dbg !2265
  store i64 %33, i64* %.fca.1.1.gep, align 8, !dbg !2265
  %34 = addrspacecast { { double, {} addrspace(10)* }, [2 x i64] }* %2 to { { double, {} addrspace(10)* }, [2 x i64] } addrspace(11)*, !dbg !2265
  %35 = call fastcc nonnull {} addrspace(10)* @julia_collect_12731({ { double, {} addrspace(10)* }, [2 x i64] } addrspace(11)* nocapture readonly %34) #4, !dbg !2265
  %36 = bitcast {} addrspace(10)* %35 to {} addrspace(10)* addrspace(10)*, !dbg !2314
  %37 = addrspacecast {} addrspace(10)* addrspace(10)* %36 to {} addrspace(10)* addrspace(11)*, !dbg !2314
  %38 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %37, i64 3, !dbg !2314
  %39 = bitcast {} addrspace(10)* addrspace(11)* %38 to i64 addrspace(11)*, !dbg !2314
  %40 = load i64, i64 addrspace(11)* %39, align 8, !dbg !2314, !tbaa !459, !range !99
  switch i64 %40, label %L21 [
    i64 0, label %L51
    i64 1, label %L19
  ], !dbg !2320
}

<analysis>
i64 0: {[-1]:Anything}, intvals: {0,}
i64 1: {[-1]:Integer}, intvals: {1,}
{} addrspace(10)* null: {[-1]:Pointer, [-1,-1]:Anything}, intvals: {0,}
i64 15: {[-1]:Integer}, intvals: {15,}
i64 2: {[-1]:Integer}, intvals: {2,}
double 0.000000e+00: {[-1]:Anything}, intvals: {}
  %27 = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %26, align 8, !dbg !91, !tbaa !121, !nonnull !4: {[-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, [-1,40]:Integer}, intvals: {}
  %9 = addrspacecast double addrspace(13)* addrspace(10)* %8 to double addrspace(13)* addrspace(11)*, !dbg !100: {[-1]:Pointer, [-1,0]:Pointer}, intvals: {}
  %2 = alloca { { double, {} addrspace(10)* }, [2 x i64] }, align 8: {[-1]:Pointer}, intvals: {}
  %5 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %4 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !91: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-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,0,40]: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, [-1,40]:Integer}, intvals: {}
  %20 = add nuw nsw i64 %value_phi211, 1, !dbg !143: {[-1]:Integer}, intvals: {3,}
double %0: {[-1]:Float@double}, intvals: {}
{} addrspace(10)* %1: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-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,0,40]: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, [-1,40]:Integer}, intvals: {}
  %28 = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %27, align 8, !dbg !91, !tbaa !153: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
  %.not4 = icmp eq {} addrspace(10)* %28, null, !dbg !91: {[-1]:Integer}, intvals: {}
  %25 = bitcast {} addrspace(10)* %1 to {} addrspace(10)* addrspace(13)* addrspace(10)*, !dbg !91: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-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,0,40]: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, [-1,40]:Integer}, intvals: {}
  %10 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %9, align 8, !dbg !100, !tbaa !121, !nonnull !4: {[-1]:Pointer}, intvals: {}
  %4 = bitcast {} addrspace(10)* %1 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !91: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-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,0,40]: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, [-1,40]:Integer}, intvals: {}
  %6 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !91: {[-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: {}
  %7 = load i64, i64 addrspace(11)* %6, align 8, !dbg !91, !tbaa !94, !range !99: {[-1]:Integer}, intvals: {}
  %26 = addrspacecast {} addrspace(10)* addrspace(13)* addrspace(10)* %25 to {} addrspace(10)* addrspace(13)* addrspace(11)*, !dbg !91: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-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,0,40]: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, [-1,40]:Integer}, intvals: {}
  %17 = getelementptr inbounds double, double addrspace(13)* %15, i64 1, !dbg !133: {[-1]:Pointer}, intvals: {}
  %18 = load double, double addrspace(13)* %17, align 8, !dbg !133, !tbaa !123: {[-1]:Float@double}, intvals: {}
  %19 = fadd double %16, %18, !dbg !135: {[-1]:Float@double}, intvals: {}
  %8 = bitcast {} addrspace(10)* %35 to double addrspace(13)* addrspace(10)*, !dbg !100: {[-1]:Pointer, [-1,0]:Pointer}, intvals: {}
  %15 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %14, align 8, !dbg !131, !tbaa !121, !nonnull !4: {[-1]:Pointer}, intvals: {}
  %11 = load double, double addrspace(13)* %10, align 8, !dbg !100, !tbaa !123: {[-1]:Float@double}, intvals: {}
  %12 = icmp ugt i64 %40, 15, !dbg !127: {[-1]:Integer}, intvals: {}
  %14 = addrspacecast double addrspace(13)* addrspace(10)* %13 to double addrspace(13)* addrspace(11)*, !dbg !131: {[-1]:Pointer, [-1,0]:Pointer}, intvals: {}
  %35 = call fastcc nonnull {} addrspace(10)* @julia_collect_12731({ { double, {} addrspace(10)* }, [2 x i64] } addrspace(11)* nocapture readonly %34) #4, !dbg !93: {}, intvals: {}
  %39 = bitcast {} addrspace(10)* addrspace(11)* %38 to i64 addrspace(11)*, !dbg !159: {[-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: {}
  %40 = load i64, i64 addrspace(11)* %39, align 8, !dbg !159, !tbaa !157, !range !99: {[-1]:Integer}, intvals: {}
  %24 = call fastcc double @julia_mapreduce_impl_12726({} addrspace(10)* %35, i64 signext 1, i64 signext %40, i64 signext 1024) #4, !dbg !150: {[-1]:Float@double}, intvals: {}
  %29 = bitcast {} addrspace(10)* %28 to {} addrspace(10)* addrspace(10)*, !dbg !155: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
  %31 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %30, i64 3, !dbg !155: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
  %32 = bitcast {} addrspace(10)* addrspace(11)* %31 to i64 addrspace(11)*, !dbg !155: {[-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: {}
  %33 = load i64, i64 addrspace(11)* %32, align 8, !dbg !155, !tbaa !157, !range !99: {[-1]:Integer}, intvals: {}
  %value_phi = phi double [ %11, %L19 ], [ %24, %L37 ], [ 0.000000e+00, %pass ], [ %19, %L23 ], [ %23, %L32 ]: {[-1]:Float@double}, intvals: {}
  %30 = addrspacecast {} addrspace(10)* addrspace(10)* %29 to {} addrspace(10)* addrspace(11)*, !dbg !155: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
  %13 = bitcast {} addrspace(10)* %35 to double addrspace(13)* addrspace(10)*, !dbg !131: {[-1]:Pointer, [-1,0]:Pointer}, intvals: {}
  %16 = load double, double addrspace(13)* %15, align 8, !dbg !131, !tbaa !123: {[-1]:Float@double}, intvals: {}
  %21 = getelementptr inbounds double, double addrspace(13)* %15, i64 %value_phi211, !dbg !146: {[-1]:Pointer}, intvals: {}
  %22 = load double, double addrspace(13)* %21, align 8, !dbg !146, !tbaa !123: {[-1]:Float@double}, intvals: {}
  %23 = fadd double %value_phi110, %22, !dbg !147: {[-1]:Float@double}, intvals: {}
  %.not = icmp eq i64 %7, 0, !dbg !91: {[-1]:Integer}, intvals: {}
  %.not89 = icmp ugt i64 %40, 2, !dbg !141: {[-1]:Integer}, intvals: {}
  %value_phi211 = phi i64 [ %20, %L32 ], [ 2, %L23 ]: {[-1]:Integer}, intvals: {2,}
  %value_phi110 = phi double [ %23, %L32 ], [ %19, %L23 ]: {[-1]:Float@double}, intvals: {}
  %exitcond.not = icmp eq i64 %20, %40, !dbg !141: {[-1]:Integer}, intvals: {}
</analysis>
Illegal updateAnalysis prev:{[-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} new: {[-1]:Pointer, [-1,-1]:Float@double}
val:   %32 = bitcast {} addrspace(10)* addrspace(11)* %31 to i64 addrspace(11)*, !dbg !155 origin=  %32 = bitcast {} addrspace(10)* addrspace(11)* %31 to i64 addrspace(11)*, !dbg !155
julia: /workspace/srcdir/Enzyme/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp:639: void TypeAnalyzer::updateAnalysis(llvm::Value*, TypeTree, llvm::Value*): Assertion `0 && "Performed illegal updateAnalysis"' failed.

signal (6): Aborted
in expression starting at /disk/scratch/s1788788/NODE_work/CaMKII_system/model_training.jl:209
gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x7f22fe05a728)
__assert_fail at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
updateAnalysis at /workspace/srcdir/Enzyme/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp:639
visitBitCastInst at /workspace/srcdir/Enzyme/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp:1668
run at /workspace/srcdir/Enzyme/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp:1003
analyzeFunction at /workspace/srcdir/Enzyme/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp:4611
visitIPOCall at /workspace/srcdir/Enzyme/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp:4536
visitCallInst at /workspace/srcdir/Enzyme/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp:4118
run at /workspace/srcdir/Enzyme/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp:1009
analyzeFunction at /workspace/srcdir/Enzyme/enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp:4611
CreateAugmentedPrimal at /workspace/srcdir/Enzyme/enzyme/Enzyme/EnzymeLogic.cpp:1786
EnzymeCreateAugmentedPrimal at /workspace/srcdir/Enzyme/enzyme/Enzyme/CApi.cpp:448
EnzymeCreateAugmentedPrimal at /afs/inf.ed.ac.uk/user/s17/s1788788/.julia/packages/Enzyme/8528H/src/api.jl:130
enzyme! at /afs/inf.ed.ac.uk/user/s17/s1788788/.julia/packages/Enzyme/8528H/src/compiler.jl:1720
unknown function (ip: 0x7f21fd64c9b2)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
#codegen#38 at /afs/inf.ed.ac.uk/user/s17/s1788788/.julia/packages/Enzyme/8528H/src/compiler.jl:2282
codegen##kw at /afs/inf.ed.ac.uk/user/s17/s1788788/.julia/packages/Enzyme/8528H/src/compiler.jl:2126 [inlined]
_thunk at /afs/inf.ed.ac.uk/user/s17/s1788788/.julia/packages/Enzyme/8528H/src/compiler.jl:2623
unknown function (ip: 0x7f21fd63a46d)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
cached_compilation at /afs/inf.ed.ac.uk/user/s17/s1788788/.julia/packages/GPUCompiler/1Ajz2/src/cache.jl:90
thunk at /afs/inf.ed.ac.uk/user/s17/s1788788/.julia/packages/Enzyme/8528H/src/compiler.jl:2675
unknown function (ip: 0x7f21fd62cb70)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
runtime_generic_fwd at /afs/inf.ed.ac.uk/user/s17/s1788788/.julia/packages/Enzyme/8528H/src/compiler.jl:295
unknown function (ip: 0x7f21fd62bce8)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
unknown function (ip: 0x7f22a3481555)
unknown function (ip: 0x7f221f4649d1)
Allocations: 331201529 (Pool: 330003470; Big: 1198059); GC: 209
Aborted (core dumped)

Looks like a problem in Enzyme.jl — you could try opening an issue there.

1 Like