Assembly Diffs

linux arm

Diffs are based on 2,239,390 contexts (829,328 MinOpts, 1,410,062 FullOpts).

MISSED contexts: 71,274 (3.08%)

Overall (+0 bytes)

Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch 243,880,786 +0

FullOpts (+0 bytes)

Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.linux.arm.Release.mch 122,911,654 +0

Example diffs

libraries_tests.run.linux.arm.Release.mch

+0 (0.00%) : 456386.dasm - System.__DTString:SkipWhiteSpaces():this (Tier1)

@@ -60,7 +60,7 @@ G_M9890_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0030 {r4 r5}, by ; byrRegs +[r3] ldr r2, [r3+0x04] cmp r0, r2
- bhs SHORT G_M9890_IG11
+ bhs SHORT G_M9890_IG10
ldr r3, [r3] lsls r0, r0, 1 ldrh r6, [r3+r0] @@ -114,20 +114,18 @@ G_M9890_IG09: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefR adds r3, r3, 1 ldr r2, [r4+0x10] cmp r3, r2
- blt SHORT G_M9890_IG03 - ;; size=16 bbWeight=1 PerfScore 8.00 -G_M9890_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ bge SHORT G_M9890_IG08 + b SHORT G_M9890_IG03 + ;; size=18 bbWeight=1 PerfScore 9.00 +G_M9890_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[r4-r5]
- b SHORT G_M9890_IG08 - ;; size=2 bbWeight=0.50 PerfScore 0.50 -G_M9890_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r3, 0xd1ff movt r3, 0xd1ff blx r3 // CORINFO_HELP_RNGCHKFAIL bkpt ;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 144, prolog size 8, PerfScore 52.00, instruction count 57, allocated bytes for code 144 (MethodHash=4fd7d95d) for method System.__DTString:SkipWhiteSpaces():this (Tier1)
+; Total bytes of code 144, prolog size 8, PerfScore 52.50, instruction count 57, allocated bytes for code 144 (MethodHash=4fd7d95d) for method System.__DTString:SkipWhiteSpaces():this (Tier1)
; ============================================================ Unwind Info:

+0 (0.00%) : 306823.dasm - System.Globalization.CompareInfo:StartsWithOrdinalHelper(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort],int,uint):ubyte:this (Tier1)

@@ -95,7 +95,7 @@ G_M3596_IG04: ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ldrb r0, [r4+0x18] cmp r0, 0
- beq G_M3596_IG32
+ beq G_M3596_IG31
ands r0, r5, 4 cmp r0, 0 beq SHORT G_M3596_IG05 @@ -273,19 +273,15 @@ G_M3596_IG30: ; bbWeight=0.01, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, by movt r2, 0xd1ff ldrb r2, [r2+r8] cmp r2, 0
- bne SHORT G_M3596_IG19 - ;; size=16 bbWeight=0.01 PerfScore 0.04 -G_M3596_IG31: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r4] - b SHORT G_M3596_IG24 - ;; size=2 bbWeight=0.00 PerfScore 0.00 -G_M3596_IG32: ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[r4]
+ beq SHORT G_M3596_IG24 + b SHORT G_M3596_IG19 + ;; size=18 bbWeight=0.01 PerfScore 0.04 +G_M3596_IG31: ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
movs r0, 0 b SHORT G_M3596_IG06 ;; size=4 bbWeight=0 PerfScore 0.00
-; Total bytes of code 372, prolog size 22, PerfScore 10265.49, instruction count 144, allocated bytes for code 372 (MethodHash=795ef1f3) for method System.Globalization.CompareInfo:StartsWithOrdinalHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,uint):ubyte:this (Tier1)
+; Total bytes of code 372, prolog size 22, PerfScore 10265.50, instruction count 144, allocated bytes for code 372 (MethodHash=795ef1f3) for method System.Globalization.CompareInfo:StartsWithOrdinalHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,uint):ubyte:this (Tier1)
; ============================================================ Unwind Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.arm.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.linux.arm.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.arm.checked.mch 0 0 0 0 -0 +0
libraries.crossgen2.linux.arm.checked.mch 0 0 0 0 -0 +0
libraries.pmi.linux.arm.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.linux.arm.Release.mch 2 0 0 2 -0 +0
librariestestsnotieredcompilation.run.linux.arm.Release.mch 0 0 0 0 -0 +0
realworld.run.linux.arm.checked.mch 0 0 0 0 -0 +0
2 0 0 2 -0 +0

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm.checked.mch 45,964 5,344 40,620 1,203 (2.55%) 1,203 (2.55%)
benchmarks.run_pgo.linux.arm.checked.mch 159,513 56,729 102,784 3,201 (1.97%) 3,201 (1.97%)
benchmarks.run_tiered.linux.arm.checked.mch 80,099 43,607 36,492 1,086 (1.34%) 1,086 (1.34%)
coreclr_tests.run.linux.arm.checked.mch 471,992 259,195 212,797 7,171 (1.50%) 7,171 (1.50%)
libraries.crossgen2.linux.arm.checked.mch 188,191 14 188,177 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm.checked.mch 272,360 6 272,354 7,786 (2.78%) 7,786 (2.78%)
libraries_tests.run.linux.arm.Release.mch 710,231 442,672 267,559 16,195 (2.23%) 16,195 (2.23%)
librariestestsnotieredcompilation.run.linux.arm.Release.mch 274,633 21,604 253,029 33,224 (10.79%) 33,224 (10.79%)
realworld.run.linux.arm.checked.mch 36,407 157 36,250 1,408 (3.72%) 1,408 (3.72%)
2,239,390 829,328 1,410,062 71,274 (3.08%) 71,274 (3.08%)

