Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
显示
视图
拆分
统一
实时编辑器
隐藏空白更改
折叠未更改行
关闭换行
比对精度
智能
语法
无
更改外观
处理
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
JIT vs Imaging mode
创建于
3年前
差异永不过期
清除
导出
分享
解释
66 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
161 行
全部复制
90 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
185 行
全部复制
; @ array.jl:629 within `zeros`
; @ array.jl:629 within `zeros`
复制
已复制
复制
已复制
define nonnull {}* @julia_zeros_1
3
1(i64 signext %"dims[1]::Int64") #0 {
define nonnull {}* @julia_zeros_1
5
1(i64 signext %"dims[1]::Int64") #0 {
top:
top:
%dims = alloca [1 x i64], align 8
%dims = alloca [1 x i64], align 8
%newstruct = alloca [1 x i64], align 8
%newstruct = alloca [1 x i64], align 8
%pgcstack = call {}*** @julia.get_pgcstack()
%pgcstack = call {}*** @julia.get_pgcstack()
%0 = bitcast {}*** %pgcstack to {}**
%0 = bitcast {}*** %pgcstack to {}**
%current_task = getelementptr inbounds {}*, {}** %0, i64 -14
%current_task = getelementptr inbounds {}*, {}** %0, i64 -14
%1 = bitcast {}** %current_task to i64*
%1 = bitcast {}** %current_task to i64*
%world_age = getelementptr inbounds i64, i64* %1, i64 15
%world_age = getelementptr inbounds i64, i64* %1, i64 15
%2 = getelementptr inbounds [1 x i64], [1 x i64]* %newstruct, i32 0, i32 0
%2 = getelementptr inbounds [1 x i64], [1 x i64]* %newstruct, i32 0, i32 0
store i64 %"dims[1]::Int64", i64* %2, align 8
store i64 %"dims[1]::Int64", i64* %2, align 8
%memcpy_refined_src = getelementptr inbounds [1 x i64], [1 x i64]* %newstruct, i32 0, i32 0
%memcpy_refined_src = getelementptr inbounds [1 x i64], [1 x i64]* %newstruct, i32 0, i32 0
%memcpy_refined_dst = getelementptr inbounds [1 x i64], [1 x i64]* %dims, i32 0, i32 0
%memcpy_refined_dst = getelementptr inbounds [1 x i64], [1 x i64]* %dims, i32 0, i32 0
%3 = load i64, i64* %memcpy_refined_src, align 8
%3 = load i64, i64* %memcpy_refined_src, align 8
store i64 %3, i64* %memcpy_refined_dst, align 8
store i64 %3, i64* %memcpy_refined_dst, align 8
; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:634
; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:634
; ┌ @ boot.jl:484 within `Array`
; ┌ @ boot.jl:484 within `Array`
复制
已复制
复制
已复制
%"*Core.getfield#1" = load {}*, {}** @"*Core.getfield#1", align 8
%4 = bitcast {}* %"*Core.getfield#1" to {}**
%5 = getelementptr inbounds {}*, {}** %4, i64 0
%"dims.<unknown field>_ptr" = getelementptr inbounds [1 x i64], [1 x i64]* %dims, i32 0, i32 0
%"dims.<unknown field>_ptr" = getelementptr inbounds [1 x i64], [1 x i64]* %dims, i32 0, i32 0
; │ @ boot.jl:484 within `Array` @ boot.jl:475
; │ @ boot.jl:484 within `Array` @ boot.jl:475
%"dims.<unknown field>_ptr.unbox" = load i64, i64* %"dims.<unknown field>_ptr", align 8
%"dims.<unknown field>_ptr.unbox" = load i64, i64* %"dims.<unknown field>_ptr", align 8
复制
已复制
复制
已复制
%
4
= call nonnull {}* inttoptr (i64
140036589843104
to {}* ({}*, i64)*)({}* inttoptr (i64
140036228716336
to {}*), i64 %"dims.<unknown field>_ptr.unbox")
%
6
= call nonnull {}* inttoptr (i64
139718400307872
to {}* ({}*, i64)*)({}* inttoptr (i64
139718039246640
to {}*), i64 %"dims.<unknown field>_ptr.unbox")
; └
; └
; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:635
; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:635
; ┌ @ array.jl:392 within `fill!`
; ┌ @ array.jl:392 within `fill!`
; │┌ @ abstractarray.jl:318 within `eachindex`
; │┌ @ abstractarray.jl:318 within `eachindex`
; ││┌ @ abstractarray.jl:134 within `axes1`
; ││┌ @ abstractarray.jl:134 within `axes1`
; │││┌ @ abstractarray.jl:98 within `axes`
; │││┌ @ abstractarray.jl:98 within `axes`
; ││││┌ @ array.jl:191 within `size`
; ││││┌ @ array.jl:191 within `size`
复制
已复制
复制
已复制
%5 = bitcast {}* %4
to { i8*, i64, i16, i16, i32 }*
%"*Core.arraysize#2" = load {}*, {}** @"*Core.arraysize#2", align 8
%.length_ptr = getelementptr inbounds { i8*, i64, i16, i16, i32 }, { i8*, i64, i16, i16, i32 }* %
5
, i32 0, i32 1
%7 = bitcast {}* %"*Core.arraysize#2" to {}**
%8 = getelementptr inbounds {}*, {}** %7, i64 0
%9 = bitcast {}* %6
to { i8*, i64, i16, i16, i32 }*
%.length_ptr = getelementptr inbounds { i8*, i64, i16, i16, i32 }, { i8*, i64, i16, i16, i32 }* %
9
, i32 0, i32 1
%.length = load i64, i64* %.length_ptr, align 8
%.length = load i64, i64* %.length_ptr, align 8
; │└└└└
; │└└└└
; │┌ @ range.jl:897 within `iterate`
; │┌ @ range.jl:897 within `iterate`
; ││┌ @ range.jl:674 within `isempty`
; ││┌ @ range.jl:674 within `isempty`
; │││┌ @ operators.jl:378 within `>`
; │││┌ @ operators.jl:378 within `>`
; ││││┌ @ int.jl:83 within `<`
; ││││┌ @ int.jl:83 within `<`
复制
已复制
复制
已复制
%6
= icmp slt i64 %.length, 1
%"*Core.Intrinsics.slt_int#3" = load {}*, {}** @"*Core.Intrinsics.slt_int#3", align 8
%10 = bitcast {}* %"*Core.Intrinsics.slt_int#3" to {}**
%11 = getelementptr inbounds {}*, {}** %10, i64 0
%12
= icmp slt i64 %.length, 1
; ││└└└
; ││└└└
复制
已复制
复制
已复制
%
7
= zext i1 %
6
to i8
%
13
= zext i1 %
12
to i8
%
8
= trunc i8 %
7
to i1
%
14
= trunc i8 %
13
to i1
%
9
= xor i1 %
8
, true
%
15
= xor i1 %
14
, true
br i1 %
9
, label %L7, label %L6
br i1 %
15
, label %L7, label %L6
L6: ; preds = %top
L6: ; preds = %top
br label %L8
br label %L8
L7: ; preds = %top
L7: ; preds = %top
br label %L8
br label %L8
L8: ; preds = %L7, %L6
L8: ; preds = %L7, %L6
%value_phi = phi i8 [ 1, %L6 ], [ 0, %L7 ]
%value_phi = phi i8 [ 1, %L6 ], [ 0, %L7 ]
%value_phi1 = phi i64 [ 1, %L7 ], [ undef, %L6 ]
%value_phi1 = phi i64 [ 1, %L7 ], [ undef, %L6 ]
%value_phi2 = phi i64 [ 1, %L7 ], [ undef, %L6 ]
%value_phi2 = phi i64 [ 1, %L7 ], [ undef, %L6 ]
; │└
; │└
复制
已复制
复制
已复制
%10
= trunc i8 %value_phi to i1
%"*Core.Intrinsics.not_int#4" = load {}*, {}** @"*Core.Intrinsics.not_int#4", align 8
%
11
= xor i1 %
10
, true
%16 = bitcast {}* %"*Core.Intrinsics.not_int#4" to {}**
%
12
= zext i1 %
11
to i8
%17 = getelementptr inbounds {}*, {}** %16, i64 0
%
13
= trunc i8 %
12
to i1
%18
= trunc i8 %value_phi to i1
%
14
= xor i1 %
13
, true
%
19
= xor i1 %
18
, true
br i1 %
14
, label %L27, label %L8.L13_crit_edge
%
20
= zext i1 %
19
to i8
%
21
= trunc i8 %
20
to i1
%
22
= xor i1 %
21
, true
br i1 %
22
, label %L27, label %L8.L13_crit_edge
L8.L13_crit_edge: ; preds = %L8
L8.L13_crit_edge: ; preds = %L8
; │┌ @ range.jl:897 within `iterate`
; │┌ @ range.jl:897 within `iterate`
br label %L13
br label %L13
L13: ; preds = %L26, %L8.L13_crit_edge
L13: ; preds = %L26, %L8.L13_crit_edge
%value_phi3 = phi i64 [ %value_phi1, %L8.L13_crit_edge ], [ %value_phi8, %L26 ]
%value_phi3 = phi i64 [ %value_phi1, %L8.L13_crit_edge ], [ %value_phi8, %L26 ]
%value_phi4 = phi i64 [ %value_phi2, %L8.L13_crit_edge ], [ %value_phi9, %L26 ]
%value_phi4 = phi i64 [ %value_phi2, %L8.L13_crit_edge ], [ %value_phi9, %L26 ]
; │└
; │└
; │ @ array.jl:393 within `fill!`
; │ @ array.jl:393 within `fill!`
; │┌ @ array.jl:1019 within `setindex!`
; │┌ @ array.jl:1019 within `setindex!`
复制
已复制
复制
已复制
%15
= sub i64 %value_phi3, 1
%"*Core.arrayset#5" = load {}*, {}** @"*Core.arrayset#5", align 8
%
16
= mul i64 %
15
, 1
%23 = bitcast {}* %"*Core.arrayset#5" to {}**
%
17
= add i64 0, %
16
%24 = getelementptr inbounds {}*, {}** %23, i64 0
%
18
= bitcast {}* %
4
to { i8*, i64, i16, i16, i32 }*
%25
= sub i64 %value_phi3, 1
%.length_ptr5 = getelementptr inbounds { i8*, i64, i16, i16, i32 }, { i8*, i64, i16, i16, i32 }* %
18
, i32 0, i32 1
%
26
= mul i64 %
25
, 1
%
27
= add i64 0, %
26
%
28
= bitcast {}* %
6
to { i8*, i64, i16, i16, i32 }*
%.length_ptr5 = getelementptr inbounds { i8*, i64, i16, i16, i32 }, { i8*, i64, i16, i16, i32 }* %
28
, i32 0, i32 1
%.length6 = load i64, i64* %.length_ptr5, align 8
%.length6 = load i64, i64* %.length_ptr5, align 8
复制
已复制
复制
已复制
%inbounds = icmp ult i64 %
17
, %.length6
%inbounds = icmp ult i64 %
27
, %.length6
br i1 %inbounds, label %idxend, label %oob
br i1 %inbounds, label %idxend, label %oob
L18: ; preds = %idxend
L18: ; preds = %idxend
; │└
; │└
; │ @ array.jl:394 within `fill!`
; │ @ array.jl:394 within `fill!`
; │┌ @ range.jl:901 within `iterate`
; │┌ @ range.jl:901 within `iterate`
br label %L21
br label %L21
L19: ; preds = %idxend
L19: ; preds = %idxend
; ││ @ range.jl:902 within `iterate`
; ││ @ range.jl:902 within `iterate`
; ││┌ @ int.jl:87 within `+`
; ││┌ @ int.jl:87 within `+`
复制
已复制
复制
已复制
%19 =
add i64 %value_phi4, 1
%"*Core.Intrinsics.add_int#7" = load {}*, {}** @"*Core.Intrinsics.add_int#7", align 8
%29 = bitcast {}* %"*Core.Intrinsics.add_int#7" to {}**
%30 = getelementptr inbounds {}*, {}** %29, i64 0
%31 =
add i64 %value_phi4, 1
; ││└
; ││└
; ││ @ range.jl:901 within `iterate`
; ││ @ range.jl:901 within `iterate`
br label %L21
br label %L21
L21: ; preds = %L19, %L18
L21: ; preds = %L19, %L18
复制
已复制
复制
已复制
%value_phi8 = phi i64 [ %
19
, %L19 ], [ undef, %L18 ]
%value_phi8 = phi i64 [ %
31
, %L19 ], [ undef, %L18 ]
%value_phi9 = phi i64 [ %
19
, %L19 ], [ undef, %L18 ]
%value_phi9 = phi i64 [ %
31
, %L19 ], [ undef, %L18 ]
%value_phi10 = phi i8 [ 1, %L18 ], [ 0, %L19 ]
%value_phi10 = phi i8 [ 1, %L18 ], [ 0, %L19 ]
; │└
; │└
复制
已复制
复制
已复制
%20
= trunc i8 %value_phi10 to i1
%"*Core.Intrinsics.not_int#411" = load {}*, {}** @"*Core.Intrinsics.not_int#4", align 8
%
21
= xor i1 %
20
, true
%32 = bitcast {}* %"*Core.Intrinsics.not_int#411" to {}**
%
22
= zext i1 %
21
to i8
%33 = getelementptr inbounds {}*, {}** %32, i64 0
%
23
= trunc i8 %
22
to i1
%34
= trunc i8 %value_phi10 to i1
%
24
= xor i1 %
23
, true
%
35
= xor i1 %
34
, true
br i1 %
24
, label %L27, label %L26
%
36
= zext i1 %
35
to i8
%
37
= trunc i8 %
36
to i1
%
38
= xor i1 %
37
, true
br i1 %
38
, label %L27, label %L26
L26: ; preds = %L21
L26: ; preds = %L21
; │ @ array.jl:392 within `fill!`
; │ @ array.jl:392 within `fill!`
; │┌ @ range.jl:897 within `iterate`
; │┌ @ range.jl:897 within `iterate`
br label %L13
br label %L13
L27: ; preds = %L21, %L8
L27: ; preds = %L21, %L8
; │└
; │└
; │ @ array.jl:395 within `fill!`
; │ @ array.jl:395 within `fill!`
br label %L28
br label %L28
L28: ; preds = %L27
L28: ; preds = %L27
已保存差异
原始文本
打开文件
; @ array.jl:629 within `zeros` define nonnull {}* @julia_zeros_131(i64 signext %"dims[1]::Int64") #0 { top: %dims = alloca [1 x i64], align 8 %newstruct = alloca [1 x i64], align 8 %pgcstack = call {}*** @julia.get_pgcstack() %0 = bitcast {}*** %pgcstack to {}** %current_task = getelementptr inbounds {}*, {}** %0, i64 -14 %1 = bitcast {}** %current_task to i64* %world_age = getelementptr inbounds i64, i64* %1, i64 15 %2 = getelementptr inbounds [1 x i64], [1 x i64]* %newstruct, i32 0, i32 0 store i64 %"dims[1]::Int64", i64* %2, align 8 %memcpy_refined_src = getelementptr inbounds [1 x i64], [1 x i64]* %newstruct, i32 0, i32 0 %memcpy_refined_dst = getelementptr inbounds [1 x i64], [1 x i64]* %dims, i32 0, i32 0 %3 = load i64, i64* %memcpy_refined_src, align 8 store i64 %3, i64* %memcpy_refined_dst, align 8 ; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:634 ; ┌ @ boot.jl:484 within `Array` %"dims.<unknown field>_ptr" = getelementptr inbounds [1 x i64], [1 x i64]* %dims, i32 0, i32 0 ; │ @ boot.jl:484 within `Array` @ boot.jl:475 %"dims.<unknown field>_ptr.unbox" = load i64, i64* %"dims.<unknown field>_ptr", align 8 %4 = call nonnull {}* inttoptr (i64 140036589843104 to {}* ({}*, i64)*)({}* inttoptr (i64 140036228716336 to {}*), i64 %"dims.<unknown field>_ptr.unbox") ; └ ; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:635 ; ┌ @ array.jl:392 within `fill!` ; │┌ @ abstractarray.jl:318 within `eachindex` ; ││┌ @ abstractarray.jl:134 within `axes1` ; │││┌ @ abstractarray.jl:98 within `axes` ; ││││┌ @ array.jl:191 within `size` %5 = bitcast {}* %4 to { i8*, i64, i16, i16, i32 }* %.length_ptr = getelementptr inbounds { i8*, i64, i16, i16, i32 }, { i8*, i64, i16, i16, i32 }* %5, i32 0, i32 1 %.length = load i64, i64* %.length_ptr, align 8 ; │└└└└ ; │┌ @ range.jl:897 within `iterate` ; ││┌ @ range.jl:674 within `isempty` ; │││┌ @ operators.jl:378 within `>` ; ││││┌ @ int.jl:83 within `<` %6 = icmp slt i64 %.length, 1 ; ││└└└ %7 = zext i1 %6 to i8 %8 = trunc i8 %7 to i1 %9 = xor i1 %8, true br i1 %9, label %L7, label %L6 L6: ; preds = %top br label %L8 L7: ; preds = %top br label %L8 L8: ; preds = %L7, %L6 %value_phi = phi i8 [ 1, %L6 ], [ 0, %L7 ] %value_phi1 = phi i64 [ 1, %L7 ], [ undef, %L6 ] %value_phi2 = phi i64 [ 1, %L7 ], [ undef, %L6 ] ; │└ %10 = trunc i8 %value_phi to i1 %11 = xor i1 %10, true %12 = zext i1 %11 to i8 %13 = trunc i8 %12 to i1 %14 = xor i1 %13, true br i1 %14, label %L27, label %L8.L13_crit_edge L8.L13_crit_edge: ; preds = %L8 ; │┌ @ range.jl:897 within `iterate` br label %L13 L13: ; preds = %L26, %L8.L13_crit_edge %value_phi3 = phi i64 [ %value_phi1, %L8.L13_crit_edge ], [ %value_phi8, %L26 ] %value_phi4 = phi i64 [ %value_phi2, %L8.L13_crit_edge ], [ %value_phi9, %L26 ] ; │└ ; │ @ array.jl:393 within `fill!` ; │┌ @ array.jl:1019 within `setindex!` %15 = sub i64 %value_phi3, 1 %16 = mul i64 %15, 1 %17 = add i64 0, %16 %18 = bitcast {}* %4 to { i8*, i64, i16, i16, i32 }* %.length_ptr5 = getelementptr inbounds { i8*, i64, i16, i16, i32 }, { i8*, i64, i16, i16, i32 }* %18, i32 0, i32 1 %.length6 = load i64, i64* %.length_ptr5, align 8 %inbounds = icmp ult i64 %17, %.length6 br i1 %inbounds, label %idxend, label %oob L18: ; preds = %idxend ; │└ ; │ @ array.jl:394 within `fill!` ; │┌ @ range.jl:901 within `iterate` br label %L21 L19: ; preds = %idxend ; ││ @ range.jl:902 within `iterate` ; ││┌ @ int.jl:87 within `+` %19 = add i64 %value_phi4, 1 ; ││└ ; ││ @ range.jl:901 within `iterate` br label %L21 L21: ; preds = %L19, %L18 %value_phi8 = phi i64 [ %19, %L19 ], [ undef, %L18 ] %value_phi9 = phi i64 [ %19, %L19 ], [ undef, %L18 ] %value_phi10 = phi i8 [ 1, %L18 ], [ 0, %L19 ] ; │└ %20 = trunc i8 %value_phi10 to i1 %21 = xor i1 %20, true %22 = zext i1 %21 to i8 %23 = trunc i8 %22 to i1 %24 = xor i1 %23, true br i1 %24, label %L27, label %L26 L26: ; preds = %L21 ; │ @ array.jl:392 within `fill!` ; │┌ @ range.jl:897 within `iterate` br label %L13 L27: ; preds = %L21, %L8 ; │└ ; │ @ array.jl:395 within `fill!` br label %L28 L28: ; preds = %L27 ; └ ; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:636 br label %L29 L29: ; preds = %L28 ; @ array.jl:629 within `zeros` @ array.jl:631 br label %L30 L30: ; preds = %L29 ; @ array.jl:629 within `zeros` ret {}* %4 oob: ; preds = %L13 ; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:635 ; ┌ @ array.jl:393 within `fill!` ; │┌ @ array.jl:1019 within `setindex!` %errorbox = alloca i64, i64 1, align 8 %25 = getelementptr inbounds i64, i64* %errorbox, i64 0 store i64 %value_phi3, i64* %25, align 8 call void @ijl_bounds_error_ints({}* %4, i64* %errorbox, i64 1) unreachable idxend: ; preds = %L13 %26 = bitcast {}* %4 to { i8*, i64, i16, i16, i32 }* %.data_ptr = getelementptr inbounds { i8*, i64, i16, i16, i32 }, { i8*, i64, i16, i16, i32 }* %26, i32 0, i32 0 %.data = load i8*, i8** %.data_ptr, align 8 %27 = bitcast i8* %.data to double* %memcpy_refined_dst7 = getelementptr inbounds double, double* %27, i64 %17 %28 = load double, double* @_j_const1, align 8 store double %28, double* %memcpy_refined_dst7, align 8 ; │└ ; │ @ array.jl:394 within `fill!` ; │┌ @ range.jl:901 within `iterate` ; ││┌ @ promotion.jl:521 within `==` %29 = icmp eq i64 %value_phi4, %.length %30 = zext i1 %29 to i8 ; ││└ %31 = trunc i8 %30 to i1 %32 = xor i1 %31, true br i1 %32, label %L19, label %L18 ; └└ }
更改后文本
打开文件
; @ array.jl:629 within `zeros` define nonnull {}* @julia_zeros_151(i64 signext %"dims[1]::Int64") #0 { top: %dims = alloca [1 x i64], align 8 %newstruct = alloca [1 x i64], align 8 %pgcstack = call {}*** @julia.get_pgcstack() %0 = bitcast {}*** %pgcstack to {}** %current_task = getelementptr inbounds {}*, {}** %0, i64 -14 %1 = bitcast {}** %current_task to i64* %world_age = getelementptr inbounds i64, i64* %1, i64 15 %2 = getelementptr inbounds [1 x i64], [1 x i64]* %newstruct, i32 0, i32 0 store i64 %"dims[1]::Int64", i64* %2, align 8 %memcpy_refined_src = getelementptr inbounds [1 x i64], [1 x i64]* %newstruct, i32 0, i32 0 %memcpy_refined_dst = getelementptr inbounds [1 x i64], [1 x i64]* %dims, i32 0, i32 0 %3 = load i64, i64* %memcpy_refined_src, align 8 store i64 %3, i64* %memcpy_refined_dst, align 8 ; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:634 ; ┌ @ boot.jl:484 within `Array` %"*Core.getfield#1" = load {}*, {}** @"*Core.getfield#1", align 8 %4 = bitcast {}* %"*Core.getfield#1" to {}** %5 = getelementptr inbounds {}*, {}** %4, i64 0 %"dims.<unknown field>_ptr" = getelementptr inbounds [1 x i64], [1 x i64]* %dims, i32 0, i32 0 ; │ @ boot.jl:484 within `Array` @ boot.jl:475 %"dims.<unknown field>_ptr.unbox" = load i64, i64* %"dims.<unknown field>_ptr", align 8 %6 = call nonnull {}* inttoptr (i64 139718400307872 to {}* ({}*, i64)*)({}* inttoptr (i64 139718039246640 to {}*), i64 %"dims.<unknown field>_ptr.unbox") ; └ ; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:635 ; ┌ @ array.jl:392 within `fill!` ; │┌ @ abstractarray.jl:318 within `eachindex` ; ││┌ @ abstractarray.jl:134 within `axes1` ; │││┌ @ abstractarray.jl:98 within `axes` ; ││││┌ @ array.jl:191 within `size` %"*Core.arraysize#2" = load {}*, {}** @"*Core.arraysize#2", align 8 %7 = bitcast {}* %"*Core.arraysize#2" to {}** %8 = getelementptr inbounds {}*, {}** %7, i64 0 %9 = bitcast {}* %6 to { i8*, i64, i16, i16, i32 }* %.length_ptr = getelementptr inbounds { i8*, i64, i16, i16, i32 }, { i8*, i64, i16, i16, i32 }* %9, i32 0, i32 1 %.length = load i64, i64* %.length_ptr, align 8 ; │└└└└ ; │┌ @ range.jl:897 within `iterate` ; ││┌ @ range.jl:674 within `isempty` ; │││┌ @ operators.jl:378 within `>` ; ││││┌ @ int.jl:83 within `<` %"*Core.Intrinsics.slt_int#3" = load {}*, {}** @"*Core.Intrinsics.slt_int#3", align 8 %10 = bitcast {}* %"*Core.Intrinsics.slt_int#3" to {}** %11 = getelementptr inbounds {}*, {}** %10, i64 0 %12 = icmp slt i64 %.length, 1 ; ││└└└ %13 = zext i1 %12 to i8 %14 = trunc i8 %13 to i1 %15 = xor i1 %14, true br i1 %15, label %L7, label %L6 L6: ; preds = %top br label %L8 L7: ; preds = %top br label %L8 L8: ; preds = %L7, %L6 %value_phi = phi i8 [ 1, %L6 ], [ 0, %L7 ] %value_phi1 = phi i64 [ 1, %L7 ], [ undef, %L6 ] %value_phi2 = phi i64 [ 1, %L7 ], [ undef, %L6 ] ; │└ %"*Core.Intrinsics.not_int#4" = load {}*, {}** @"*Core.Intrinsics.not_int#4", align 8 %16 = bitcast {}* %"*Core.Intrinsics.not_int#4" to {}** %17 = getelementptr inbounds {}*, {}** %16, i64 0 %18 = trunc i8 %value_phi to i1 %19 = xor i1 %18, true %20 = zext i1 %19 to i8 %21 = trunc i8 %20 to i1 %22 = xor i1 %21, true br i1 %22, label %L27, label %L8.L13_crit_edge L8.L13_crit_edge: ; preds = %L8 ; │┌ @ range.jl:897 within `iterate` br label %L13 L13: ; preds = %L26, %L8.L13_crit_edge %value_phi3 = phi i64 [ %value_phi1, %L8.L13_crit_edge ], [ %value_phi8, %L26 ] %value_phi4 = phi i64 [ %value_phi2, %L8.L13_crit_edge ], [ %value_phi9, %L26 ] ; │└ ; │ @ array.jl:393 within `fill!` ; │┌ @ array.jl:1019 within `setindex!` %"*Core.arrayset#5" = load {}*, {}** @"*Core.arrayset#5", align 8 %23 = bitcast {}* %"*Core.arrayset#5" to {}** %24 = getelementptr inbounds {}*, {}** %23, i64 0 %25 = sub i64 %value_phi3, 1 %26 = mul i64 %25, 1 %27 = add i64 0, %26 %28 = bitcast {}* %6 to { i8*, i64, i16, i16, i32 }* %.length_ptr5 = getelementptr inbounds { i8*, i64, i16, i16, i32 }, { i8*, i64, i16, i16, i32 }* %28, i32 0, i32 1 %.length6 = load i64, i64* %.length_ptr5, align 8 %inbounds = icmp ult i64 %27, %.length6 br i1 %inbounds, label %idxend, label %oob L18: ; preds = %idxend ; │└ ; │ @ array.jl:394 within `fill!` ; │┌ @ range.jl:901 within `iterate` br label %L21 L19: ; preds = %idxend ; ││ @ range.jl:902 within `iterate` ; ││┌ @ int.jl:87 within `+` %"*Core.Intrinsics.add_int#7" = load {}*, {}** @"*Core.Intrinsics.add_int#7", align 8 %29 = bitcast {}* %"*Core.Intrinsics.add_int#7" to {}** %30 = getelementptr inbounds {}*, {}** %29, i64 0 %31 = add i64 %value_phi4, 1 ; ││└ ; ││ @ range.jl:901 within `iterate` br label %L21 L21: ; preds = %L19, %L18 %value_phi8 = phi i64 [ %31, %L19 ], [ undef, %L18 ] %value_phi9 = phi i64 [ %31, %L19 ], [ undef, %L18 ] %value_phi10 = phi i8 [ 1, %L18 ], [ 0, %L19 ] ; │└ %"*Core.Intrinsics.not_int#411" = load {}*, {}** @"*Core.Intrinsics.not_int#4", align 8 %32 = bitcast {}* %"*Core.Intrinsics.not_int#411" to {}** %33 = getelementptr inbounds {}*, {}** %32, i64 0 %34 = trunc i8 %value_phi10 to i1 %35 = xor i1 %34, true %36 = zext i1 %35 to i8 %37 = trunc i8 %36 to i1 %38 = xor i1 %37, true br i1 %38, label %L27, label %L26 L26: ; preds = %L21 ; │ @ array.jl:392 within `fill!` ; │┌ @ range.jl:897 within `iterate` br label %L13 L27: ; preds = %L21, %L8 ; │└ ; │ @ array.jl:395 within `fill!` br label %L28 L28: ; preds = %L27 ; └ ; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:636 br label %L29 L29: ; preds = %L28 ; @ array.jl:629 within `zeros` @ array.jl:631 br label %L30 L30: ; preds = %L29 ; @ array.jl:629 within `zeros` ret {}* %6 oob: ; preds = %L13 ; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:635 ; ┌ @ array.jl:393 within `fill!` ; │┌ @ array.jl:1019 within `setindex!` %errorbox = alloca i64, i64 1, align 8 %39 = getelementptr inbounds i64, i64* %errorbox, i64 0 store i64 %value_phi3, i64* %39, align 8 call void @ijl_bounds_error_ints({}* %6, i64* %errorbox, i64 1) unreachable idxend: ; preds = %L13 %40 = bitcast {}* %6 to { i8*, i64, i16, i16, i32 }* %.data_ptr = getelementptr inbounds { i8*, i64, i16, i16, i32 }, { i8*, i64, i16, i16, i32 }* %40, i32 0, i32 0 %.data = load i8*, i8** %.data_ptr, align 8 %41 = bitcast i8* %.data to double* %memcpy_refined_dst7 = getelementptr inbounds double, double* %41, i64 %27 %42 = load double, double* @_j_const1, align 8 store double %42, double* %memcpy_refined_dst7, align 8 ; │└ ; │ @ array.jl:394 within `fill!` ; │┌ @ range.jl:901 within `iterate` ; ││┌ @ promotion.jl:521 within `==` %"*Core.===#6" = load {}*, {}** @"*Core.===#6", align 8 %43 = bitcast {}* %"*Core.===#6" to {}** %44 = getelementptr inbounds {}*, {}** %43, i64 0 %45 = icmp eq i64 %value_phi4, %.length %46 = zext i1 %45 to i8 ; ││└ %47 = trunc i8 %46 to i1 %48 = xor i1 %47, true br i1 %48, label %L19, label %L18 ; └└ }
查找差异