Diff
checker
テキスト
テキスト
画像
ドキュメント
Excel
フォルダ
Legal
Enterprise
デスクトップ
料金
ログイン
Diffchecker デスクトップのダウンロード
テキスト比較
2 つのテキスト ファイルの違いを見つける
ツール
履歴
ライブエディター
未変更行を折りたたむ
折り返しなし
レイアウト
分割
統合
比較精度
スマート
単語
文字
シンタックスハイライト
構文を選択
無視
テキスト変換
最初の差分へ移動
入力を編集
Diffchecker Desktop
Diffcheckerを実行する最も安全な方法。Diffchecker Desktopアプリを入手:あなたの差分はコンピューターから出ることはありません!
Desktopを入手
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` @ array.jl:631 @ array.jl:636
; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:636
br label %L29
br label %L29
L29: ; preds = %L28
L29: ; preds = %L28
; @ array.jl:629 within `zeros` @ array.jl:631
; @ array.jl:629 within `zeros` @ array.jl:631
br label %L30
br label %L30
L30: ; preds = %L29
L30: ; preds = %L29
; @ array.jl:629 within `zeros`
; @ array.jl:629 within `zeros`
コピー
コピー済み
コピー
コピー済み
ret {}* %
4
ret {}* %
6
oob: ; preds = %L13
oob: ; preds = %L13
; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:635
; @ array.jl:629 within `zeros` @ array.jl:631 @ array.jl:635
; ┌ @ array.jl:393 within `fill!`
; ┌ @ array.jl:393 within `fill!`
; │┌ @ array.jl:1019 within `setindex!`
; │┌ @ array.jl:1019 within `setindex!`
%errorbox = alloca i64, i64 1, align 8
%errorbox = alloca i64, i64 1, align 8
コピー
コピー済み
コピー
コピー済み
%
25
= getelementptr inbounds i64, i64* %errorbox, i64 0
%
39
= getelementptr inbounds i64, i64* %errorbox, i64 0
store i64 %value_phi3, i64* %
25
, align 8
store i64 %value_phi3, i64* %
39
, align 8
call void @ijl_bounds_error_ints({}* %
4
, i64* %errorbox, i64 1)
call void @ijl_bounds_error_ints({}* %
6
, i64* %errorbox, i64 1)
unreachable
unreachable
idxend: ; preds = %L13
idxend: ; preds = %L13
コピー
コピー済み
コピー
コピー済み
%
26
= bitcast {}* %
4
to { i8*, i64, i16, i16, i32 }*
%
40
= bitcast {}* %
6
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_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
%.data = load i8*, i8** %.data_ptr, align 8
コピー
コピー済み
コピー
コピー済み
%
27
= bitcast i8* %.data to double*
%
41
= bitcast i8* %.data to double*
%memcpy_refined_dst7 = getelementptr inbounds double, double* %
27
, i64 %
17
%memcpy_refined_dst7 = getelementptr inbounds double, double* %
41
, i64 %
27
%
28
= load double, double* @_j_const1, align 8
%
42
= load double, double* @_j_const1, align 8
store double %
28
, double* %memcpy_refined_dst7, align 8
store double %
42
, double* %memcpy_refined_dst7, align 8
; │└
; │└
; │ @ array.jl:394 within `fill!`
; │ @ array.jl:394 within `fill!`
; │┌ @ range.jl:901 within `iterate`
; │┌ @ range.jl:901 within `iterate`
; ││┌ @ promotion.jl:521 within `==`
; ││┌ @ promotion.jl:521 within `==`
コピー
コピー済み
コピー
コピー済み
%29
= icmp eq i64 %value_phi4, %.length
%"*Core.===#6" = load {}*, {}** @"*Core.===#6", align 8
%
30
= zext i1 %
29
to i8
%43 = bitcast {}* %"*Core.===#6" to {}**
%44 = getelementptr inbounds {}*, {}** %43, i64 0
%45
= icmp eq i64 %value_phi4, %.length
%
46
= zext i1 %
45
to i8
; ││└
; ││└
コピー
コピー済み
コピー
コピー済み
%
31
= trunc i8 %
30
to i1
%
47
= trunc i8 %
46
to i1
%
32
= xor i1 %
31
, true
%
48
= xor i1 %
47
, true
br i1 %
32
, label %L19, label %L18
br i1 %
48
, label %L19, label %L18
; └└
; └└
}
}
保存された差分
原文
ファイルを開く
; @ 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 ; └└ }
違いを見つける