Diff
checker
Text
Text
Bilder
Dokumente
Excel
Ordner
Legal
Enterprise
Desktop-App
Preise
Einloggen
Diffchecker Desktop herunterladen
Texte vergleichen
Finde den Unterschied zwischen zwei Textdateien
Werkzeuge
Verlauf
Live-Editor
Gleiches ausblenden
Zeilenumbruch aus
Ansicht
Zweispaltig
Einspaltig
Vergleichsgenauigkeit
Intelligent
Wort
Zeichen
Syntaxhervorhebung
Syntax auswählen
Ignorieren
Text umwandeln
Zur ersten Änderung
Eingabe bearbeiten
Diffchecker Desktop
Der sicherste Weg, Diffchecker zu nutzen. Hol dir die Desktop-App: Deine Diffs verlassen nie deinen Computer!
Desktop holen
JIT vs Imaging mode
Erstellt
vor 3 Jahren
Diff läuft nie ab
Löschen
Exportieren
Teilen
Erklären
66 Entfernungen
Zeilen
Gesamt
Entfernt
Zeichen
Gesamt
Entfernt
Um diese Funktion weiterhin zu nutzen, aktualisiere auf
Diff
checker
Pro
Preise anzeigen
161 Zeilen
Kopieren
90 Hinzufügungen
Zeilen
Gesamt
Hinzugefügt
Zeichen
Gesamt
Hinzugefügt
Um diese Funktion weiterhin zu nutzen, aktualisiere auf
Diff
checker
Pro
Preise anzeigen
185 Zeilen
Kopieren
; @ array.jl:629 within `zeros`
; @ array.jl:629 within `zeros`
Kopieren
Kopiert
Kopieren
Kopiert
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`
Kopieren
Kopiert
Kopieren
Kopiert
%"*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
Kopieren
Kopiert
Kopieren
Kopiert
%
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`
Kopieren
Kopiert
Kopieren
Kopiert
%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 `<`
Kopieren
Kopiert
Kopieren
Kopiert
%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
; ││└└└
; ││└└└
Kopieren
Kopiert
Kopieren
Kopiert
%
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 ]
; │└
; │└
Kopieren
Kopiert
Kopieren
Kopiert
%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!`
Kopieren
Kopiert
Kopieren
Kopiert
%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
Kopieren
Kopiert
Kopieren
Kopiert
%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 `+`
Kopieren
Kopiert
Kopieren
Kopiert
%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
Kopieren
Kopiert
Kopieren
Kopiert
%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 ]
; │└
; │└
Kopieren
Kopiert
Kopieren
Kopiert
%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`
Kopieren
Kopiert
Kopieren
Kopiert
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
Kopieren
Kopiert
Kopieren
Kopiert
%
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
Kopieren
Kopiert
Kopieren
Kopiert
%
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
Kopieren
Kopiert
Kopieren
Kopiert
%
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 `==`
Kopieren
Kopiert
Kopieren
Kopiert
%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
; ││└
; ││└
Kopieren
Kopiert
Kopieren
Kopiert
%
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
; └└
; └└
}
}
Gespeicherte Diffs
Originaltext
Datei öffnen
; @ 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 ; └└ }
Bearbeitung
Datei öffnen
; @ 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 ; └└ }
Unterschied finden