jit-analyze output

libraries_tests.run.linux.arm.Release.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 243880786 (overridden on cmd)
Total bytes of diff: 243880786 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



0 total files with Code Size differences (0 improved, 0 regressed), 2 unchanged.

0 total methods with Code Size differences (0 improved, 0 regressed).



windows x86

Diffs are based on 2,293,451 contexts (839,658 MinOpts, 1,453,793 FullOpts).

MISSED contexts: 45 (0.00%)

Overall (+0 bytes)

Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch 186,683,551 +0

FullOpts (+0 bytes)

Collection Base size (bytes) Diff size (bytes)
libraries_tests.run.windows.x86.Release.mch 88,409,851 +0

Example diffs

libraries_tests.run.windows.x86.Release.mch

+0 (0.00%) : 394483.dasm - System.__DTString:SkipWhiteSpaces():this (Tier1)

@@ -56,7 +56,7 @@ G_M9890_IG03: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {es lea eax, bword ptr [esi+0x0C] ; byrRegs +[eax] cmp ecx, dword ptr [eax+0x04]
- jae SHORT G_M9890_IG09
+ jae SHORT G_M9890_IG08
mov eax, bword ptr [eax] movzx edi, word ptr [eax+2*ecx] cmp edi, 256 @@ -93,17 +93,15 @@ G_M9890_IG07: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, by mov eax, dword ptr [esi+0x04] inc eax cmp eax, dword ptr [esi+0x10]
- jl SHORT G_M9890_IG03 - ;; size=12 bbWeight=1 PerfScore 9.25 -G_M9890_IG08: ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+ jge SHORT G_M9890_IG06 + jmp SHORT G_M9890_IG03 + ;; size=14 bbWeight=1 PerfScore 11.25 +G_M9890_IG08: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
; byrRegs -[esi]
- jmp SHORT G_M9890_IG06 - ;; size=2 bbWeight=0.50 PerfScore 1.00 -G_M9890_IG09: ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 106, prolog size 5, PerfScore 48.50, instruction count 41, allocated bytes for code 106 (MethodHash=4fd7d95d) for method System.__DTString:SkipWhiteSpaces():this (Tier1)
+; Total bytes of code 106, prolog size 5, PerfScore 49.50, instruction count 41, allocated bytes for code 106 (MethodHash=4fd7d95d) for method System.__DTString:SkipWhiteSpaces():this (Tier1)
; ============================================================

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.x86.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.windows.x86.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.windows.x86.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.windows.x86.checked.mch 0 0 0 0 -0 +0
libraries.crossgen2.windows.x86.checked.mch 0 0 0 0 -0 +0
libraries.pmi.windows.x86.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.windows.x86.Release.mch 1 0 0 1 -0 +0
librariestestsnotieredcompilation.run.windows.x86.Release.mch 0 0 0 0 -0 +0
realworld.run.windows.x86.checked.mch 0 0 0 0 -0 +0
1 0 0 1 -0 +0

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x86.checked.mch 24,492 4 24,488 1 (0.00%) 1 (0.00%)
benchmarks.run_pgo.windows.x86.checked.mch 117,805 41,904 75,901 2 (0.00%) 2 (0.00%)
benchmarks.run_tiered.windows.x86.checked.mch 47,882 28,747 19,135 1 (0.00%) 1 (0.00%)
coreclr_tests.run.windows.x86.checked.mch 574,647 319,847 254,800 21 (0.00%) 21 (0.00%)
libraries.crossgen2.windows.x86.checked.mch 242,615 15 242,600 4 (0.00%) 4 (0.00%)
libraries.pmi.windows.x86.checked.mch 305,766 6 305,760 7 (0.00%) 7 (0.00%)
libraries_tests.run.windows.x86.Release.mch 627,828 427,222 200,606 5 (0.00%) 5 (0.00%)
librariestestsnotieredcompilation.run.windows.x86.Release.mch 316,432 21,910 294,522 3 (0.00%) 3 (0.00%)
realworld.run.windows.x86.checked.mch 35,984 3 35,981 1 (0.00%) 1 (0.00%)
2,293,451 839,658 1,453,793 45 (0.00%) 45 (0.00%)

jit-analyze output

libraries_tests.run.windows.x86.Release.mch

To reproduce these diffs on Windows x86: superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 186683551 (overridden on cmd)
Total bytes of diff: 186683551 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.

0 total methods with Code Size differences (0 improved, 0 regressed).