Skip to content

Instantly share code, notes, and snippets.

@vtjnash
Last active August 29, 2015 13:57
Show Gist options
  • Save vtjnash/9404221 to your computer and use it in GitHub Desktop.
Save vtjnash/9404221 to your computer and use it in GitHub Desktop.
julia> code_typed(Ito.Time.yearfraction,(Ito.Time.ISMAActualActual,Calendar.CalndarTime,CalendarTime,CalendarTime,CalendarTime))
1-element Array{Any,1}:
:($(Expr(:lambda, {:c,:d_start,:d_end,:ref_start,:ref_end}, {{:newRefEnd,:newRefStart,:#s1133,:ref_period_start,:ref_period_end,:mnths,:period,:previousRef,:i,:sum},{{:c,ISMAActualActual,0},{:d_start,CalendarTime,0},{:d_end,CalendarTime,0},{:ref_start,CalendarTime,0},{:ref_end,CalendarTime,0},{:newRefEnd,Any,18},{:newRefStart,Any,18},{:#s1133,Bool,2},{:ref_period_start,CalendarTime,2},{:ref_period_end,Any,2},{:mnths,Int64,2},{:period,Float64,18},{:previousRef,CalendarTime,18},{:i,Int64,2},{:sum,Any,2}},{}}, :(begin # /Users/jameson/.julia/Ito/src/time/day_count.jl, line 162:
unless top(eq_float)(top(getfield)(d_start::CalendarTime,:millis)::Float64,top(getfield)(d_end::CalendarTime,:millis)::Float64)::Bool goto 0 # line 162:
return 0.0
0: # line 164:
unless top(lt_float)(top(getfield)(d_end::CalendarTime,:millis)::Float64,top(getfield)(d_start::CalendarTime,:millis)::Float64)::Bool goto 1 # line 165:
return -(yearFraction(d_end::CalendarTime,d_start::CalendarTime,ref_start::CalendarTime,ref_end::CalendarTime))
1: # line 168:
ref_period_start = ref_start::CalendarTime # line 169:
ref_period_end = ref_end::CalendarTime # line 171:
unless top(lt_float)(top(getfield)(ref_period_start::CalendarTime,:millis)::Float64,top(getfield)(ref_period_end::CalendarTime,:millis)::Float64)::Bool goto 2
#s1133 = top(lt_float)(top(getfield)(d_start::CalendarTime,:millis)::Float64,top(getfield)(ref_period_end::CalendarTime,:millis)::Float64)::Bool
goto 3
2:
#s1133 = false
3:
unless #s1133::Bool goto 4
goto 5
4:
throw($(Expr(:new, :(top(getfield)(Base,:ErrorException)::Type{ErrorException}), "assertion failed: ref_period_end > ref_period_start && ref_period_end > d_start"))::ErrorException)::None
5: # line 174:
mnths = top(box)(Int64,top(checked_fptosi)(Int64,top(ccall)($(Expr(:call1, :(top(tuple)), :(:floor), :($(Expr(:call1, :(top(getfield)), :Base, :(:libm_name)))::ASCIIString)))::(Symbol,ASCIIString),Float64,(Float64,),top(box)(Float64,top(add_float)(0.5,top(box)(Float64,top(div_float)(top(box)(Float64,top(sitofp)(Float64,top(box)(Int64,top(mul_int)(12,top(box)(Int64,top(fpsiround)(top(box)(Float64,top(div_float)(top(getfield)($(Expr(:new, :(top(getfield)(Calendar,:FixedCalendarDuration)::Type{FixedCalendarDuration}), :(top(box)(Float64,top(sub_float)(top(getfield)(ref_period_end::CalendarTime,:millis)::Float64,top(getfield)(ref_period_start::CalendarTime,:millis)::Float64))::Float64)))::FixedCalendarDuration,:millis)::Float64,8.64e7))::Float64))::Int64))::Int64))::Float64,top(box)(Float64,top(sitofp)(Float64,365))::Float64))::Float64))::Float64,0)::Float64))::Int64 # line 177:
unless mnths::Int64 === 0::Bool goto 6 # line 178:
ref_period_start = d_start::CalendarTime # line 179:
ref_period_end = d_start::CalendarTime + year(1) # line 180:
mnths = 12
6: # line 183:
period = top(box)(Float64,top(div_float)(top(box)(Float64,top(sitofp)(Float64,mnths::Int64))::Float64,12.0))::Float64 # line 185:
unless top(box)(Bool,top(not_int)(ref_period_end < d_end::CalendarTime::Bool))::Bool goto 10 # line 187:
unless top(box)(Bool,top(not_int)(top(lt_float)(top(getfield)(d_start::CalendarTime,:millis)::Float64,top(getfield)(ref_period_start::CalendarTime,:millis)::Float64)::Bool))::Bool goto 7 # line 194:
return top(box)(Float64,top(div_float)(top(box)(Float64,top(mul_float)(period::Float64,top(box)(Float64,top(sitofp)(Float64,top(box)(Int64,top(fpsiround)(top(box)(Float64,top(div_float)(top(getfield)($(Expr(:new, :(top(getfield)(Calendar,:FixedCalendarDuration)::Type{FixedCalendarDuration}), :(top(box)(Float64,top(sub_float)(top(getfield)(d_end::CalendarTime,:millis)::Float64,top(getfield)(d_start::CalendarTime,:millis)::Float64))::Float64)))::FixedCalendarDuration,:millis)::Float64,8.64e7))::Float64))::Int64))::Float64))::Float64,top(box)(Float64,top(sitofp)(Float64,daycount(c::ISMAActualActual,ref_period_start::CalendarTime,ref_period_end)::Int64))::Float64))::Float64
goto 9
7: # line 204:
previousRef = ref_period_start::CalendarTime + $(Expr(:new, :(top(getfield)(Calendar,:CalendarDuration)::Type{CalendarDuration}), 0, :(top(box)(Int64,top(neg_int)(mnths::Int64))::Int64), 0, 0.0))::CalendarDuration::CalendarTime # line 205:
unless top(lt_float)(top(getfield)(ref_period_start::CalendarTime,:millis)::Float64,top(getfield)(d_end::CalendarTime,:millis)::Float64)::Bool goto 8 # line 206:
return yearfraction(c::ISMAActualActual,d_start::CalendarTime,ref_period_start::CalendarTime,previousRef::CalendarTime,ref_period_start::CalendarTime) + yearfraction(c::ISMAActualActual,ref_period_start::CalendarTime,d_end::CalendarTime,ref_period_start::CalendarTime,ref_period_end)
goto 9
8: # line 208:
return yearfraction(d_start::CalendarTime,d_end::CalendarTime,previousRef::CalendarTime,ref_period_start::CalendarTime)
9:
goto 19
10: # line 214:
unless top(box)(Bool,top(not_int)(top(lt_float)(top(getfield)(d_start::CalendarTime,:millis)::Float64,top(getfield)(ref_period_start::CalendarTime,:millis)::Float64)::Bool))::Bool goto 11
goto 12
11:
throw($(Expr(:new, :(top(getfield)(Base,:ErrorException)::Type{ErrorException}), "assertion failed: ref_period_start <= d_start"))::ErrorException)::None
12: # line 218:
sum = yearfraction(c::ISMAActualActual,d_start::CalendarTime,ref_period_end,ref_period_start::CalendarTime,ref_period_end) # line 223:
i = 0 # line 224: # line 225:
14:
unless true goto 15 # line 226:
newRefStart = ref_period_end + months(months * i::Int64) # line 227:
newRefEnd = ref_period_end + months(months * top(box)(Int64,top(add_int)(i::Int64,1))::Int64) # line 228:
unless d_end::CalendarTime < newRefEnd::Bool goto 17 # line 229:
goto 13
goto 18
17: # line 231:
sum = sum + period::Float64 # line 232:
i = top(box)(Int64,top(add_int)(i::Int64,1))::Int64
18:
16:
goto 14
15:
13: # line 235:
sum = sum + yearFraction(c::ISMAActualActual,newRefStart,d_end::CalendarTime,newRefStart,newRefEnd) # line 236:
return sum
19:
end))))
julia> Ito.Time.yearfraction(Ito.Time.ISMAActualActual(),today(),today(),today(),today())
Instruction does not dominate all uses!
%367 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217038181600 to %jl_value_t*), %jl_value_t** %366, i32 2), !dbg !4148
store %jl_value_t* %367, %jl_value_t** %420, !dbg !4154
Instruction does not dominate all uses!
%367 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217038181600 to %jl_value_t*), %jl_value_t** %366, i32 2), !dbg !4148
store %jl_value_t* %367, %jl_value_t** %422, !dbg !4154
Instruction does not dominate all uses!
%384 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217038181600 to %jl_value_t*), %jl_value_t** %383, i32 2), !dbg !4149
store %jl_value_t* %384, %jl_value_t** %423, !dbg !4154
Broken module found, verification continues.
; Function Attrs: sspreq
define %jl_value_t* @julia_yearfraction17428(%jl_value_t*, %jl_value_t**, i32) #2 {
top:
%"#s1133" = alloca i1, !dbg !4122
%mnths = alloca i64, !dbg !4122
%period = alloca double, !dbg !4122
%i = alloca i64, !dbg !4122
%3 = alloca %jl_value_t*, i32 14
%4 = getelementptr %jl_value_t** %3, i32 2, !dbg !4122
%5 = getelementptr %jl_value_t** %3, i32 0, !dbg !4122
%6 = bitcast %jl_value_t** %5 to i64*, !dbg !4122
store i64 24, i64* %6
%7 = load %jl_value_t*** @jl_pgcstack, !dbg !4122
%8 = getelementptr %jl_value_t** %3, i32 1, !dbg !4122
%9 = bitcast %jl_value_t** %8 to %jl_value_t***, !dbg !4122
store %jl_value_t** %7, %jl_value_t*** %9, !dbg !4122
store %jl_value_t** %3, %jl_value_t*** @jl_pgcstack, !dbg !4122
%10 = getelementptr %jl_value_t** %4, i32 0, !dbg !4122
store %jl_value_t* null, %jl_value_t** %10, !dbg !4122
%11 = getelementptr %jl_value_t** %4, i32 1, !dbg !4122
store %jl_value_t* null, %jl_value_t** %11, !dbg !4122
%12 = getelementptr %jl_value_t** %4, i32 2, !dbg !4122
store %jl_value_t* null, %jl_value_t** %12, !dbg !4122
%13 = getelementptr %jl_value_t** %4, i32 3, !dbg !4122
store %jl_value_t* null, %jl_value_t** %13, !dbg !4122
%14 = getelementptr %jl_value_t** %4, i32 4, !dbg !4122
store %jl_value_t* null, %jl_value_t** %14, !dbg !4122
%15 = getelementptr %jl_value_t** %4, i32 5, !dbg !4122
store %jl_value_t* null, %jl_value_t** %15, !dbg !4122
%16 = getelementptr %jl_value_t** %3, i32 8
store %jl_value_t* null, %jl_value_t** %16
%17 = getelementptr %jl_value_t** %3, i32 9
store %jl_value_t* null, %jl_value_t** %17
%18 = getelementptr %jl_value_t** %3, i32 10
store %jl_value_t* null, %jl_value_t** %18
%19 = getelementptr %jl_value_t** %3, i32 11
store %jl_value_t* null, %jl_value_t** %19
%20 = getelementptr %jl_value_t** %3, i32 12
store %jl_value_t* null, %jl_value_t** %20
%21 = getelementptr %jl_value_t** %3, i32 13
store %jl_value_t* null, %jl_value_t** %21
%22 = getelementptr %jl_value_t** %4, i32 0, !dbg !4122
%23 = getelementptr %jl_value_t** %4, i32 1, !dbg !4122
%24 = getelementptr %jl_value_t** %4, i32 2, !dbg !4122
%25 = getelementptr %jl_value_t** %4, i32 3, !dbg !4122
%26 = getelementptr %jl_value_t** %4, i32 4, !dbg !4122
%27 = getelementptr %jl_value_t** %4, i32 5, !dbg !4122
%28 = getelementptr %jl_value_t** %1, i64 0, !dbg !4122
%29 = load %jl_value_t** %28, !dbg !4122
%30 = getelementptr %jl_value_t** %1, i64 1, !dbg !4122
%31 = load %jl_value_t** %30, !dbg !4122
%32 = getelementptr %jl_value_t** %1, i64 2, !dbg !4122
%33 = load %jl_value_t** %32, !dbg !4122
%34 = getelementptr %jl_value_t** %1, i64 3, !dbg !4122
%35 = load %jl_value_t** %34, !dbg !4122
%36 = getelementptr %jl_value_t** %1, i64 4, !dbg !4122
%37 = load %jl_value_t** %36, !dbg !4122
%38 = bitcast %jl_value_t* %31 to i8*, !dbg !4123
%39 = getelementptr i8* %38, i64 8, !dbg !4123
%40 = bitcast i8* %39 to double*, !dbg !4123
%41 = getelementptr double* %40, i64 0, !dbg !4123
%42 = load double* %41, !dbg !4123
%43 = bitcast %jl_value_t* %33 to i8*, !dbg !4123
%44 = getelementptr i8* %43, i64 8, !dbg !4123
%45 = bitcast i8* %44 to double*, !dbg !4123
%46 = getelementptr double* %45, i64 0, !dbg !4123
%47 = load double* %46, !dbg !4123
%48 = fcmp oeq double %42, %47, !dbg !4123
%49 = xor i1 %48, true, !dbg !4123
br i1 %49, label %L, label %if, !dbg !4123
if: ; preds = %top
%50 = getelementptr %jl_value_t** %3, i32 1, !dbg !4123
%51 = load %jl_value_t** %50, !dbg !4123
%52 = bitcast %jl_value_t* %51 to %jl_value_t**, !dbg !4123
store %jl_value_t** %52, %jl_value_t*** @jl_pgcstack, !dbg !4123
ret %jl_value_t* inttoptr (i64 140216930649168 to %jl_value_t*), !dbg !4123
ret: ; No predecessors!
br label %L, !dbg !4123
L: ; preds = %ret, %top
%53 = bitcast %jl_value_t* %33 to i8*, !dbg !4124
%54 = getelementptr i8* %53, i64 8, !dbg !4124
%55 = bitcast i8* %54 to double*, !dbg !4124
%56 = getelementptr double* %55, i64 0, !dbg !4124
%57 = load double* %56, !dbg !4124
%58 = bitcast %jl_value_t* %31 to i8*, !dbg !4124
%59 = getelementptr i8* %58, i64 8, !dbg !4124
%60 = bitcast i8* %59 to double*, !dbg !4124
%61 = getelementptr double* %60, i64 0, !dbg !4124
%62 = load double* %61, !dbg !4124
%63 = fcmp olt double %57, %62, !dbg !4124
%64 = xor i1 %63, true, !dbg !4124
br i1 %64, label %L3, label %if1, !dbg !4124
if1: ; preds = %L
%65 = load %jl_value_t** getelementptr (%jl_value_t** inttoptr (i64 140216951747160 to %jl_value_t**), i64 1), !dbg !4125
%66 = icmp ne %jl_value_t* %65, null, !dbg !4125
br i1 %66, label %ok, label %err, !dbg !4125
err: ; preds = %if1
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140216860994816 to %jl_value_t*)), !dbg !4125
br label %ok, !dbg !4125
ok: ; preds = %err, %if1
%67 = bitcast %jl_value_t* %65 to %jl_value_t**, !dbg !4125
%68 = getelementptr %jl_value_t** %67, i64 0, !dbg !4125
%69 = load %jl_value_t** %68, !dbg !4125
%70 = icmp eq %jl_value_t* %69, inttoptr (i64 140217025616512 to %jl_value_t*), !dbg !4125
%71 = icmp eq %jl_value_t* %69, inttoptr (i64 140217025601536 to %jl_value_t*), !dbg !4125
%72 = or i1 %70, %71, !dbg !4125
br i1 %72, label %isf, label %notf, !dbg !4125
notf: ; preds = %ok
call void @jl_type_error_rt(i8* getelementptr inbounds ([13 x i8]* @_j_str75, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @_j_str2, i32 0, i32 0), %jl_value_t* inttoptr (i64 140217025616512 to %jl_value_t*), %jl_value_t* %65), !dbg !4125
br label %isf, !dbg !4125
isf: ; preds = %notf, %ok
%73 = bitcast %jl_value_t* %65 to %jl_value_t**, !dbg !4125
%74 = getelementptr %jl_value_t** %73, i64 1, !dbg !4125
%75 = load %jl_value_t** %74, !dbg !4125
%76 = bitcast %jl_value_t* %75 to %jl_value_t* (%jl_value_t*, %jl_value_t**, i32)*, !dbg !4125
%77 = getelementptr %jl_value_t** %4, i64 6, !dbg !4125
store %jl_value_t* %33, %jl_value_t** %77, !dbg !4125
%78 = getelementptr %jl_value_t** %4, i64 7, !dbg !4125
store %jl_value_t* %31, %jl_value_t** %78, !dbg !4125
%79 = getelementptr %jl_value_t** %4, i64 8, !dbg !4125
store %jl_value_t* %35, %jl_value_t** %79, !dbg !4125
%80 = getelementptr %jl_value_t** %4, i64 9, !dbg !4125
store %jl_value_t* %37, %jl_value_t** %80, !dbg !4125
%81 = getelementptr %jl_value_t** %4, i64 6, !dbg !4125
%82 = call %jl_value_t* %76(%jl_value_t* %65, %jl_value_t** %81, i32 4), !dbg !4125
%83 = getelementptr %jl_value_t** %4, i64 6, !dbg !4125
store %jl_value_t* %82, %jl_value_t** %83, !dbg !4125
%84 = getelementptr %jl_value_t** %4, i64 6, !dbg !4125
%85 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217043285440 to %jl_value_t*), %jl_value_t** %84, i32 1), !dbg !4125
%86 = getelementptr %jl_value_t** %3, i32 1, !dbg !4125
%87 = load %jl_value_t** %86, !dbg !4125
%88 = bitcast %jl_value_t* %87 to %jl_value_t**, !dbg !4125
store %jl_value_t** %88, %jl_value_t*** @jl_pgcstack, !dbg !4125
ret %jl_value_t* %85, !dbg !4125
ret2: ; No predecessors!
br label %L3, !dbg !4125
L3: ; preds = %ret2, %L
store %jl_value_t* %35, %jl_value_t** %24, !dbg !4126
store %jl_value_t* %37, %jl_value_t** %25, !dbg !4127
%89 = load %jl_value_t** %24, !dbg !4128
%90 = bitcast %jl_value_t* %89 to i8*, !dbg !4128
%91 = getelementptr i8* %90, i64 8, !dbg !4128
%92 = bitcast i8* %91 to double*, !dbg !4128
%93 = getelementptr double* %92, i64 0, !dbg !4128
%94 = load double* %93, !dbg !4128
%95 = load %jl_value_t** %25, !dbg !4128
%96 = bitcast %jl_value_t* %95 to i8*, !dbg !4128
%97 = getelementptr i8* %96, i64 8, !dbg !4128
%98 = bitcast i8* %97 to double*, !dbg !4128
%99 = getelementptr double* %98, i64 0, !dbg !4128
%100 = load double* %99, !dbg !4128
%101 = fcmp olt double %94, %100, !dbg !4128
%102 = xor i1 %101, true, !dbg !4128
br i1 %102, label %L5, label %if4, !dbg !4128
if4: ; preds = %L3
%103 = bitcast %jl_value_t* %31 to i8*, !dbg !4128
%104 = getelementptr i8* %103, i64 8, !dbg !4128
%105 = bitcast i8* %104 to double*, !dbg !4128
%106 = getelementptr double* %105, i64 0, !dbg !4128
%107 = load double* %106, !dbg !4128
%108 = load %jl_value_t** %25, !dbg !4128
%109 = bitcast %jl_value_t* %108 to i8*, !dbg !4128
%110 = getelementptr i8* %109, i64 8, !dbg !4128
%111 = bitcast i8* %110 to double*, !dbg !4128
%112 = getelementptr double* %111, i64 0, !dbg !4128
%113 = load double* %112, !dbg !4128
%114 = fcmp olt double %107, %113, !dbg !4128
store i1 %114, i1* %"#s1133", !dbg !4128
br label %L6, !dbg !4128
br: ; No predecessors!
br label %L5, !dbg !4128
L5: ; preds = %br, %L3
store i1 false, i1* %"#s1133", !dbg !4128
br label %L6, !dbg !4128
L6: ; preds = %L5, %if4
%115 = load i1* %"#s1133", !dbg !4128
%116 = xor i1 %115, true, !dbg !4128
br i1 %116, label %L9, label %if7, !dbg !4128
if7: ; preds = %L6
br label %L10, !dbg !4128
br8: ; No predecessors!
br label %L9, !dbg !4128
L9: ; preds = %br8, %L6
%117 = call %jl_value_t* @allocobj(i64 16), !dbg !4128
%118 = bitcast %jl_value_t* %117 to %jl_value_t**, !dbg !4128
%119 = getelementptr %jl_value_t** %118, i64 0, !dbg !4128
store %jl_value_t* inttoptr (i64 140217027044864 to %jl_value_t*), %jl_value_t** %119, !dbg !4128
%120 = bitcast %jl_value_t* %117 to i8*, !dbg !4128
%121 = getelementptr i8* %120, i64 8, !dbg !4128
%122 = bitcast i8* %121 to %jl_value_t**, !dbg !4128
store %jl_value_t* inttoptr (i64 140216930650640 to %jl_value_t*), %jl_value_t** %122, !dbg !4128
call void @jl_throw_with_superfluous_argument(%jl_value_t* %117, i32 171), !dbg !4128
br label %L10, !dbg !4128
L10: ; preds = %L9, %if7
%123 = load %jl_value_t** %25, !dbg !4129
%124 = bitcast %jl_value_t* %123 to i8*, !dbg !4129
%125 = getelementptr i8* %124, i64 8, !dbg !4129
%126 = bitcast i8* %125 to double*, !dbg !4129
%127 = getelementptr double* %126, i64 0, !dbg !4129
%128 = load double* %127, !dbg !4129
%129 = load %jl_value_t** %24, !dbg !4129
%130 = bitcast %jl_value_t* %129 to i8*, !dbg !4129
%131 = getelementptr i8* %130, i64 8, !dbg !4129
%132 = bitcast i8* %131 to double*, !dbg !4129
%133 = getelementptr double* %132, i64 0, !dbg !4129
%134 = load double* %133, !dbg !4129
%135 = fsub double %128, %134, !dbg !4129
%136 = insertvalue %FixedCalendarDuration undef, double %135, 0, !dbg !4129, !julia_type !4130
%137 = extractvalue %FixedCalendarDuration %136, 0, !dbg !4129
%138 = fdiv double %137, 8.640000e+07, !dbg !4129
%139 = bitcast double %138 to i64, !dbg !4129
%140 = ashr i64 %139, 52, !dbg !4129
%141 = and i64 %140, 2047, !dbg !4129
%142 = icmp sge i64 %141, 1075, !dbg !4129
%143 = and i64 %139, -9223372036854775808, !dbg !4129
%144 = or i64 4602678819172646912, %143, !dbg !4129
%145 = bitcast i64 %144 to double, !dbg !4129
%146 = fadd double %138, %145, !dbg !4129
%147 = icmp slt i64 %141, 1022, !dbg !4129
%148 = or i1 %142, %147, !dbg !4129
%149 = select i1 %148, double %138, double %146, !dbg !4129
%150 = fcmp ole double %149, 0x43DFFFFFFFFFFFFF, !dbg !4129
%151 = fcmp oge double %149, 0xC3E0000000000000, !dbg !4129
%152 = and i1 %150, %151, !dbg !4129
%153 = load %jl_value_t** @jl_inexact_exception, !dbg !4129
br i1 %152, label %pass, label %fail, !dbg !4129
fail: ; preds = %L10
call void @jl_throw_with_superfluous_argument(%jl_value_t* %153, i32 174), !dbg !4129
unreachable, !dbg !4129
pass: ; preds = %L10
%154 = fptosi double %149 to i64, !dbg !4129
%155 = mul i64 12, %154, !dbg !4129
%156 = sitofp i64 %155 to double, !dbg !4129
%157 = fdiv double %156, 3.650000e+02, !dbg !4129
%158 = fadd double 5.000000e-01, %157, !dbg !4129
%159 = call double inttoptr (i64 4480968128 to double (double)*)(double %158), !dbg !4129
%160 = fptosi double %159 to i64, !dbg !4129
%161 = sitofp i64 %160 to double, !dbg !4129
%162 = fcmp oeq double %159, %161, !dbg !4129
%163 = sitofp i64 %160 to double, !dbg !4129
%164 = fptosi double %163 to i64, !dbg !4129
%165 = icmp eq i64 %160, %164, !dbg !4129
%166 = and i1 %162, %165, !dbg !4129
%167 = load %jl_value_t** @jl_inexact_exception, !dbg !4129
br i1 %166, label %pass12, label %fail11, !dbg !4129
fail11: ; preds = %pass
call void @jl_throw_with_superfluous_argument(%jl_value_t* %167, i32 174), !dbg !4129
unreachable, !dbg !4129
pass12: ; preds = %pass
store i64 %160, i64* %mnths, !dbg !4129
%168 = load i64* %mnths, !dbg !4131
%169 = icmp eq i64 %168, 0, !dbg !4131
%170 = xor i1 %169, true, !dbg !4131
br i1 %170, label %L14, label %if13, !dbg !4131
if13: ; preds = %pass12
store %jl_value_t* %31, %jl_value_t** %24, !dbg !4132
%171 = getelementptr %jl_value_t** %4, i64 6, !dbg !4133
store %jl_value_t* %31, %jl_value_t** %171, !dbg !4133
%172 = getelementptr %jl_value_t** %4, i64 7, !dbg !4133
store %jl_value_t* inttoptr (i64 140217025708128 to %jl_value_t*), %jl_value_t** %172, !dbg !4133
%173 = getelementptr %jl_value_t** %4, i64 7, !dbg !4133
%174 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140216868234432 to %jl_value_t*), %jl_value_t** %173, i32 1), !dbg !4133
%175 = getelementptr %jl_value_t** %4, i64 7, !dbg !4133
store %jl_value_t* %174, %jl_value_t** %175, !dbg !4133
%176 = getelementptr %jl_value_t** %4, i64 6, !dbg !4133
%177 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217038181600 to %jl_value_t*), %jl_value_t** %176, i32 2), !dbg !4133
store %jl_value_t* %177, %jl_value_t** %25, !dbg !4133
store i64 12, i64* %mnths, !dbg !4134
br label %L14, !dbg !4134
L14: ; preds = %if13, %pass12
%178 = load i64* %mnths, !dbg !4135
%179 = sitofp i64 %178 to double, !dbg !4135
%180 = fdiv double %179, 1.200000e+01, !dbg !4135
store double %180, double* %period, !dbg !4135
%181 = load %jl_value_t** %25, !dbg !4136
%182 = icmp ne %jl_value_t* %181, null, !dbg !4136
br i1 %182, label %ok16, label %err15, !dbg !4136
err15: ; preds = %L14
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140217253570640 to %jl_value_t*)), !dbg !4136
br label %ok16, !dbg !4136
ok16: ; preds = %err15, %L14
%183 = getelementptr %jl_value_t** %4, i64 6, !dbg !4136
store %jl_value_t* %181, %jl_value_t** %183, !dbg !4136
%184 = getelementptr %jl_value_t** %4, i64 7, !dbg !4136
store %jl_value_t* %33, %jl_value_t** %184, !dbg !4136
%185 = getelementptr %jl_value_t** %4, i64 6, !dbg !4136
%186 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217044949664 to %jl_value_t*), %jl_value_t** %185, i32 2), !dbg !4136
%187 = bitcast %jl_value_t* %186 to %jl_value_t**, !dbg !4136
%188 = getelementptr %jl_value_t** %187, i64 1, !dbg !4136
%189 = bitcast %jl_value_t** %188 to i8*, !dbg !4136
%190 = load i8* %189, !dbg !4136
%191 = trunc i8 %190 to i1, !dbg !4136
%192 = xor i1 %191, true, !dbg !4136
%193 = xor i1 %192, true, !dbg !4136
br i1 %193, label %L35, label %if17, !dbg !4136
if17: ; preds = %ok16
%194 = bitcast %jl_value_t* %31 to i8*, !dbg !4137
%195 = getelementptr i8* %194, i64 8, !dbg !4137
%196 = bitcast i8* %195 to double*, !dbg !4137
%197 = getelementptr double* %196, i64 0, !dbg !4137
%198 = load double* %197, !dbg !4137
%199 = load %jl_value_t** %24, !dbg !4137
%200 = bitcast %jl_value_t* %199 to i8*, !dbg !4137
%201 = getelementptr i8* %200, i64 8, !dbg !4137
%202 = bitcast i8* %201 to double*, !dbg !4137
%203 = getelementptr double* %202, i64 0, !dbg !4137
%204 = load double* %203, !dbg !4137
%205 = fcmp olt double %198, %204, !dbg !4137
%206 = xor i1 %205, true, !dbg !4137
%207 = xor i1 %206, true, !dbg !4137
br i1 %207, label %L25, label %if18, !dbg !4137
if18: ; preds = %if17
%208 = load double* %period, !dbg !4138
%209 = bitcast %jl_value_t* %33 to i8*, !dbg !4138
%210 = getelementptr i8* %209, i64 8, !dbg !4138
%211 = bitcast i8* %210 to double*, !dbg !4138
%212 = getelementptr double* %211, i64 0, !dbg !4138
%213 = load double* %212, !dbg !4138
%214 = bitcast %jl_value_t* %31 to i8*, !dbg !4138
%215 = getelementptr i8* %214, i64 8, !dbg !4138
%216 = bitcast i8* %215 to double*, !dbg !4138
%217 = getelementptr double* %216, i64 0, !dbg !4138
%218 = load double* %217, !dbg !4138
%219 = fsub double %213, %218, !dbg !4138
%220 = insertvalue %FixedCalendarDuration undef, double %219, 0, !dbg !4138, !julia_type !4130
%221 = extractvalue %FixedCalendarDuration %220, 0, !dbg !4138
%222 = fdiv double %221, 8.640000e+07, !dbg !4138
%223 = bitcast double %222 to i64, !dbg !4138
%224 = ashr i64 %223, 52, !dbg !4138
%225 = and i64 %224, 2047, !dbg !4138
%226 = icmp sge i64 %225, 1075, !dbg !4138
%227 = and i64 %223, -9223372036854775808, !dbg !4138
%228 = or i64 4602678819172646912, %227, !dbg !4138
%229 = bitcast i64 %228 to double, !dbg !4138
%230 = fadd double %222, %229, !dbg !4138
%231 = icmp slt i64 %225, 1022, !dbg !4138
%232 = or i1 %226, %231, !dbg !4138
%233 = select i1 %232, double %222, double %230, !dbg !4138
%234 = fcmp ole double %233, 0x43DFFFFFFFFFFFFF, !dbg !4138
%235 = fcmp oge double %233, 0xC3E0000000000000, !dbg !4138
%236 = and i1 %234, %235, !dbg !4138
%237 = load %jl_value_t** @jl_inexact_exception, !dbg !4138
br i1 %236, label %pass20, label %fail19, !dbg !4138
fail19: ; preds = %if18
call void @jl_throw_with_superfluous_argument(%jl_value_t* %237, i32 194), !dbg !4138
unreachable, !dbg !4138
pass20: ; preds = %if18
%238 = fptosi double %233 to i64, !dbg !4138
%239 = sitofp i64 %238 to double, !dbg !4138
%240 = fmul double %208, %239, !dbg !4138
%241 = getelementptr %jl_value_t** %4, i64 6, !dbg !4138
store %jl_value_t* %29, %jl_value_t** %241, !dbg !4138
%242 = load %jl_value_t** %24, !dbg !4138
%243 = getelementptr %jl_value_t** %4, i64 7, !dbg !4138
store %jl_value_t* %242, %jl_value_t** %243, !dbg !4138
%244 = load %jl_value_t** %25, !dbg !4138
%245 = icmp ne %jl_value_t* %244, null, !dbg !4138
br i1 %245, label %ok22, label %err21, !dbg !4138
err21: ; preds = %pass20
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140217253570640 to %jl_value_t*)), !dbg !4138
br label %ok22, !dbg !4138
ok22: ; preds = %err21, %pass20
%246 = getelementptr %jl_value_t** %4, i64 8, !dbg !4138
store %jl_value_t* %244, %jl_value_t** %246, !dbg !4138
%247 = getelementptr %jl_value_t** %4, i64 6, !dbg !4138
%248 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140216939878592 to %jl_value_t*), %jl_value_t** %247, i32 3), !dbg !4138
%249 = bitcast %jl_value_t* %248 to %jl_value_t**, !dbg !4138
%250 = getelementptr %jl_value_t** %249, i64 1, !dbg !4138
%251 = bitcast %jl_value_t** %250 to i64*, !dbg !4138
%252 = load i64* %251, !dbg !4138
%253 = sitofp i64 %252 to double, !dbg !4138
%254 = fdiv double %240, %253, !dbg !4138
%255 = call %jl_value_t* @alloc_2w(), !dbg !4138
%256 = bitcast %jl_value_t* %255 to %jl_value_t**, !dbg !4138
store %jl_value_t* inttoptr (i64 140217025637104 to %jl_value_t*), %jl_value_t** %256, !dbg !4138
%257 = bitcast %jl_value_t* %255 to %jl_value_t**, !dbg !4138
%258 = getelementptr %jl_value_t** %257, i64 1, !dbg !4138
%259 = bitcast %jl_value_t** %258 to double*, !dbg !4138
store double %254, double* %259, !dbg !4138
%260 = getelementptr %jl_value_t** %3, i32 1, !dbg !4138
%261 = load %jl_value_t** %260, !dbg !4138
%262 = bitcast %jl_value_t* %261 to %jl_value_t**, !dbg !4138
store %jl_value_t** %262, %jl_value_t*** @jl_pgcstack, !dbg !4138
ret %jl_value_t* %255, !dbg !4138
ret23: ; No predecessors!
br label %L33, !dbg !4138
br24: ; No predecessors!
br label %L25, !dbg !4138
L25: ; preds = %br24, %if17
%263 = load %jl_value_t** %24, !dbg !4139
%264 = load i64* %mnths, !dbg !4139
%265 = sub i64 0, %264, !dbg !4139
%266 = insertvalue %CalendarDuration { i64 0, i64 undef, i64 undef, double undef }, i64 %265, 1, !dbg !4139
%267 = insertvalue %CalendarDuration %266, i64 0, 2, !dbg !4139
%268 = insertvalue %CalendarDuration %267, double 0.000000e+00, 3, !dbg !4139, !julia_type !4140
%269 = call %jl_value_t* @"julia_+17429"(%jl_value_t* %263, %CalendarDuration %268), !dbg !4139
store %jl_value_t* %269, %jl_value_t** %26, !dbg !4139
%270 = load %jl_value_t** %24, !dbg !4141
%271 = bitcast %jl_value_t* %270 to i8*, !dbg !4141
%272 = getelementptr i8* %271, i64 8, !dbg !4141
%273 = bitcast i8* %272 to double*, !dbg !4141
%274 = getelementptr double* %273, i64 0, !dbg !4141
%275 = load double* %274, !dbg !4141
%276 = bitcast %jl_value_t* %33 to i8*, !dbg !4141
%277 = getelementptr i8* %276, i64 8, !dbg !4141
%278 = bitcast i8* %277 to double*, !dbg !4141
%279 = getelementptr double* %278, i64 0, !dbg !4141
%280 = load double* %279, !dbg !4141
%281 = fcmp olt double %275, %280, !dbg !4141
%282 = xor i1 %281, true, !dbg !4141
br i1 %282, label %L31, label %if26, !dbg !4141
if26: ; preds = %L25
%283 = getelementptr %jl_value_t** %4, i64 6, !dbg !4142
store %jl_value_t* %29, %jl_value_t** %283, !dbg !4142
%284 = getelementptr %jl_value_t** %4, i64 7, !dbg !4142
store %jl_value_t* %31, %jl_value_t** %284, !dbg !4142
%285 = load %jl_value_t** %24, !dbg !4142
%286 = getelementptr %jl_value_t** %4, i64 8, !dbg !4142
store %jl_value_t* %285, %jl_value_t** %286, !dbg !4142
%287 = getelementptr %jl_value_t** %4, i64 9, !dbg !4142
store %jl_value_t* %269, %jl_value_t** %287, !dbg !4142
%288 = load %jl_value_t** %24, !dbg !4142
%289 = getelementptr %jl_value_t** %4, i64 10, !dbg !4142
store %jl_value_t* %288, %jl_value_t** %289, !dbg !4142
%290 = getelementptr %jl_value_t** %4, i64 6, !dbg !4142
%291 = call %jl_value_t* @julia_yearfraction17428(%jl_value_t* inttoptr (i64 140216974324320 to %jl_value_t*), %jl_value_t** %290, i32 5), !dbg !4142
%292 = getelementptr %jl_value_t** %4, i64 6, !dbg !4142
store %jl_value_t* %291, %jl_value_t** %292, !dbg !4142
%293 = getelementptr %jl_value_t** %4, i64 7, !dbg !4142
store %jl_value_t* %29, %jl_value_t** %293, !dbg !4142
%294 = load %jl_value_t** %24, !dbg !4142
%295 = getelementptr %jl_value_t** %4, i64 8, !dbg !4142
store %jl_value_t* %294, %jl_value_t** %295, !dbg !4142
%296 = getelementptr %jl_value_t** %4, i64 9, !dbg !4142
store %jl_value_t* %33, %jl_value_t** %296, !dbg !4142
%297 = load %jl_value_t** %24, !dbg !4142
%298 = getelementptr %jl_value_t** %4, i64 10, !dbg !4142
store %jl_value_t* %297, %jl_value_t** %298, !dbg !4142
%299 = load %jl_value_t** %25, !dbg !4142
%300 = icmp ne %jl_value_t* %299, null, !dbg !4142
br i1 %300, label %ok28, label %err27, !dbg !4142
err27: ; preds = %if26
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140217253570640 to %jl_value_t*)), !dbg !4142
br label %ok28, !dbg !4142
ok28: ; preds = %err27, %if26
%301 = getelementptr %jl_value_t** %4, i64 11, !dbg !4142
store %jl_value_t* %299, %jl_value_t** %301, !dbg !4142
%302 = getelementptr %jl_value_t** %4, i64 7, !dbg !4142
%303 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140216930663264 to %jl_value_t*), %jl_value_t** %302, i32 5), !dbg !4142
%304 = getelementptr %jl_value_t** %4, i64 7, !dbg !4142
store %jl_value_t* %303, %jl_value_t** %304, !dbg !4142
%305 = getelementptr %jl_value_t** %4, i64 6, !dbg !4142
%306 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217038181600 to %jl_value_t*), %jl_value_t** %305, i32 2), !dbg !4142
%307 = getelementptr %jl_value_t** %3, i32 1, !dbg !4142
%308 = load %jl_value_t** %307, !dbg !4142
%309 = bitcast %jl_value_t* %308 to %jl_value_t**, !dbg !4142
store %jl_value_t** %309, %jl_value_t*** @jl_pgcstack, !dbg !4142
ret %jl_value_t* %306, !dbg !4142
ret29: ; No predecessors!
br label %L33, !dbg !4142
br30: ; No predecessors!
br label %L31, !dbg !4142
L31: ; preds = %br30, %L25
%310 = getelementptr %jl_value_t** %4, i64 6, !dbg !4143
store %jl_value_t* %31, %jl_value_t** %310, !dbg !4143
%311 = getelementptr %jl_value_t** %4, i64 7, !dbg !4143
store %jl_value_t* %33, %jl_value_t** %311, !dbg !4143
%312 = getelementptr %jl_value_t** %4, i64 8, !dbg !4143
store %jl_value_t* %269, %jl_value_t** %312, !dbg !4143
%313 = load %jl_value_t** %24, !dbg !4143
%314 = getelementptr %jl_value_t** %4, i64 9, !dbg !4143
store %jl_value_t* %313, %jl_value_t** %314, !dbg !4143
%315 = getelementptr %jl_value_t** %4, i64 6, !dbg !4143
%316 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140216930663264 to %jl_value_t*), %jl_value_t** %315, i32 4), !dbg !4143
%317 = getelementptr %jl_value_t** %3, i32 1, !dbg !4143
%318 = load %jl_value_t** %317, !dbg !4143
%319 = bitcast %jl_value_t* %318 to %jl_value_t**, !dbg !4143
store %jl_value_t** %319, %jl_value_t*** @jl_pgcstack, !dbg !4143
ret %jl_value_t* %316, !dbg !4143
ret32: ; No predecessors!
br label %L33, !dbg !4143
L33: ; preds = %ret32, %ret29, %ret23
br label %L68, !dbg !4143
br34: ; No predecessors!
br label %L35, !dbg !4143
L35: ; preds = %br34, %ok16
%320 = bitcast %jl_value_t* %31 to i8*, !dbg !4144
%321 = getelementptr i8* %320, i64 8, !dbg !4144
%322 = bitcast i8* %321 to double*, !dbg !4144
%323 = getelementptr double* %322, i64 0, !dbg !4144
%324 = load double* %323, !dbg !4144
%325 = load %jl_value_t** %24, !dbg !4144
%326 = bitcast %jl_value_t* %325 to i8*, !dbg !4144
%327 = getelementptr i8* %326, i64 8, !dbg !4144
%328 = bitcast i8* %327 to double*, !dbg !4144
%329 = getelementptr double* %328, i64 0, !dbg !4144
%330 = load double* %329, !dbg !4144
%331 = fcmp olt double %324, %330, !dbg !4144
%332 = xor i1 %331, true, !dbg !4144
%333 = xor i1 %332, true, !dbg !4144
br i1 %333, label %L38, label %if36, !dbg !4144
if36: ; preds = %L35
br label %L39, !dbg !4144
br37: ; No predecessors!
br label %L38, !dbg !4144
L38: ; preds = %br37, %L35
%334 = call %jl_value_t* @allocobj(i64 16), !dbg !4144
%335 = bitcast %jl_value_t* %334 to %jl_value_t**, !dbg !4144
%336 = getelementptr %jl_value_t** %335, i64 0, !dbg !4144
store %jl_value_t* inttoptr (i64 140217027044864 to %jl_value_t*), %jl_value_t** %336, !dbg !4144
%337 = bitcast %jl_value_t* %334 to i8*, !dbg !4144
%338 = getelementptr i8* %337, i64 8, !dbg !4144
%339 = bitcast i8* %338 to %jl_value_t**, !dbg !4144
store %jl_value_t* inttoptr (i64 140216930650656 to %jl_value_t*), %jl_value_t** %339, !dbg !4144
call void @jl_throw_with_superfluous_argument(%jl_value_t* %334, i32 214), !dbg !4144
br label %L39, !dbg !4144
L39: ; preds = %L38, %if36
%340 = getelementptr %jl_value_t** %4, i64 6, !dbg !4145
store %jl_value_t* %29, %jl_value_t** %340, !dbg !4145
%341 = getelementptr %jl_value_t** %4, i64 7, !dbg !4145
store %jl_value_t* %31, %jl_value_t** %341, !dbg !4145
%342 = load %jl_value_t** %25, !dbg !4145
%343 = icmp ne %jl_value_t* %342, null, !dbg !4145
br i1 %343, label %ok41, label %err40, !dbg !4145
err40: ; preds = %L39
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140217253570640 to %jl_value_t*)), !dbg !4145
br label %ok41, !dbg !4145
ok41: ; preds = %err40, %L39
%344 = getelementptr %jl_value_t** %4, i64 8, !dbg !4145
store %jl_value_t* %342, %jl_value_t** %344, !dbg !4145
%345 = load %jl_value_t** %24, !dbg !4145
%346 = getelementptr %jl_value_t** %4, i64 9, !dbg !4145
store %jl_value_t* %345, %jl_value_t** %346, !dbg !4145
%347 = load %jl_value_t** %25, !dbg !4145
%348 = icmp ne %jl_value_t* %347, null, !dbg !4145
br i1 %348, label %ok43, label %err42, !dbg !4145
err42: ; preds = %ok41
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140217253570640 to %jl_value_t*)), !dbg !4145
br label %ok43, !dbg !4145
ok43: ; preds = %err42, %ok41
%349 = getelementptr %jl_value_t** %4, i64 10, !dbg !4145
store %jl_value_t* %347, %jl_value_t** %349, !dbg !4145
%350 = getelementptr %jl_value_t** %4, i64 6, !dbg !4145
%351 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140216930663264 to %jl_value_t*), %jl_value_t** %350, i32 5), !dbg !4145
store %jl_value_t* %351, %jl_value_t** %27, !dbg !4145
store i64 0, i64* %i, !dbg !4146
br label %L44, !dbg !4147
L44: ; preds = %L56, %ok43
br i1 false, label %L58, label %if45, !dbg !4147
if45: ; preds = %L44
%352 = load %jl_value_t** %25, !dbg !4148
%353 = icmp ne %jl_value_t* %352, null, !dbg !4148
br i1 %353, label %ok47, label %err46, !dbg !4148
err46: ; preds = %if45
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140217253570640 to %jl_value_t*)), !dbg !4148
br label %ok47, !dbg !4148
ok47: ; preds = %err46, %if45
%354 = getelementptr %jl_value_t** %4, i64 6, !dbg !4148
store %jl_value_t* %352, %jl_value_t** %354, !dbg !4148
%355 = load %jl_value_t** getelementptr (%jl_value_t** inttoptr (i64 140216866499640 to %jl_value_t**), i64 1), !dbg !4148
%356 = getelementptr %jl_value_t** %4, i64 7, !dbg !4148
store %jl_value_t* %355, %jl_value_t** %356, !dbg !4148
%357 = load i64* %i, !dbg !4148
%358 = call %jl_value_t* @jl_box_int64(i64 %357), !dbg !4148
%359 = getelementptr %jl_value_t** %4, i64 8, !dbg !4148
store %jl_value_t* %358, %jl_value_t** %359, !dbg !4148
%360 = getelementptr %jl_value_t** %4, i64 7, !dbg !4148
%361 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217042456768 to %jl_value_t*), %jl_value_t** %360, i32 2), !dbg !4148
%362 = getelementptr %jl_value_t** %4, i64 7, !dbg !4148
store %jl_value_t* %361, %jl_value_t** %362, !dbg !4148
%363 = getelementptr %jl_value_t** %4, i64 7, !dbg !4148
%364 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140216843560096 to %jl_value_t*), %jl_value_t** %363, i32 1), !dbg !4148
%365 = getelementptr %jl_value_t** %4, i64 7, !dbg !4148
store %jl_value_t* %364, %jl_value_t** %365, !dbg !4148
%366 = getelementptr %jl_value_t** %4, i64 6, !dbg !4148
%367 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217038181600 to %jl_value_t*), %jl_value_t** %366, i32 2), !dbg !4148
store %jl_value_t* %367, %jl_value_t** %23, !dbg !4148
%368 = load %jl_value_t** %25, !dbg !4149
%369 = icmp ne %jl_value_t* %368, null, !dbg !4149
br i1 %369, label %ok49, label %err48, !dbg !4149
err48: ; preds = %ok47
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140217253570640 to %jl_value_t*)), !dbg !4149
br label %ok49, !dbg !4149
ok49: ; preds = %err48, %ok47
%370 = getelementptr %jl_value_t** %4, i64 6, !dbg !4149
store %jl_value_t* %368, %jl_value_t** %370, !dbg !4149
%371 = load %jl_value_t** getelementptr (%jl_value_t** inttoptr (i64 140216866499640 to %jl_value_t**), i64 1), !dbg !4149
%372 = getelementptr %jl_value_t** %4, i64 7, !dbg !4149
store %jl_value_t* %371, %jl_value_t** %372, !dbg !4149
%373 = load i64* %i, !dbg !4149
%374 = add i64 %373, 1, !dbg !4149
%375 = call %jl_value_t* @jl_box_int64(i64 %374), !dbg !4149
%376 = getelementptr %jl_value_t** %4, i64 8, !dbg !4149
store %jl_value_t* %375, %jl_value_t** %376, !dbg !4149
%377 = getelementptr %jl_value_t** %4, i64 7, !dbg !4149
%378 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217042456768 to %jl_value_t*), %jl_value_t** %377, i32 2), !dbg !4149
%379 = getelementptr %jl_value_t** %4, i64 7, !dbg !4149
store %jl_value_t* %378, %jl_value_t** %379, !dbg !4149
%380 = getelementptr %jl_value_t** %4, i64 7, !dbg !4149
%381 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140216843560096 to %jl_value_t*), %jl_value_t** %380, i32 1), !dbg !4149
%382 = getelementptr %jl_value_t** %4, i64 7, !dbg !4149
store %jl_value_t* %381, %jl_value_t** %382, !dbg !4149
%383 = getelementptr %jl_value_t** %4, i64 6, !dbg !4149
%384 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217038181600 to %jl_value_t*), %jl_value_t** %383, i32 2), !dbg !4149
store %jl_value_t* %384, %jl_value_t** %22, !dbg !4149
%385 = getelementptr %jl_value_t** %4, i64 6, !dbg !4150
store %jl_value_t* %33, %jl_value_t** %385, !dbg !4150
%386 = getelementptr %jl_value_t** %4, i64 7, !dbg !4150
store %jl_value_t* %384, %jl_value_t** %386, !dbg !4150
%387 = getelementptr %jl_value_t** %4, i64 6, !dbg !4150
%388 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217044949664 to %jl_value_t*), %jl_value_t** %387, i32 2), !dbg !4150
%389 = icmp eq %jl_value_t* %388, inttoptr (i64 140217025724976 to %jl_value_t*), !dbg !4150
br i1 %389, label %L53, label %if50, !dbg !4150
if50: ; preds = %ok49
br label %L58, !dbg !4151
br51: ; No predecessors!
br label %L56, !dbg !4151
br52: ; No predecessors!
br label %L53, !dbg !4151
L53: ; preds = %br52, %ok49
%390 = load %jl_value_t** %27, !dbg !4152
%391 = icmp ne %jl_value_t* %390, null, !dbg !4152
br i1 %391, label %ok55, label %err54, !dbg !4152
err54: ; preds = %L53
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140217014368368 to %jl_value_t*)), !dbg !4152
br label %ok55, !dbg !4152
ok55: ; preds = %err54, %L53
%392 = getelementptr %jl_value_t** %4, i64 6, !dbg !4152
store %jl_value_t* %390, %jl_value_t** %392, !dbg !4152
%393 = load double* %period, !dbg !4152
%394 = call %jl_value_t* @alloc_2w(), !dbg !4152
%395 = bitcast %jl_value_t* %394 to %jl_value_t**, !dbg !4152
store %jl_value_t* inttoptr (i64 140217025637104 to %jl_value_t*), %jl_value_t** %395, !dbg !4152
%396 = bitcast %jl_value_t* %394 to %jl_value_t**, !dbg !4152
%397 = getelementptr %jl_value_t** %396, i64 1, !dbg !4152
%398 = bitcast %jl_value_t** %397 to double*, !dbg !4152
store double %393, double* %398, !dbg !4152
%399 = getelementptr %jl_value_t** %4, i64 7, !dbg !4152
store %jl_value_t* %394, %jl_value_t** %399, !dbg !4152
%400 = getelementptr %jl_value_t** %4, i64 6, !dbg !4152
%401 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217038181600 to %jl_value_t*), %jl_value_t** %400, i32 2), !dbg !4152
store %jl_value_t* %401, %jl_value_t** %27, !dbg !4152
%402 = load i64* %i, !dbg !4153
%403 = add i64 %402, 1, !dbg !4153
store i64 %403, i64* %i, !dbg !4153
br label %L56, !dbg !4153
L56: ; preds = %ok55, %br51
br label %L44, !dbg !4153
br57: ; No predecessors!
br label %L58, !dbg !4153
L58: ; preds = %br57, %if50, %L44
%404 = load %jl_value_t** %27, !dbg !4154
%405 = icmp ne %jl_value_t* %404, null, !dbg !4154
br i1 %405, label %ok60, label %err59, !dbg !4154
err59: ; preds = %L58
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140217014368368 to %jl_value_t*)), !dbg !4154
br label %ok60, !dbg !4154
ok60: ; preds = %err59, %L58
%406 = getelementptr %jl_value_t** %4, i64 6, !dbg !4154
store %jl_value_t* %404, %jl_value_t** %406, !dbg !4154
%407 = load %jl_value_t** getelementptr (%jl_value_t** inttoptr (i64 140216951747160 to %jl_value_t**), i64 1), !dbg !4154
%408 = icmp ne %jl_value_t* %407, null, !dbg !4154
br i1 %408, label %ok62, label %err61, !dbg !4154
err61: ; preds = %ok60
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140216860994816 to %jl_value_t*)), !dbg !4154
br label %ok62, !dbg !4154
ok62: ; preds = %err61, %ok60
%409 = bitcast %jl_value_t* %407 to %jl_value_t**, !dbg !4154
%410 = getelementptr %jl_value_t** %409, i64 0, !dbg !4154
%411 = load %jl_value_t** %410, !dbg !4154
%412 = icmp eq %jl_value_t* %411, inttoptr (i64 140217025616512 to %jl_value_t*), !dbg !4154
%413 = icmp eq %jl_value_t* %411, inttoptr (i64 140217025601536 to %jl_value_t*), !dbg !4154
%414 = or i1 %412, %413, !dbg !4154
br i1 %414, label %isf64, label %notf63, !dbg !4154
notf63: ; preds = %ok62
call void @jl_type_error_rt(i8* getelementptr inbounds ([13 x i8]* @_j_str75, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8]* @_j_str2, i32 0, i32 0), %jl_value_t* inttoptr (i64 140217025616512 to %jl_value_t*), %jl_value_t* %407), !dbg !4154
br label %isf64, !dbg !4154
isf64: ; preds = %notf63, %ok62
%415 = bitcast %jl_value_t* %407 to %jl_value_t**, !dbg !4154
%416 = getelementptr %jl_value_t** %415, i64 1, !dbg !4154
%417 = load %jl_value_t** %416, !dbg !4154
%418 = bitcast %jl_value_t* %417 to %jl_value_t* (%jl_value_t*, %jl_value_t**, i32)*, !dbg !4154
%419 = getelementptr %jl_value_t** %4, i64 7, !dbg !4154
store %jl_value_t* %29, %jl_value_t** %419, !dbg !4154
%420 = getelementptr %jl_value_t** %4, i64 8, !dbg !4154
store %jl_value_t* %367, %jl_value_t** %420, !dbg !4154
%421 = getelementptr %jl_value_t** %4, i64 9, !dbg !4154
store %jl_value_t* %33, %jl_value_t** %421, !dbg !4154
%422 = getelementptr %jl_value_t** %4, i64 10, !dbg !4154
store %jl_value_t* %367, %jl_value_t** %422, !dbg !4154
%423 = getelementptr %jl_value_t** %4, i64 11, !dbg !4154
store %jl_value_t* %384, %jl_value_t** %423, !dbg !4154
%424 = getelementptr %jl_value_t** %4, i64 7, !dbg !4154
%425 = call %jl_value_t* %418(%jl_value_t* %407, %jl_value_t** %424, i32 5), !dbg !4154
%426 = getelementptr %jl_value_t** %4, i64 7, !dbg !4154
store %jl_value_t* %425, %jl_value_t** %426, !dbg !4154
%427 = getelementptr %jl_value_t** %4, i64 6, !dbg !4154
%428 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140217038181600 to %jl_value_t*), %jl_value_t** %427, i32 2), !dbg !4154
store %jl_value_t* %428, %jl_value_t** %27, !dbg !4154
%429 = load %jl_value_t** %27, !dbg !4155
%430 = icmp ne %jl_value_t* %429, null, !dbg !4155
br i1 %430, label %ok66, label %err65, !dbg !4155
err65: ; preds = %isf64
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140217014368368 to %jl_value_t*)), !dbg !4155
br label %ok66, !dbg !4155
ok66: ; preds = %err65, %isf64
%431 = getelementptr %jl_value_t** %3, i32 1, !dbg !4155
%432 = load %jl_value_t** %431, !dbg !4155
%433 = bitcast %jl_value_t* %432 to %jl_value_t**, !dbg !4155
store %jl_value_t** %433, %jl_value_t*** @jl_pgcstack, !dbg !4155
ret %jl_value_t* %429, !dbg !4155
ret67: ; No predecessors!
br label %L68, !dbg !4155
L68: ; preds = %ret67, %L33
unreachable, !dbg !4155
}
Illegal instruction: 4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment