Assembly Diffs

linux arm64

Diffs are based on 2,552,933 contexts (1,022,261 MinOpts, 1,530,672 FullOpts).

MISSED contexts: 1,300 (0.05%)

Overall (-24 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 79,023,784 +0
coreclr_tests.run.linux.arm64.checked.mch 525,847,368 +0
libraries_tests.run.linux.arm64.Release.mch 382,591,448 -24

FullOpts (-24 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 52,190,036 +0
coreclr_tests.run.linux.arm64.checked.mch 169,015,828 +0
libraries_tests.run.linux.arm64.Release.mch 166,098,176 -24

Example diffs

benchmarks.run_pgo.linux.arm64.checked.mch

-4 (-0.53%) : 127862.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -51,22 +51,22 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz bl <unknown method> ; gcr arg pop 0
- cbz w0, G_M35244_IG15
+ cbz w0, G_M35244_IG23
ldr w1, [x19, #0x28] mov w0, #0xD1FFAB1E tst w1, w0
- bne G_M35244_IG15
+ bne G_M35244_IG23
;; size=24 bbWeight=1 PerfScore 7.00 G_M35244_IG03: ; bbWeight=2.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldrb w20, [x19, #0x2E] sub w1, w20, #3 cmp w1, #5
- bls G_M35244_IG25
+ bls G_M35244_IG19
;; size=16 bbWeight=2.00 PerfScore 10.00 G_M35244_IG04: ; bbWeight=2.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz sub w1, w20, #24 cmp w1, #10
- bhi G_M35244_IG15
+ bhi G_M35244_IG23
mov w1, w1 adr x0, [@RWD00] ldr w0, [x0, x1, LSL #2] @@ -77,7 +77,7 @@ G_M35244_IG04: ; bbWeight=2.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, G_M35244_IG05: ; bbWeight=1.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x20, [x19, #0x08] ; gcrRegs +[x20]
- cbz x20, G_M35244_IG11
+ cbz x20, G_M35244_IG10
;; size=8 bbWeight=1.00 PerfScore 4.00 G_M35244_IG06: ; bbWeight=0.71, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz mov x1, x20 @@ -88,7 +88,7 @@ G_M35244_IG06: ; bbWeight=0.71, gcrefRegs=180000 {x19 x20}, byrefRegs=000 bl CORINFO_HELP_ISINSTANCEOFCLASS ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- cbnz x0, G_M35244_IG10
+ cbnz x0, G_M35244_IG25
mov w21, #1 ;; size=28 bbWeight=0.71 PerfScore 3.22 G_M35244_IG07: ; bbWeight=1.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz @@ -96,7 +96,7 @@ G_M35244_IG07: ; bbWeight=1.00, gcrefRegs=180000 {x19 x20}, byrefRegs=000 sub w22, w21, #1 mov x23, x20 ; gcrRegs +[x23]
- cbz x23, G_M35244_IG12
+ cbz x23, G_M35244_IG11
;; size=12 bbWeight=1.00 PerfScore 2.00 G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz ldr x0, [x23] @@ -104,27 +104,21 @@ G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=980000 {x19 x20 x23}, byrefRegs movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1
- beq G_M35244_IG12
+ beq G_M35244_IG11
;; size=24 bbWeight=0.50 PerfScore 3.00 G_M35244_IG09: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref ; gcrRegs -[x23]
- b G_M35244_IG17
+ b G_M35244_IG26
;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M35244_IG10: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x0] - ldr w21, [x0, #0x10] - b G_M35244_IG07 - ;; size=8 bbWeight=0 PerfScore 0.00 -G_M35244_IG11: ; bbWeight=0.29, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0]
+G_M35244_IG10: ; bbWeight=0.29, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov w21, wzr b G_M35244_IG07 ;; size=8 bbWeight=0.29 PerfScore 0.43
-G_M35244_IG12: ; bbWeight=1.00, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=1.00, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x23]
- cbz x23, G_M35244_IG17
+ cbz x23, G_M35244_IG26
;; size=4 bbWeight=1.00 PerfScore 1.00
-G_M35244_IG13: ; bbWeight=1.00, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=1.00, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20] ldrb w0, [x23, #0x2E] sub w1, w0, #26 @@ -132,23 +126,121 @@ G_M35244_IG13: ; bbWeight=1.00, gcrefRegs=880000 {x19 x23}, byrefRegs=000 cmp w0, #24 ccmp w1, #1, z, ne ccmp w2, #1, z, hi
- bls G_M35244_IG18
+ bls G_M35244_IG27
;; size=28 bbWeight=1.00 PerfScore 6.50
-G_M35244_IG14: ; bbWeight=1.00, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
+G_M35244_IG13: ; bbWeight=1.00, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] mov x19, x23 ; gcrRegs +[x19] b G_M35244_IG03 ;; size=8 bbWeight=1.00 PerfScore 1.50
-G_M35244_IG15: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19 x23]
+G_M35244_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; gcrRegs -[x23] + mov x0, x19 + ; gcrRegs +[x0] + movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:ChildCount():int:this + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x1, [x1] + blr x1 + ; gcrRegs -[x0] + ; gcr arg pop 0 + sxtw w20, w0 + mov w21, #1 + b G_M35244_IG16 + ;; size=36 bbWeight=0 PerfScore 0.00 +G_M35244_IG15: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + mov x0, x19 + ; gcrRegs +[x0] + mov w1, w21 + movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:Child(int):System.Text.RegularExpressions.RegexNode:this + movk x2, #0xD1FFAB1E LSL #16 + movk x2, #0xD1FFAB1E LSL #32 + ldr x2, [x2] + blr x2 + ; gcr arg pop 0 + movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x1, [x1] + ldr wzr, [x0] + blr x1 + ; gcrRegs -[x0] + ; gcr arg pop 0 + add w21, w21, #1 + ;; size=56 bbWeight=0 PerfScore 0.00 +G_M35244_IG16: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + cmp w21, w20 + blt G_M35244_IG15 + ldrb w0, [x19, #0x2E] + cmp w0, #34 + beq G_M35244_IG23 + b G_M35244_IG24 + ;; size=24 bbWeight=0 PerfScore 0.00 +G_M35244_IG17: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ldr w0, [x19, #0x20] + str w0, [x19, #0x24] + ;; size=8 bbWeight=0 PerfScore 0.00 +G_M35244_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + ldr w0, [x19, #0x24] + cmp w0, #1 + beq G_M35244_IG24 + mov x0, x19 + ; gcrRegs +[x0] + movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x1, [x1] + blr x1 + ; gcrRegs -[x19] + ; gcr arg pop 0 + mov x19, x0 + ; gcrRegs +[x19] + cbz x19, G_M35244_IG23 + ldrb w20, [x19, #0x2E] + sub w0, w20, #3 + ; gcrRegs -[x0] + cmp w0, #5 + bhi G_M35244_IG04 + ;; size=60 bbWeight=0 PerfScore 0.00 +G_M35244_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + mov x0, x19 + ; gcrRegs +[x0] + movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x1, [x1] + ;; size=20 bbWeight=0 PerfScore 0.00 +G_M35244_IG20: ; bbWeight=0, epilog, nogc, extend + ldr x23, [sp, #0x38] + ldp x21, x22, [sp, #0x28] + ldp x19, x20, [sp, #0x18] + ldp fp, lr, [sp], #0x40 + br x1 + ; gcr arg pop 0 + ;; size=20 bbWeight=0 PerfScore 0.00 +G_M35244_IG21: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[x0 x19] + movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + blr x0 + ; gcr arg pop 0 + brk_unix #0 + ;; size=24 bbWeight=0 PerfScore 0.00 +G_M35244_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + bl CORINFO_HELP_RNGCHKFAIL + ; gcr arg pop 0 + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M35244_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ldr x23, [sp, #0x38] ldp x21, x22, [sp, #0x28] ldp x19, x20, [sp, #0x18] ldp fp, lr, [sp], #0x40 ret lr
- ;; size=20 bbWeight=0.01 PerfScore 0.08 -G_M35244_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=20 bbWeight=0 PerfScore 0.00 +G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19] mov x0, x19 ; gcrRegs +[x0] @@ -164,8 +256,13 @@ G_M35244_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 ; gcrRegs +[x19] b G_M35244_IG03 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x0] +[x20]
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref + ; gcrRegs +[x20] + ldr w21, [x0, #0x10] + b G_M35244_IG07 + ;; size=8 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0]
mov x1, x20 ; gcrRegs +[x1] movz x0, #0xD1FFAB1E @@ -176,30 +273,30 @@ G_M35244_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ; gcr arg pop 0 ldr w1, [x0, #0x10] cmp w22, w1
- bhs G_M35244_IG27
+ bhs G_M35244_IG21
ldr x0, [x0, #0x08] ldr w1, [x0, #0x08] cmp w22, w1
- bhs G_M35244_IG28
+ bhs G_M35244_IG22
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] ldr x23, [x0, w22, UXTW #3] ; gcrRegs +[x23]
- b G_M35244_IG13
+ b G_M35244_IG12
...

+0 (0.00%) : 30717.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)

@@ -69,22 +69,17 @@ G_M417_IG03: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 ldr x3, [x3] blr x3 ; gcrRegs -[x0-x1 x19]
- ;; size=36 bbWeight=0.60 PerfScore 7.47 -G_M417_IG04: ; bbWeight=0.70, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc - ldp x21, x22, [sp, #0x40] - ldp x19, x20, [sp, #0x30] - ldp fp, lr, [sp], #0x50 - ret lr - ;; size=16 bbWeight=0.70 PerfScore 2.79 -G_M417_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+ b G_M417_IG07 + ;; size=40 bbWeight=0.60 PerfScore 8.07 +G_M417_IG04: ; bbWeight=0.10, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21] mov x22, x20 ; gcrRegs +[x22] ldr w0, [x20, #0x28] cmp w0, #2
- bne G_M417_IG07
+ bne G_M417_IG06
;; size=16 bbWeight=0.10 PerfScore 0.50
-G_M417_IG06: ; bbWeight=0.80, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.80, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldr x0, [x22, #0x10] ; gcrRegs +[x0] mov x1, x21 @@ -101,9 +96,9 @@ G_M417_IG06: ; bbWeight=0.80, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRe ldr x22, [x22, #0x18] ldr w0, [x22, #0x28] cmp w0, #2
- beq G_M417_IG06
+ beq G_M417_IG05
;; size=52 bbWeight=0.80 PerfScore 16.03
-G_M417_IG07: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG06: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
mov x0, x22 ; gcrRegs +[x0] mov x1, x21 @@ -116,12 +111,17 @@ G_M417_IG07: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRe ldr x3, [x3] blr x3 ; gcrRegs -[x0-x2 x19 x21-x22]
- b G_M417_IG04 - ;; size=36 bbWeight=0.10 PerfScore 0.80 -G_M417_IG08: ; bbWeight=0.40, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=0.10 PerfScore 0.70 +G_M417_IG07: ; bbWeight=0.70, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc + ldp x21, x22, [sp, #0x40] + ldp x19, x20, [sp, #0x30] + ldp fp, lr, [sp], #0x50 + ret lr + ;; size=16 bbWeight=0.70 PerfScore 2.79 +G_M417_IG08: ; bbWeight=0.40, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19 x21] cmp w22, #17
- bhi G_M417_IG04
+ bhi G_M417_IG07
mov w0, w22 adr x1, [@RWD00] ldr w1, [x1, x0, LSL #2] @@ -142,7 +142,7 @@ G_M417_IG09: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 ldr x3, [x3] blr x3 ; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00 G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x19 x21] @@ -204,7 +204,7 @@ G_M417_IG14: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs= ldr x4, [x4] blr x4 ; gcrRegs -[x1-x3 x19 x21-x22]
- b G_M417_IG04
+ b G_M417_IG07
;; size=36 bbWeight=0 PerfScore 0.00 G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref ; gcrRegs +[x19 x21] @@ -221,7 +221,7 @@ G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 ldr wzr, [x0] blr x3 ; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00 G_M417_IG16: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref ; gcrRegs +[x19 x21] @@ -251,7 +251,7 @@ G_M417_IG16: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 ldr wzr, [x0] blr x3 ; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=76 bbWeight=0 PerfScore 0.00 G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref ; gcrRegs +[x19 x21] @@ -267,29 +267,29 @@ G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 ldr x3, [x3] blr x3 ; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+RWD00 dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG05 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02
dd G_M417_IG15 - G_M417_IG02 dd G_M417_IG16 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02 dd G_M417_IG09 - G_M417_IG02 dd G_M417_IG09 - G_M417_IG02 dd G_M417_IG09 - G_M417_IG02 dd G_M417_IG17 - G_M417_IG02 dd G_M417_IG17 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG15 - G_M417_IG02
-; Total bytes of code 608, prolog size 20, PerfScore 43.12, instruction count 152, allocated bytes for code 608 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
+; Total bytes of code 608, prolog size 20, PerfScore 43.61, instruction count 152, allocated bytes for code 608 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
; ============================================================ Unwind Info:

+0 (0.00%) : 90462.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)

@@ -50,7 +50,7 @@ G_M417_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n ;; size=32 bbWeight=1 PerfScore 6.00 G_M417_IG02: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz bl <unknown method>
- cbz w0, G_M417_IG13
+ cbz w0, G_M417_IG12
ldr w22, [x20, #0x28] cmp w22, #1 bne G_M417_IG08 @@ -69,22 +69,17 @@ G_M417_IG03: ; bbWeight=0.59, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 ldr x3, [x3] blr x3 ; gcrRegs -[x0-x1 x19]
- ;; size=36 bbWeight=0.59 PerfScore 7.38 -G_M417_IG04: ; bbWeight=0.71, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc - ldp x21, x22, [sp, #0x40] - ldp x19, x20, [sp, #0x30] - ldp fp, lr, [sp], #0x50 - ret lr - ;; size=16 bbWeight=0.71 PerfScore 2.82 -G_M417_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+ b G_M417_IG07 + ;; size=40 bbWeight=0.59 PerfScore 7.97 +G_M417_IG04: ; bbWeight=0.10, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21] mov x22, x20 ; gcrRegs +[x22] ldr w0, [x20, #0x28] cmp w0, #2
- bne G_M417_IG07
+ bne G_M417_IG06
;; size=16 bbWeight=0.10 PerfScore 0.49
-G_M417_IG06: ; bbWeight=0.79, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.79, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldr x0, [x22, #0x10] ; gcrRegs +[x0] mov x1, x21 @@ -101,9 +96,9 @@ G_M417_IG06: ; bbWeight=0.79, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRe ldr x22, [x22, #0x18] ldr w0, [x22, #0x28] cmp w0, #2
- beq G_M417_IG06
+ beq G_M417_IG05
;; size=52 bbWeight=0.79 PerfScore 15.72
-G_M417_IG07: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG06: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
mov x0, x22 ; gcrRegs +[x0] mov x1, x21 @@ -116,12 +111,17 @@ G_M417_IG07: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRe ldr x3, [x3] blr x3 ; gcrRegs -[x0-x2 x19 x21-x22]
- b G_M417_IG04 - ;; size=36 bbWeight=0.10 PerfScore 0.78 -G_M417_IG08: ; bbWeight=0.41, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=0.10 PerfScore 0.69 +G_M417_IG07: ; bbWeight=0.71, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc + ldp x21, x22, [sp, #0x40] + ldp x19, x20, [sp, #0x30] + ldp fp, lr, [sp], #0x50 + ret lr + ;; size=16 bbWeight=0.71 PerfScore 2.82 +G_M417_IG08: ; bbWeight=0.41, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19 x21] cmp w22, #17
- bhi G_M417_IG04
+ bhi G_M417_IG07
mov w0, w22 adr x1, [@RWD00] ldr w1, [x1, x0, LSL #2] @@ -143,7 +143,7 @@ G_M417_IG09: ; bbWeight=0.02, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0 ldr wzr, [x0] blr x3 ; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0.02 PerfScore 0.23 G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref ; gcrRegs +[x19 x21] @@ -173,25 +173,9 @@ G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 ldr wzr, [x0] blr x3 ; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=76 bbWeight=0 PerfScore 0.00 G_M417_IG11: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19 x21] - ldr x1, [x21, #0x80] - ; gcrRegs +[x1] - ldrsb wzr, [x19] - add x2, fp, #16 // [V14 tmp9] - mov x0, x19 - ; gcrRegs +[x0] - movz x3, #0xD1FFAB1E // code for <unknown method> - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - ; gcrRegs -[x0-x1 x19 x21] - b G_M417_IG04 - ;; size=40 bbWeight=0 PerfScore 0.00 -G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21] ldr x1, [x21, #0x88] ; gcrRegs +[x1] @@ -205,25 +189,25 @@ G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 ldr x3, [x3] blr x3 ; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
-G_M417_IG13: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21] ldr x0, [x20] ldr x1, [x0, #0x38] ldr x1, [x1] ldr x1, [x1, #0x40]
- cbz x1, G_M417_IG14 - b G_M417_IG15
+ cbz x1, G_M417_IG13 + b G_M417_IG14
;; size=24 bbWeight=0 PerfScore 0.00
-G_M417_IG14: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M417_IG13: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_RUNTIMEHANDLE_CLASS mov x1, x0 ;; size=20 bbWeight=0 PerfScore 0.00
-G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M417_IG14: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
mov x0, x1 bl CORINFO_HELP_NEWSFAST ; gcrRegs +[x0] @@ -244,17 +228,17 @@ G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 ldr x1, [x0, #0x38] ldr x1, [x1] ldr x2, [x1, #0x48]
- cbz x2, G_M417_IG16
+ cbz x2, G_M417_IG15
mov x0, x2
- b G_M417_IG17
+ b G_M417_IG16
;; size=76 bbWeight=0 PerfScore 0.00
-G_M417_IG16: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG15: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_RUNTIMEHANDLE_CLASS ;; size=16 bbWeight=0 PerfScore 0.00
-G_M417_IG17: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG16: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
mov x1, x22 ; gcrRegs +[x1] mov x2, x21 @@ -267,29 +251,45 @@ G_M417_IG17: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs= ldr x4, [x4] blr x4 ; gcrRegs -[x1-x3 x19 x21-x22]
- b G_M417_IG04
+ b G_M417_IG07
;; size=36 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref + ; gcrRegs +[x19 x21] + ldr x1, [x21, #0x80] + ; gcrRegs +[x1] + ldrsb wzr, [x19] + add x2, fp, #16 // [V14 tmp9] + mov x0, x19 + ; gcrRegs +[x0] + movz x3, #0xD1FFAB1E // code for <unknown method> + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #0xD1FFAB1E LSL #32 + ldr x3, [x3] + blr x3 + ; gcrRegs -[x0-x1 x19 x21] + b G_M417_IG07 + ;; size=40 bbWeight=0 PerfScore 0.00 +RWD00 dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG05 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02 dd G_M417_IG10 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG12 - G_M417_IG02 - dd G_M417_IG12 - G_M417_IG02 - dd G_M417_IG12 - G_M417_IG02 - dd G_M417_IG12 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG11 - G_M417_IG02 dd G_M417_IG11 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG11 - G_M417_IG02 + dd G_M417_IG11 - G_M417_IG02 + dd G_M417_IG17 - G_M417_IG02 + dd G_M417_IG17 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
-; Total bytes of code 608, prolog size 20, PerfScore 43.00, instruction count 152, allocated bytes for code 608 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
+; Total bytes of code 608, prolog size 20, PerfScore 43.49, instruction count 152, allocated bytes for code 608 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
; ============================================================ Unwind Info:

+0 (0.00%) : 24559.dasm - System.Text.RegularExpressions.RegexCompiler+<>cDisplayClass158_0:gEmitNode|12(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)

@@ -56,19 +56,19 @@ G_M17183_IG02: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00 ldr w0, [x0, #0x20] ; gcrRegs -[x0] cmp w0, #19
- beq G_M17183_IG24
+ beq G_M17183_IG09
;; size=24 bbWeight=1 PerfScore 13.50 G_M17183_IG03: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz bl <unknown method>
- cbz w0, G_M17183_IG29
+ cbz w0, G_M17183_IG14
ldr w3, [x19, #0x28]
- tbnz w3, #6, G_M17183_IG30
+ tbnz w3, #6, G_M17183_IG15
;; size=16 bbWeight=1 PerfScore 6.00 G_M17183_IG04: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz ldrb w3, [x19, #0x2E] sub w23, w3, #3 cmp w23, #22
- bne G_M17183_IG07
+ bne G_M17183_IG06
;; size=16 bbWeight=1 PerfScore 5.00 G_M17183_IG05: ; bbWeight=0.56, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref uxtb w3, w21 @@ -84,18 +84,12 @@ G_M17183_IG05: ; bbWeight=0.56, gcrefRegs=580000 {x19 x20 x22}, byrefRegs ldr x4, [x4] blr x4 ; gcrRegs -[x0-x2 x19-x20 x22]
- ;; size=36 bbWeight=0.56 PerfScore 4.21 -G_M17183_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ldr x23, [sp, #0x58] - ldp x21, x22, [sp, #0x48] - ldp x19, x20, [sp, #0x38] - ldp fp, lr, [sp], #0x60 - ret lr - ;; size=20 bbWeight=1 PerfScore 6.00 -G_M17183_IG07: ; bbWeight=0.44, gcVars=0000000000000000 {}, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, gcvars, byref, isz
+ b G_M17183_IG08 + ;; size=40 bbWeight=0.56 PerfScore 4.77 +G_M17183_IG06: ; bbWeight=0.44, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x20 x22] cmp w23, #43
- bhi G_M17183_IG06
+ bhi G_M17183_IG08
mov w2, w23 adr x0, [@RWD00] ldr w0, [x0, x2, LSL #2] @@ -103,7 +97,7 @@ G_M17183_IG07: ; bbWeight=0.44, gcVars=0000000000000000 {}, gcrefRegs=580 add x0, x0, x1 br x0 ;; size=32 bbWeight=0.44 PerfScore 3.29
-G_M17183_IG08: ; bbWeight=0.44, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M17183_IG07: ; bbWeight=0.44, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] uxtb w2, w21 mov x0, x20 @@ -117,257 +111,44 @@ G_M17183_IG08: ; bbWeight=0.44, gcrefRegs=180000 {x19 x20}, byrefRegs=000 ldr x4, [x4] blr x4 ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06 - ;; size=40 bbWeight=0.44 PerfScore 3.73 -G_M17183_IG09: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20 x22] - uxtb w3, w21 - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - mov x2, x22 - ; gcrRegs +[x2] - movz x4, #0xD1FFAB1E // code for <unknown method> - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #0xD1FFAB1E LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x0-x2 x19-x20 x22] - b G_M17183_IG06 - ;; size=40 bbWeight=0 PerfScore 0.00 -G_M17183_IG10: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20 x22] - uxtb w3, w21 - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - mov x2, x22 - ; gcrRegs +[x2] - movz x4, #0xD1FFAB1E // code for <unknown method> - movk x4, #0xD1FFAB1E LSL #16 - movk x4, #0xD1FFAB1E LSL #32 - ldr x4, [x4] - blr x4 - ; gcrRegs -[x0-x2 x19-x20 x22] - b G_M17183_IG06 - ;; size=40 bbWeight=0 PerfScore 0.00 -G_M17183_IG11: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - movz x2, #0xD1FFAB1E // code for <unknown method> - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - blr x2 - ; gcrRegs -[x0-x1 x19-x20] - b G_M17183_IG06 - ;; size=32 bbWeight=0 PerfScore 0.00 -G_M17183_IG12: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - movz x2, #0xD1FFAB1E // code for <unknown method> - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - blr x2 - ; gcrRegs -[x0-x1 x19-x20] - b G_M17183_IG06 - ;; size=32 bbWeight=0 PerfScore 0.00 -G_M17183_IG13: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - movz x2, #0xD1FFAB1E // code for <unknown method> - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - blr x2 - ; gcrRegs -[x0-x1 x19-x20] - b G_M17183_IG06 - ;; size=32 bbWeight=0 PerfScore 0.00 -G_M17183_IG14: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitAlternation|4(System.Text.RegularExpressions.RegexNode):this - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - blr x2 - ; gcrRegs -[x0-x1 x19-x20] - b G_M17183_IG06 - ;; size=32 bbWeight=0 PerfScore 0.00 -G_M17183_IG15: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20 x22] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - mov x2, x22 - ; gcrRegs +[x2] - movz x3, #0xD1FFAB1E // code for <unknown method> - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - ; gcrRegs -[x0-x2 x19-x20 x22] - b G_M17183_IG06 - ;; size=36 bbWeight=0 PerfScore 0.00 -G_M17183_IG16: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - movz x2, #0xD1FFAB1E // code for <unknown method> - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - blr x2 - ; gcrRegs -[x0-x1 x19-x20] - b G_M17183_IG06 - ;; size=32 bbWeight=0 PerfScore 0.00 -G_M17183_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitBackreferenceConditional|6(System.Text.RegularExpressions.RegexNode):this - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - blr x2 - ; gcrRegs -[x0-x1 x19-x20] - b G_M17183_IG06 - ;; size=32 bbWeight=0 PerfScore 0.00 -G_M17183_IG18: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitExpressionConditional|7(System.Text.RegularExpressions.RegexNode):this - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - blr x2 - ; gcrRegs -[x0-x1 x19-x20] - b G_M17183_IG06 - ;; size=32 bbWeight=0 PerfScore 0.00 -G_M17183_IG19: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20 x22] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - mov x2, x22 - ; gcrRegs +[x2] - movz x3, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitCapture|8(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode):this - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - ; gcrRegs -[x0-x2 x19-x20 x22] - b G_M17183_IG06 - ;; size=36 bbWeight=0 PerfScore 0.00 -G_M17183_IG20: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitPositiveLookaroundAssertion|10(System.Text.RegularExpressions.RegexNode):this - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - blr x2 - ; gcrRegs -[x0-x1 x19-x20] - b G_M17183_IG06 - ;; size=32 bbWeight=0 PerfScore 0.00 -G_M17183_IG21: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19-x20] - mov x0, x20 - ; gcrRegs +[x0] - mov x1, x19 - ; gcrRegs +[x1] - movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitNegativeLookaroundAssertion|11(System.Text.RegularExpressions.RegexNode):this - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2]
...

+4 (+0.53%) : 24686.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -20,10 +20,10 @@ ; V08 loc7 [V08,T18] ( 5, 0 ) int -> x21 ; V09 loc8 [V09,T19] ( 3, 0 ) ref -> x19 class-hnd exact <System.Text.RegularExpressions.RegexNode> ;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T17] ( 5, 0 ) ref -> x20 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T17] ( 5, 0 ) ref -> x21 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T13] ( 4, 3.98) int -> x21 "Inline return value spill temp" ; V13 tmp3 [V13,T15] ( 3, 2.79) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T11] ( 6, 5.96) ref -> x21 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T11] ( 6, 5.96) ref -> x20 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T01] ( 4, 13.92) ref -> x22 "CASTCLASS eval op1" ;* V16 tmp6 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode> ; V17 tmp7 [V17,T12] ( 3, 4.41) ref -> x22 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode> @@ -52,22 +52,22 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz bl <unknown method> ; gcr arg pop 0
- cbz w0, G_M35244_IG10
+ cbz w0, G_M35244_IG25
ldr w0, [x19, #0x28] mov w1, #0xD1FFAB1E tst w0, w1
- bne G_M35244_IG10
+ bne G_M35244_IG25
;; size=24 bbWeight=1 PerfScore 7.00 G_M35244_IG03: ; bbWeight=2.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldrb w0, [x19, #0x2E] sub w1, w0, #3 cmp w1, #5
- bls G_M35244_IG24
+ bls G_M35244_IG22
;; size=16 bbWeight=2.99 PerfScore 14.94 G_M35244_IG04: ; bbWeight=2.95, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz sub w20, w0, #24 cmp w20, #10
- bhi G_M35244_IG10
+ bhi G_M35244_IG25
mov w1, w20 adr x0, [@RWD00] ldr w0, [x0, x1, LSL #2] @@ -78,7 +78,7 @@ G_M35244_IG04: ; bbWeight=2.95, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, G_M35244_IG05: ; bbWeight=1.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x20, [x19, #0x08] ; gcrRegs +[x20]
- cbnz x20, G_M35244_IG18
+ cbnz x20, G_M35244_IG10
;; size=8 bbWeight=1.99 PerfScore 7.95 G_M35244_IG06: ; bbWeight=0.97, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref mov w21, wzr @@ -87,7 +87,7 @@ G_M35244_IG07: ; bbWeight=1.99, gcrefRegs=180000 {x19 x20}, byrefRegs=000 sub w21, w21, #1 mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG11
+ cbz x22, G_M35244_IG12
;; size=12 bbWeight=1.99 PerfScore 3.98 G_M35244_IG08: ; bbWeight=0.99, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz ldr x1, [x22] @@ -95,38 +95,68 @@ G_M35244_IG08: ; bbWeight=0.99, gcrefRegs=580000 {x19 x20 x22}, byrefRegs movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 cmp x1, x0
- beq G_M35244_IG11
+ beq G_M35244_IG12
;; size=24 bbWeight=0.99 PerfScore 5.96 G_M35244_IG09: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref ; gcrRegs -[x22]
- b G_M35244_IG12
+ b G_M35244_IG17
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG10: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19-x20] - ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=0.01 PerfScore 0.05 -G_M35244_IG11: ; bbWeight=1.99, gcVars=0000000000000000 {}, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x19-x20 x22] - cbnz x22, G_M35244_IG22
+G_M35244_IG10: ; bbWeight=1.02, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz + mov x1, x20 + ; gcrRegs +[x1] + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + bl CORINFO_HELP_ISINSTANCEOFCLASS + ; gcrRegs -[x1] +[x0] + ; gcr arg pop 0 + cbz x0, G_M35244_IG14 + ;; size=24 bbWeight=1.02 PerfScore 4.06 +G_M35244_IG11: ; bbWeight=0.76, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref + ldr w21, [x0, #0x10] + b G_M35244_IG07 + ;; size=8 bbWeight=0.76 PerfScore 3.03 +G_M35244_IG12: ; bbWeight=1.99, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0] +[x22] + cbz x22, G_M35244_IG17
;; size=4 bbWeight=1.99 PerfScore 1.99
-G_M35244_IG12: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.43, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref + ; gcrRegs -[x20] + mov x20, x22 + ; gcrRegs +[x20] + b G_M35244_IG15 + ;; size=8 bbWeight=0.43 PerfScore 0.65 +G_M35244_IG14: ; bbWeight=0.26, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
+ mov w21, #1 + b G_M35244_IG07 + ;; size=8 bbWeight=0.26 PerfScore 0.38 +G_M35244_IG15: ; bbWeight=1.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz + ldrb w0, [x20, #0x2E] + sub w1, w0, #26 + sub w2, w0, #33 + cmp w0, #24 + ccmp w1, #1, z, ne + ccmp w2, #1, z, hi + bhi G_M35244_IG21 + ;; size=28 bbWeight=1.99 PerfScore 12.92 +G_M35244_IG16: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref + b G_M35244_IG27 + ;; size=4 bbWeight=0.00 PerfScore 0.00 +G_M35244_IG17: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG15
+ cbz x22, G_M35244_IG20
;; size=8 bbWeight=1.55 PerfScore 2.33
-G_M35244_IG13: ; bbWeight=0.78, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.78, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x1, [x22] cmp x1, x0
- beq G_M35244_IG15
+ beq G_M35244_IG20
;; size=24 bbWeight=0.78 PerfScore 4.66
-G_M35244_IG14: ; bbWeight=0.39, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.39, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov x1, x20 ; gcrRegs +[x1] @@ -136,56 +166,59 @@ G_M35244_IG14: ; bbWeight=0.39, gcrefRegs=180000 {x19 x20}, byrefRegs=000 mov x22, x0 ; gcrRegs +[x22] ;; size=12 bbWeight=0.39 PerfScore 0.78
-G_M35244_IG15: ; bbWeight=1.55, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.55, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] ldr w0, [x22, #0x10] cmp w21, w0
- bhs G_M35244_IG26
+ bhs G_M35244_IG34
ldr x0, [x22, #0x08] ; gcrRegs +[x0] ldr w1, [x0, #0x08] cmp w21, w1
- bhs G_M35244_IG27
+ bhs G_M35244_IG24
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0]
- ldr x21, [x0, w21, UXTW #3] - ; gcrRegs +[x21] - ;; size=36 bbWeight=1.55 PerfScore 24.08 -G_M35244_IG16: ; bbWeight=1.99, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x22]
+ ldr x20, [x0, w21, UXTW #3] + ; gcrRegs +[x20] + b G_M35244_IG15 + ;; size=40 bbWeight=1.55 PerfScore 25.63 +G_M35244_IG21: ; bbWeight=1.99, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref + ; gcrRegs -[x19 x22]
; byrRegs -[x0]
- ldrb w0, [x21, #0x2E] - sub w1, w0, #26 - sub w2, w0, #33 - cmp w0, #24 - ccmp w1, #1, z, ne - ccmp w2, #1, z, hi - bls G_M35244_IG28 - ;; size=28 bbWeight=1.99 PerfScore 12.92 -G_M35244_IG17: ; bbWeight=1.99, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref - ; gcrRegs -[x19] - mov x19, x21
+ mov x19, x20
; gcrRegs +[x19] b G_M35244_IG03 ;; size=8 bbWeight=1.99 PerfScore 2.98
-G_M35244_IG18: ; bbWeight=1.02, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[x21] +[x20] - mov x1, x20 - ; gcrRegs +[x1] - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - bl CORINFO_HELP_ISINSTANCEOFCLASS - ; gcrRegs -[x1] +[x0]
+G_M35244_IG22: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + ; gcrRegs -[x20] + mov x0, x19 + ; gcrRegs +[x0] + movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x1, [x1] + ;; size=20 bbWeight=0.03 PerfScore 0.17 +G_M35244_IG23: ; bbWeight=0.03, epilog, nogc, extend + ldp x21, x22, [sp, #0x20] + ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x30 + br x1
; gcr arg pop 0
- cbz x0, G_M35244_IG23 - ;; size=24 bbWeight=1.02 PerfScore 4.06 -G_M35244_IG19: ; bbWeight=0.76, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref - b G_M35244_IG21 - ;; size=4 bbWeight=0.76 PerfScore 0.76 -G_M35244_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x20]
+ ;; size=16 bbWeight=0.03 PerfScore 0.13 +G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[x0 x19] + bl CORINFO_HELP_RNGCHKFAIL + ; gcr arg pop 0 + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ldp x21, x22, [sp, #0x20] + ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[x19]
mov x0, x19 ; gcrRegs +[x0] mov w1, wzr @@ -200,80 +233,34 @@ G_M35244_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcrRegs +[x19] b G_M35244_IG03 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG21: ; bbWeight=0.76, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref - ; gcrRegs +[x20] - ldr w21, [x0, #0x10] - b G_M35244_IG07 - ;; size=8 bbWeight=0.76 PerfScore 3.03 -G_M35244_IG22: ; bbWeight=0.43, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref - ; gcrRegs -[x0 x20] +[x22]
...

coreclr_tests.run.linux.arm64.checked.mch

+0 (0.00%) : 515469.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -52,30 +52,22 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz bl <unknown method> ; gcr arg pop 0
- cbz w0, G_M35244_IG03
+ cbz w0, G_M35244_IG25
ldr w0, [x19, #0x28] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M35244_IG04
+ bne G_M35244_IG25
;; size=24 bbWeight=1 PerfScore 7.00
-G_M35244_IG03: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=0.67 PerfScore 2.67 -G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x19]
+G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E] sub w1, w0, #3 cmp w1, #5
- bls G_M35244_IG22
+ bls G_M35244_IG21
;; size=16 bbWeight=3 PerfScore 15.00
-G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24 cmp w20, #10
- bhi G_M35244_IG03
+ bhi G_M35244_IG25
mov w1, w20 adr x0, [@RWD00] ldr w0, [x0, x1, LSL #2] @@ -83,12 +75,12 @@ G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by add x0, x0, x2 br x0 ;; size=36 bbWeight=2 PerfScore 16.00
-G_M35244_IG06: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08] ; gcrRegs +[x20]
- cbz x20, G_M35244_IG15
+ cbz x20, G_M35244_IG14
;; size=8 bbWeight=2 PerfScore 8.00
-G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20 ; gcrRegs +[x1] movz x0, #0xD1FFAB1E @@ -97,50 +89,50 @@ G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000 bl CORINFO_HELP_ISINSTANCEOFCLASS ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- cbz x0, G_M35244_IG12
+ cbz x0, G_M35244_IG11
;; size=24 bbWeight=1.55 PerfScore 6.18
-G_M35244_IG08: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10] ;; size=4 bbWeight=1.09 PerfScore 3.27
-G_M35244_IG09: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] sub w21, w21, #1 mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG13
+ cbz x22, G_M35244_IG12
;; size=12 bbWeight=2 PerfScore 4.00
-G_M35244_IG10: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 cmp x1, x0
- beq G_M35244_IG13
+ beq G_M35244_IG12
;; size=24 bbWeight=1 PerfScore 6.00
-G_M35244_IG11: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG10: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- b G_M35244_IG18
+ b G_M35244_IG17
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG12: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov w21, #1
- b G_M35244_IG09
+ b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x22]
- cbz x22, G_M35244_IG18
+ cbz x22, G_M35244_IG17
;; size=4 bbWeight=2 PerfScore 2.00
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] mov x20, x22 ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M35244_IG15: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov w21, wzr
- b G_M35244_IG09
+ b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x20, #0x2E] sub w1, w0, #26 sub w2, w0, #33 @@ -149,26 +141,26 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ccmp w2, #1, z, hi bls G_M35244_IG27 ;; size=28 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] mov x19, x20 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG21
+ cbz x22, G_M35244_IG20
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x1, [x22] cmp x1, x0
- beq G_M35244_IG21
+ beq G_M35244_IG20
;; size=24 bbWeight=0.64 PerfScore 3.84
-G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov x1, x20 ; gcrRegs +[x1] @@ -182,24 +174,24 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=000 mov x22, x0 ; gcrRegs +[x22] ;; size=28 bbWeight=0.32 PerfScore 2.08
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] ldr w0, [x22, #0x10] cmp w21, w0
- bhs G_M35244_IG24
+ bhs G_M35244_IG23
ldr x0, [x22, #0x08] ; gcrRegs +[x0] ldr w1, [x0, #0x08] cmp w21, w1
- bhs G_M35244_IG25
+ bhs G_M35244_IG24
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] ldr x20, [x0, w21, UXTW #3] ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=40 bbWeight=1.28 PerfScore 21.12
-G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20 x22] ; byrRegs -[x0] mov x0, x19 @@ -209,14 +201,14 @@ G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] ;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x20] ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x30 br x1 ; gcr arg pop 0 ;; size=16 bbWeight=1 PerfScore 4.00
-G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x19] movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() movk x0, #0xD1FFAB1E LSL #16 @@ -226,11 +218,17 @@ G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcr arg pop 0 brk_unix #0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ldp x21, x22, [sp, #0x20] + ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19] mov x0, x19 ; gcrRegs +[x0] @@ -244,7 +242,7 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 mov x19, x0 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00 G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] +[x20] @@ -255,7 +253,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ldrb w0, [x0, #0x2E] ; gcrRegs -[x0] cmp w0, #32
- beq G_M35244_IG17
+ beq G_M35244_IG16
;; size=24 bbWeight=0 PerfScore 0.00 G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E @@ -303,7 +301,7 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { blr x3 ; gcrRegs -[x0 x2 x19 x21] ; gcr arg pop 0
- b G_M35244_IG17
+ b G_M35244_IG16
;; size=124 bbWeight=0 PerfScore 0.00 G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x20] +[x19] @@ -345,7 +343,7 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ...

+0 (0.00%) : 531705.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -52,30 +52,22 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz bl <unknown method> ; gcr arg pop 0
- cbz w0, G_M35244_IG03
+ cbz w0, G_M35244_IG25
ldr w0, [x19, #0x28] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M35244_IG04
+ bne G_M35244_IG25
;; size=24 bbWeight=1 PerfScore 7.00
-G_M35244_IG03: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=0.67 PerfScore 2.67 -G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x19]
+G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E] sub w1, w0, #3 cmp w1, #5
- bls G_M35244_IG22
+ bls G_M35244_IG21
;; size=16 bbWeight=3 PerfScore 15.00
-G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24 cmp w20, #10
- bhi G_M35244_IG03
+ bhi G_M35244_IG25
mov w1, w20 adr x0, [@RWD00] ldr w0, [x0, x1, LSL #2] @@ -83,35 +75,35 @@ G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by add x0, x0, x2 br x0 ;; size=36 bbWeight=2 PerfScore 16.00
-G_M35244_IG06: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG05: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs +[x20] mov w21, #1 ;; size=4 bbWeight=0.45 PerfScore 0.23
-G_M35244_IG07: ; bbWeight=2.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=2.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
sub w21, w21, #1 mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG13
+ cbz x22, G_M35244_IG12
;; size=12 bbWeight=2.00 PerfScore 4.00
-G_M35244_IG08: ; bbWeight=1.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG07: ; bbWeight=1.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 cmp x1, x0
- beq G_M35244_IG13
+ beq G_M35244_IG12
;; size=24 bbWeight=1.00 PerfScore 6.00
-G_M35244_IG09: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- b G_M35244_IG18
+ b G_M35244_IG17
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG10: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20] ldr x20, [x19, #0x08] ; gcrRegs +[x20]
- cbz x20, G_M35244_IG15
+ cbz x20, G_M35244_IG14
;; size=8 bbWeight=2 PerfScore 8.00
-G_M35244_IG11: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20 ; gcrRegs +[x1] movz x0, #0xD1FFAB1E @@ -120,28 +112,28 @@ G_M35244_IG11: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000 bl CORINFO_HELP_ISINSTANCEOFCLASS ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- cbz x0, G_M35244_IG06
+ cbz x0, G_M35244_IG05
;; size=24 bbWeight=1.55 PerfScore 6.18
-G_M35244_IG12: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG07
+ b G_M35244_IG06
;; size=8 bbWeight=1.09 PerfScore 4.36
-G_M35244_IG13: ; bbWeight=2.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] +[x22]
- cbz x22, G_M35244_IG18
+ cbz x22, G_M35244_IG17
;; size=4 bbWeight=2.00 PerfScore 2.00
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] mov x20, x22 ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M35244_IG15: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov w21, wzr
- b G_M35244_IG07
+ b G_M35244_IG06
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x20, #0x2E] sub w1, w0, #26 sub w2, w0, #33 @@ -150,26 +142,26 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ccmp w2, #1, z, hi bls G_M35244_IG27 ;; size=28 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] mov x19, x20 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG21
+ cbz x22, G_M35244_IG20
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x1, [x22] cmp x1, x0
- beq G_M35244_IG21
+ beq G_M35244_IG20
;; size=24 bbWeight=0.64 PerfScore 3.84
-G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov x1, x20 ; gcrRegs +[x1] @@ -179,24 +171,24 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=000 mov x22, x0 ; gcrRegs +[x22] ;; size=12 bbWeight=0.32 PerfScore 0.64
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] ldr w0, [x22, #0x10] cmp w21, w0
- bhs G_M35244_IG24
+ bhs G_M35244_IG23
ldr x0, [x22, #0x08] ; gcrRegs +[x0] ldr w1, [x0, #0x08] cmp w21, w1
- bhs G_M35244_IG25
+ bhs G_M35244_IG24
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] ldr x20, [x0, w21, UXTW #3] ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=40 bbWeight=1.28 PerfScore 21.12
-G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20 x22] ; byrRegs -[x0] mov x0, x19 @@ -206,14 +198,14 @@ G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] ;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x20] ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x30 br x1 ; gcr arg pop 0 ;; size=16 bbWeight=1 PerfScore 4.00
-G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x19] movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() movk x0, #0xD1FFAB1E LSL #16 @@ -223,11 +215,17 @@ G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcr arg pop 0 brk_unix #0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ldp x21, x22, [sp, #0x20] + ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19] mov x0, x19 ; gcrRegs +[x0] @@ -241,7 +239,7 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 mov x19, x0 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00 G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] +[x20] @@ -252,7 +250,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ldrb w0, [x0, #0x2E] ; gcrRegs -[x0] cmp w0, #32
- beq G_M35244_IG17
+ beq G_M35244_IG16
;; size=24 bbWeight=0 PerfScore 0.00 G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E @@ -300,7 +298,7 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { blr x3 ; gcrRegs -[x0 x2 x19 x21] ; gcr arg pop 0
- b G_M35244_IG17
+ b G_M35244_IG16
;; size=124 bbWeight=0 PerfScore 0.00 G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x20] +[x19] ...

+0 (0.00%) : 332018.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -52,30 +52,22 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz bl <unknown method> ; gcr arg pop 0
- cbz w0, G_M35244_IG03
+ cbz w0, G_M35244_IG25
ldr w0, [x19, #0x28] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M35244_IG04
+ bne G_M35244_IG25
;; size=24 bbWeight=1 PerfScore 7.00
-G_M35244_IG03: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=0.67 PerfScore 2.67 -G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x19]
+G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E] sub w1, w0, #3 cmp w1, #5
- bls G_M35244_IG22
+ bls G_M35244_IG21
;; size=16 bbWeight=3 PerfScore 15.00
-G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24 cmp w20, #10
- bhi G_M35244_IG03
+ bhi G_M35244_IG25
mov w1, w20 adr x0, [@RWD00] ldr w0, [x0, x1, LSL #2] @@ -83,12 +75,12 @@ G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by add x0, x0, x2 br x0 ;; size=36 bbWeight=2 PerfScore 16.00
-G_M35244_IG06: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08] ; gcrRegs +[x20]
- cbz x20, G_M35244_IG15
+ cbz x20, G_M35244_IG14
;; size=8 bbWeight=2 PerfScore 8.00
-G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20 ; gcrRegs +[x1] movz x0, #0xD1FFAB1E @@ -97,50 +89,50 @@ G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000 bl CORINFO_HELP_ISINSTANCEOFCLASS ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- cbz x0, G_M35244_IG12
+ cbz x0, G_M35244_IG11
;; size=24 bbWeight=1.55 PerfScore 6.18
-G_M35244_IG08: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10] ;; size=4 bbWeight=1.09 PerfScore 3.27
-G_M35244_IG09: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] sub w21, w21, #1 mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG13
+ cbz x22, G_M35244_IG12
;; size=12 bbWeight=2 PerfScore 4.00
-G_M35244_IG10: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 cmp x1, x0
- beq G_M35244_IG13
+ beq G_M35244_IG12
;; size=24 bbWeight=1 PerfScore 6.00
-G_M35244_IG11: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG10: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- b G_M35244_IG18
+ b G_M35244_IG17
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG12: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov w21, #1
- b G_M35244_IG09
+ b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x22]
- cbz x22, G_M35244_IG18
+ cbz x22, G_M35244_IG17
;; size=4 bbWeight=2 PerfScore 2.00
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] mov x20, x22 ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M35244_IG15: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov w21, wzr
- b G_M35244_IG09
+ b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x20, #0x2E] sub w1, w0, #26 sub w2, w0, #33 @@ -149,26 +141,26 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ccmp w2, #1, z, hi bls G_M35244_IG27 ;; size=28 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] mov x19, x20 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG21
+ cbz x22, G_M35244_IG20
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x1, [x22] cmp x1, x0
- beq G_M35244_IG21
+ beq G_M35244_IG20
;; size=24 bbWeight=0.64 PerfScore 3.84
-G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov x1, x20 ; gcrRegs +[x1] @@ -182,24 +174,24 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=000 mov x22, x0 ; gcrRegs +[x22] ;; size=28 bbWeight=0.32 PerfScore 2.08
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] ldr w0, [x22, #0x10] cmp w21, w0
- bhs G_M35244_IG24
+ bhs G_M35244_IG23
ldr x0, [x22, #0x08] ; gcrRegs +[x0] ldr w1, [x0, #0x08] cmp w21, w1
- bhs G_M35244_IG25
+ bhs G_M35244_IG24
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] ldr x20, [x0, w21, UXTW #3] ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=40 bbWeight=1.28 PerfScore 21.12
-G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20 x22] ; byrRegs -[x0] mov x0, x19 @@ -209,14 +201,14 @@ G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] ;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x20] ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x30 br x1 ; gcr arg pop 0 ;; size=16 bbWeight=1 PerfScore 4.00
-G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x19] movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() movk x0, #0xD1FFAB1E LSL #16 @@ -226,11 +218,17 @@ G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcr arg pop 0 brk_unix #0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ldp x21, x22, [sp, #0x20] + ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19] mov x0, x19 ; gcrRegs +[x0] @@ -244,7 +242,7 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 mov x19, x0 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00 G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] +[x20] @@ -255,7 +253,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ldrb w0, [x0, #0x2E] ; gcrRegs -[x0] cmp w0, #32
- beq G_M35244_IG17
+ beq G_M35244_IG16
;; size=24 bbWeight=0 PerfScore 0.00 G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E @@ -303,7 +301,7 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { blr x3 ; gcrRegs -[x0 x2 x19 x21] ; gcr arg pop 0
- b G_M35244_IG17
+ b G_M35244_IG16
;; size=124 bbWeight=0 PerfScore 0.00 G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x20] +[x19] @@ -345,7 +343,7 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ...

+0 (0.00%) : 520875.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -52,30 +52,22 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz bl <unknown method> ; gcr arg pop 0
- cbz w0, G_M35244_IG03
+ cbz w0, G_M35244_IG25
ldr w0, [x19, #0x28] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M35244_IG04
+ bne G_M35244_IG25
;; size=24 bbWeight=1 PerfScore 7.00
-G_M35244_IG03: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=0.67 PerfScore 2.67 -G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x19]
+G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E] sub w1, w0, #3 cmp w1, #5
- bls G_M35244_IG22
+ bls G_M35244_IG21
;; size=16 bbWeight=3 PerfScore 15.00
-G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24 cmp w20, #10
- bhi G_M35244_IG03
+ bhi G_M35244_IG25
mov w1, w20 adr x0, [@RWD00] ldr w0, [x0, x1, LSL #2] @@ -83,12 +75,12 @@ G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by add x0, x0, x2 br x0 ;; size=36 bbWeight=2 PerfScore 16.00
-G_M35244_IG06: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08] ; gcrRegs +[x20]
- cbz x20, G_M35244_IG15
+ cbz x20, G_M35244_IG14
;; size=8 bbWeight=2 PerfScore 8.00
-G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20 ; gcrRegs +[x1] movz x0, #0xD1FFAB1E @@ -97,50 +89,50 @@ G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000 bl CORINFO_HELP_ISINSTANCEOFCLASS ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- cbz x0, G_M35244_IG12
+ cbz x0, G_M35244_IG11
;; size=24 bbWeight=1.55 PerfScore 6.18
-G_M35244_IG08: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10] ;; size=4 bbWeight=1.09 PerfScore 3.27
-G_M35244_IG09: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] sub w21, w21, #1 mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG13
+ cbz x22, G_M35244_IG12
;; size=12 bbWeight=2 PerfScore 4.00
-G_M35244_IG10: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 cmp x1, x0
- beq G_M35244_IG13
+ beq G_M35244_IG12
;; size=24 bbWeight=1 PerfScore 6.00
-G_M35244_IG11: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG10: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- b G_M35244_IG18
+ b G_M35244_IG17
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG12: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov w21, #1
- b G_M35244_IG09
+ b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x22]
- cbz x22, G_M35244_IG18
+ cbz x22, G_M35244_IG17
;; size=4 bbWeight=2 PerfScore 2.00
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] mov x20, x22 ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M35244_IG15: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov w21, wzr
- b G_M35244_IG09
+ b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x20, #0x2E] sub w1, w0, #26 sub w2, w0, #33 @@ -149,26 +141,26 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ccmp w2, #1, z, hi bls G_M35244_IG27 ;; size=28 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] mov x19, x20 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG21
+ cbz x22, G_M35244_IG20
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x1, [x22] cmp x1, x0
- beq G_M35244_IG21
+ beq G_M35244_IG20
;; size=24 bbWeight=0.64 PerfScore 3.84
-G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov x1, x20 ; gcrRegs +[x1] @@ -178,24 +170,24 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=000 mov x22, x0 ; gcrRegs +[x22] ;; size=12 bbWeight=0.32 PerfScore 0.64
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] ldr w0, [x22, #0x10] cmp w21, w0
- bhs G_M35244_IG24
+ bhs G_M35244_IG23
ldr x0, [x22, #0x08] ; gcrRegs +[x0] ldr w1, [x0, #0x08] cmp w21, w1
- bhs G_M35244_IG25
+ bhs G_M35244_IG24
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] ldr x20, [x0, w21, UXTW #3] ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=40 bbWeight=1.28 PerfScore 21.12
-G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20 x22] ; byrRegs -[x0] mov x0, x19 @@ -205,14 +197,14 @@ G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] ;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x20] ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x30 br x1 ; gcr arg pop 0 ;; size=16 bbWeight=1 PerfScore 4.00
-G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x19] movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() movk x0, #0xD1FFAB1E LSL #16 @@ -222,11 +214,17 @@ G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcr arg pop 0 brk_unix #0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ldp x21, x22, [sp, #0x20] + ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19] mov x0, x19 ; gcrRegs +[x0] @@ -240,7 +238,7 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 mov x19, x0 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00 G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] +[x20] @@ -251,7 +249,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ldrb w0, [x0, #0x2E] ; gcrRegs -[x0] cmp w0, #32
- beq G_M35244_IG17
+ beq G_M35244_IG16
;; size=24 bbWeight=0 PerfScore 0.00 G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E @@ -299,7 +297,7 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { blr x3 ; gcrRegs -[x0 x2 x19 x21] ; gcr arg pop 0
- b G_M35244_IG17
+ b G_M35244_IG16
;; size=124 bbWeight=0 PerfScore 0.00 G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x20] +[x19] @@ -341,7 +339,7 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ...

+0 (0.00%) : 485388.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -52,30 +52,22 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz bl <unknown method> ; gcr arg pop 0
- cbz w0, G_M35244_IG03
+ cbz w0, G_M35244_IG32
ldr w0, [x19, #0x28] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M35244_IG04
+ bne G_M35244_IG32
;; size=24 bbWeight=1 PerfScore 7.00
-G_M35244_IG03: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=0.67 PerfScore 2.67 -G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x19]
+G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E] sub w1, w0, #3 cmp w1, #5
- bls G_M35244_IG21
+ bls G_M35244_IG20
;; size=16 bbWeight=3 PerfScore 15.00
-G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24 cmp w20, #10
- bhi G_M35244_IG03
+ bhi G_M35244_IG32
mov w1, w20 adr x0, [@RWD00] ldr w0, [x0, x1, LSL #2] @@ -83,12 +75,12 @@ G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by add x0, x0, x2 br x0 ;; size=36 bbWeight=2 PerfScore 16.00
-G_M35244_IG06: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08] ; gcrRegs +[x20]
- cbz x20, G_M35244_IG15
+ cbz x20, G_M35244_IG14
;; size=8 bbWeight=2 PerfScore 8.00
-G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20 ; gcrRegs +[x1] movz x0, #0xD1FFAB1E @@ -97,95 +89,95 @@ G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000 bl CORINFO_HELP_ISINSTANCEOFCLASS ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- cbz x0, G_M35244_IG12
+ cbz x0, G_M35244_IG11
;; size=24 bbWeight=1.55 PerfScore 6.18
-G_M35244_IG08: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10] ;; size=4 bbWeight=1.09 PerfScore 3.27
-G_M35244_IG09: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] sub w21, w21, #1 mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG13
+ cbz x22, G_M35244_IG12
;; size=12 bbWeight=2 PerfScore 4.00
-G_M35244_IG10: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 cmp x1, x0
- beq G_M35244_IG13
+ beq G_M35244_IG12
;; size=24 bbWeight=1 PerfScore 6.00
-G_M35244_IG11: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG10: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- b G_M35244_IG18
+ b G_M35244_IG17
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG12: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov w21, #1
- b G_M35244_IG09
+ b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x22]
- cbz x22, G_M35244_IG18
+ cbz x22, G_M35244_IG17
;; size=4 bbWeight=2 PerfScore 2.00
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] mov x20, x22 ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M35244_IG15: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov w21, wzr
- b G_M35244_IG09
+ b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x20, #0x2E] sub w1, w0, #26 sub w2, w0, #33 cmp w0, #24 ccmp w1, #1, z, ne ccmp w2, #1, z, hi
- bls G_M35244_IG24
+ bls G_M35244_IG23
;; size=28 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] mov x19, x20 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG20
+ cbz x22, G_M35244_IG19
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x1, [x22] cmp x1, x0
- bne G_M35244_IG23
+ bne G_M35244_IG22
;; size=24 bbWeight=0.64 PerfScore 3.84
-G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20] ldr w0, [x22, #0x10] cmp w21, w0
- bhs G_M35244_IG31
+ bhs G_M35244_IG30
ldr x0, [x22, #0x08] ; gcrRegs +[x0] ldr w1, [x0, #0x08] cmp w21, w1
- bhs G_M35244_IG32
+ bhs G_M35244_IG31
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] ldr x20, [x0, w21, UXTW #3] ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=40 bbWeight=1.28 PerfScore 21.12
-G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20 x22] ; byrRegs -[x0] mov x0, x19 @@ -195,14 +187,14 @@ G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] ;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG21: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x20] ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x30 br x1 ; gcr arg pop 0 ;; size=16 bbWeight=1 PerfScore 4.00
-G_M35244_IG23: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG22: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x20] mov x1, x20 ; gcrRegs +[x1] @@ -211,20 +203,20 @@ G_M35244_IG23: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=180 ; gcr arg pop 0 mov x22, x0 ; gcrRegs +[x22]
- b G_M35244_IG20
+ b G_M35244_IG19
;; size=16 bbWeight=0.32 PerfScore 0.96
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0 x22] +[x20] ldr x0, [x19, #0x18] ; gcrRegs +[x0]
- cbz x0, G_M35244_IG25
+ cbz x0, G_M35244_IG24
ldr x0, [x19, #0x18] ldrb w0, [x0, #0x2E] ; gcrRegs -[x0] cmp w0, #32
- beq G_M35244_IG17
+ beq G_M35244_IG16
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -270,9 +262,9 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { blr x3 ; gcrRegs -[x0 x2 x19 x21] ; gcr arg pop 0
- b G_M35244_IG17
+ b G_M35244_IG16
;; size=124 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] +[x19] mov x0, x19 ; gcrRegs +[x0] @@ -285,9 +277,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 sxtw w20, w0 mov w21, #1
- b G_M35244_IG28
+ b G_M35244_IG27
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19 ; gcrRegs +[x0] mov w1, w21 @@ -307,19 +299,19 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 add w21, w21, #1 ;; size=56 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
...

+0 (0.00%) : 646520.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -52,30 +52,22 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz bl <unknown method> ; gcr arg pop 0
- cbz w0, G_M35244_IG03
+ cbz w0, G_M35244_IG25
ldr w0, [x19, #0x28] mov w1, #0xD1FFAB1E tst w0, w1
- beq G_M35244_IG04
+ bne G_M35244_IG25
;; size=24 bbWeight=1 PerfScore 7.00
-G_M35244_IG03: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[x19] - ldp x21, x22, [sp, #0x20] - ldp x19, x20, [sp, #0x10] - ldp fp, lr, [sp], #0x30 - ret lr - ;; size=16 bbWeight=0.67 PerfScore 2.67 -G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs +[x19]
+G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E] sub w1, w0, #3 cmp w1, #5
- bls G_M35244_IG22
+ bls G_M35244_IG21
;; size=16 bbWeight=3 PerfScore 15.00
-G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24 cmp w20, #10
- bhi G_M35244_IG03
+ bhi G_M35244_IG25
mov w1, w20 adr x0, [@RWD00] ldr w0, [x0, x1, LSL #2] @@ -83,12 +75,12 @@ G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by add x0, x0, x2 br x0 ;; size=36 bbWeight=2 PerfScore 16.00
-G_M35244_IG06: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08] ; gcrRegs +[x20]
- cbz x20, G_M35244_IG15
+ cbz x20, G_M35244_IG14
;; size=8 bbWeight=2 PerfScore 8.00
-G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20 ; gcrRegs +[x1] movz x0, #0xD1FFAB1E @@ -97,50 +89,50 @@ G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000 bl CORINFO_HELP_ISINSTANCEOFCLASS ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- cbz x0, G_M35244_IG12
+ cbz x0, G_M35244_IG11
;; size=24 bbWeight=1.55 PerfScore 6.18
-G_M35244_IG08: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10] ;; size=4 bbWeight=1.09 PerfScore 3.27
-G_M35244_IG09: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] sub w21, w21, #1 mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG13
+ cbz x22, G_M35244_IG12
;; size=12 bbWeight=2 PerfScore 4.00
-G_M35244_IG10: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22] movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 cmp x1, x0
- beq G_M35244_IG13
+ beq G_M35244_IG12
;; size=24 bbWeight=1 PerfScore 6.00
-G_M35244_IG11: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG10: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- b G_M35244_IG18
+ b G_M35244_IG17
;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG12: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov w21, #1
- b G_M35244_IG09
+ b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x22]
- cbz x22, G_M35244_IG18
+ cbz x22, G_M35244_IG17
;; size=4 bbWeight=2 PerfScore 2.00
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] mov x20, x22 ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M35244_IG15: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov w21, wzr
- b G_M35244_IG09
+ b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x20, #0x2E] sub w1, w0, #26 sub w2, w0, #33 @@ -149,26 +141,26 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ccmp w2, #1, z, hi bls G_M35244_IG27 ;; size=28 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19] mov x19, x20 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x22, x20 ; gcrRegs +[x22]
- cbz x22, G_M35244_IG21
+ cbz x22, G_M35244_IG20
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x1, [x22] cmp x1, x0
- beq G_M35244_IG21
+ beq G_M35244_IG20
;; size=24 bbWeight=0.64 PerfScore 3.84
-G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] mov x1, x20 ; gcrRegs +[x1] @@ -182,24 +174,24 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=000 mov x22, x0 ; gcrRegs +[x22] ;; size=28 bbWeight=0.32 PerfScore 2.08
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] ldr w0, [x22, #0x10] cmp w21, w0
- bhs G_M35244_IG24
+ bhs G_M35244_IG23
ldr x0, [x22, #0x08] ; gcrRegs +[x0] ldr w1, [x0, #0x08] cmp w21, w1
- bhs G_M35244_IG25
+ bhs G_M35244_IG24
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] ldr x20, [x0, w21, UXTW #3] ; gcrRegs +[x20]
- b G_M35244_IG16
+ b G_M35244_IG15
;; size=40 bbWeight=1.28 PerfScore 21.12
-G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20 x22] ; byrRegs -[x0] mov x0, x19 @@ -209,14 +201,14 @@ G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] ;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x20] ldp x19, x20, [sp, #0x10] ldp fp, lr, [sp], #0x30 br x1 ; gcr arg pop 0 ;; size=16 bbWeight=1 PerfScore 4.00
-G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x19] movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() movk x0, #0xD1FFAB1E LSL #16 @@ -226,11 +218,17 @@ G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; gcr arg pop 0 brk_unix #0 ;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ldp x21, x22, [sp, #0x20] + ldp x19, x20, [sp, #0x10] + ldp fp, lr, [sp], #0x30 + ret lr + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19] mov x0, x19 ; gcrRegs +[x0] @@ -244,7 +242,7 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ; gcr arg pop 0 mov x19, x0 ; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00 G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] +[x20] @@ -255,7 +253,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { ldrb w0, [x0, #0x2E] ; gcrRegs -[x0] cmp w0, #32
- beq G_M35244_IG17
+ beq G_M35244_IG16
;; size=24 bbWeight=0 PerfScore 0.00 G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E @@ -303,7 +301,7 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { blr x3 ; gcrRegs -[x0 x2 x19 x21] ; gcr arg pop 0
- b G_M35244_IG17
+ b G_M35244_IG16
;; size=124 bbWeight=0 PerfScore 0.00 G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x20] +[x19] @@ -345,7 +343,7 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by ...

libraries_tests.run.linux.arm64.Release.mch

-12 (-0.46%) : 455462.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)

@@ -95,13 +95,13 @@ G_M38617_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[x19] ;; size=36 bbWeight=1 PerfScore 7.00 G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
- cbz x19, G_M38617_IG18
+ cbz x19, G_M38617_IG36
ldr x0, [x20] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x0, x1
- bne G_M38617_IG20
+ bne G_M38617_IG38
ldr x0, [x20, #0x10] ; gcrRegs +[x0] ldr x1, [x0] @@ -109,15 +109,15 @@ G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=180 movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 cmp x1, x2
- bne G_M38617_IG19
+ bne G_M38617_IG37
ldr w21, [x0, #0x0C] ;; size=60 bbWeight=1 PerfScore 19.00 G_M38617_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] cmp w21, #2
- bgt G_M38617_IG22
+ bgt G_M38617_IG12
cmp w21, #1
- bne G_M38617_IG21
+ bne G_M38617_IG11
mov x0, x19 ; gcrRegs +[x0] bl <unknown method> @@ -136,7 +136,7 @@ G_M38617_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 { movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 cmp x1, x2
- bne G_M38617_IG15
+ bne G_M38617_IG10
;; size=72 bbWeight=1 PerfScore 16.50 G_M38617_IG04: ; bbWeight=0.93, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref ldr w20, [x0, #0x0C] @@ -144,11 +144,11 @@ G_M38617_IG04: ; bbWeight=0.93, gcrefRegs=480001 {x0 x19 x22}, byrefRegs= G_M38617_IG05: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] cmp w20, #1
- beq G_M38617_IG36
+ beq G_M38617_IG33
cmp w20, #2
- beq G_M38617_IG35
+ beq G_M38617_IG32
sub w20, w20, #12
- cbnz w20, G_M38617_IG30
+ cbnz w20, G_M38617_IG27
;; size=24 bbWeight=1 PerfScore 4.50 G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz ; GC ptr vars -{V00} @@ -156,7 +156,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=480000 movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 cmp x22, x0
- beq G_M38617_IG33
+ beq G_M38617_IG30
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -239,7 +239,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=480000 ldr w0, [x0, #0x08] ; gcrRegs -[x0] cmp w1, w0
- bge G_M38617_IG34
+ bge G_M38617_IG31
;; size=228 bbWeight=1 PerfScore 51.00 G_M38617_IG07: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x08] @@ -253,95 +253,18 @@ G_M38617_IG07: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 { bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2 x22] ; gcr arg pop 0
- b G_M38617_IG16 - ;; size=32 bbWeight=1 PerfScore 10.50 -G_M38617_IG08: ; bbWeight=0, gcVars=0000000000140100 {V00 V06 V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x19] - ; GC ptr vars +{V00 V06 V08 V09 V18 V20} - b G_M38617_IG10 - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M38617_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ldr x0, [fp, #0x10] // [V09 loc6]
+ ;; size=28 bbWeight=1 PerfScore 9.50 +G_M38617_IG08: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + mov x0, x19
; gcrRegs +[x0]
- movz x11, #0xD1FFAB1E // code for <unknown method> - movk x11, #0xD1FFAB1E LSL #16 - movk x11, #0xD1FFAB1E LSL #32 - ldr x1, [x11] - blr x1 - ; gcr arg pop 0 - movz x1, #0xD1FFAB1E // code for System.Xml.Xsl.Runtime.XmlQueryRuntime:EnsureNavigator(System.Object):System.Xml.XPath.XPathNavigator - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr x1, [x1] - blr x1 - ; gcr arg pop 0 - mov x1, x0 - ; gcrRegs +[x1] - ldr x0, [fp, #0x18] // [V06 loc3] - movz x2, #0xD1FFAB1E // code for System.Xml.Xsl.Runtime.XmlQuerySequence`1[System.__Canon]:Add(System.__Canon):this - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - blr x2 - ; gcrRegs -[x0-x1] - ; gcr arg pop 0 - ;; size=72 bbWeight=0 PerfScore 0.00 -G_M38617_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - ldr x0, [fp, #0x10] // [V09 loc6] - ; gcrRegs +[x0] - movz x11, #0xD1FFAB1E // code for <unknown method> - movk x11, #0xD1FFAB1E LSL #16 - movk x11, #0xD1FFAB1E LSL #32 - ldr x1, [x11] - blr x1 - ; gcrRegs -[x0] - ; gcr arg pop 0 - cbnz w0, G_M38617_IG09 - ;; size=28 bbWeight=0 PerfScore 0.00 -G_M38617_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ldr x0, [fp, #0x28] // [V67 PSPSym] - bl G_M38617_IG39 - ;; size=8 bbWeight=0 PerfScore 0.00 -G_M38617_IG12: ; bbWeight=0, nogc, extend - nop - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M38617_IG13: ; bbWeight=0, gcVars=0000000000040100 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; GC ptr vars -{V08 V09 V18 V20} - ldr x0, [fp, #0x18] // [V06 loc3] - ; gcrRegs +[x0] - mov x19, x0 - ; gcrRegs +[x19] - ;; size=8 bbWeight=0 PerfScore 0.00 -G_M38617_IG14: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0] - ; GC ptr vars -{V06} - mov x1, x19 - ; gcrRegs +[x1] - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - bl CORINFO_HELP_CHKCASTCLASS - ; gcrRegs -[x1 x19] +[x0] - ; gcr arg pop 0 - ldr x2, [fp, #0x20] // [V00 this] - ; gcrRegs +[x2] - ldr x1, [x2, #0x68] - ; gcrRegs +[x1] - movz x2, #0xD1FFAB1E // code for System.Xml.Xsl.Runtime.XmlQueryNodeSequence:DocOrderDistinct(System.Collections.Generic.IComparer`1[System.Xml.XPath.XPathNavigator]):System.Xml.Xsl.Runtime.XmlQueryNodeSequence:this - ; gcrRegs -[x2] - movk x2, #0xD1FFAB1E LSL #16 - movk x2, #0xD1FFAB1E LSL #32 - ldr x2, [x2] - ldr wzr, [x0] - ; GC ptr vars -{V00} - blr x2 - ; gcrRegs -[x1] - ; gcr arg pop 0 - mov x19, x0 - ; gcrRegs +[x19] - b G_M38617_IG16 - ;; size=60 bbWeight=0 PerfScore 0.00 -G_M38617_IG15: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=4 bbWeight=1 PerfScore 0.50 +G_M38617_IG09: ; bbWeight=1, epilog, nogc, extend + ldp x21, x22, [sp, #0x40] + ldp x19, x20, [sp, #0x30] + ldp fp, lr, [sp], #0x50 + ret lr + ;; size=16 bbWeight=1 PerfScore 4.00 +G_M38617_IG10: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x22] ; GC ptr vars +{V00 V08} ldr x1, [x0] @@ -353,96 +276,10 @@ G_M38617_IG15: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs= sxtw w20, w0 b G_M38617_IG05 ;; size=24 bbWeight=0.07 PerfScore 0.81
-G_M38617_IG16: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x22] - ; GC ptr vars -{V00 V08} - mov x0, x19 - ; gcrRegs +[x0] - ;; size=4 bbWeight=1 PerfScore 0.50 -G_M38617_IG17: ; bbWeight=1, epilog, nogc, extend - ldp x21, x22, [sp, #0x40] - ldp x19, x20, [sp, #0x30] - ldp fp, lr, [sp], #0x50 - ret lr - ;; size=16 bbWeight=1 PerfScore 4.00 -G_M38617_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0 x19] - movz x0, #0xD1FFAB1E // code for <unknown method> - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - ldr x0, [x0] - blr x0 - ; gcrRegs +[x0] - ; gcr arg pop 0 - mov x19, x0 - ; gcrRegs +[x19] - movz x0, #0xD1FFAB1E - ; gcrRegs -[x0] - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - mov x1, #1 - bl CORINFO_HELP_NEWARR_1_OBJ - ; gcrRegs +[x0] - ; gcr arg pop 0 - mov x20, x0 - ; gcrRegs +[x20] - movz x0, #0xD1FFAB1E - ; gcrRegs -[x0] - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - str x0, [x20, #0x10] - movz x0, #0xD1FFAB1E - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - bl CORINFO_HELP_NEWSFAST - ; gcrRegs +[x0] - ; gcr arg pop 0 - mov x22, x0 - ; gcrRegs +[x22] - mov x1, x19 - ; gcrRegs +[x1] - mov x2, x20 - ; gcrRegs +[x2] - movz x3, #0xD1FFAB1E // code for <unknown method> - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - ; gcrRegs -[x0-x2 x19-x20] - ; gcr arg pop 0 - mov x0, x22 - ; gcrRegs +[x0] - bl CORINFO_HELP_THROW - ; gcrRegs -[x0 x22] - ; gcr arg pop 0
...

-4 (-0.43%) : 669072.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol

@@ -5,7 +5,7 @@ ; optimized using Dynamic PGO ; fp based frame ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 27648
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 27648
; 3 inlinees with PGO data; 9 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; @@ -77,13 +77,9 @@ G_M57106_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 cmp x20, x0
- bne G_M57106_IG04
+ beq G_M57106_IG10
;; size=24 bbWeight=1 PerfScore 6.00
-G_M57106_IG03: ; bbWeight=0.48, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref - mov w21, #9 - b G_M57106_IG05 - ;; size=8 bbWeight=0.48 PerfScore 0.72 -G_M57106_IG04: ; bbWeight=0.52, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M57106_IG03: ; bbWeight=0.52, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19 ; gcrRegs +[x0] ldr x1, [x20, #0x58] @@ -93,12 +89,12 @@ G_M57106_IG04: ; bbWeight=0.52, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ; gcr arg pop 0 sxtw w21, w0 ;; size=20 bbWeight=0.52 PerfScore 4.16
-G_M57106_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w22, w21, #4 cmp w22, #5
- bne G_M57106_IG14
+ bne G_M57106_IG12
;; size=12 bbWeight=1 PerfScore 2.00
-G_M57106_IG06: ; bbWeight=0.84, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG05: ; bbWeight=0.84, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov x1, x19 ; gcrRegs +[x1] movz x0, #0xD1FFAB1E @@ -111,21 +107,9 @@ G_M57106_IG06: ; bbWeight=0.84, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 cmp x20, x1
- bne G_M57106_IG08
+ beq G_M57106_IG11
;; size=40 bbWeight=0.84 PerfScore 5.04
-G_M57106_IG07: ; bbWeight=0.35, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref - movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_TypeArgumentsWithAnnotations():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr x1, [x1] - blr x1 - ; gcr arg pop 0 - mov x19, x0 - ; gcrRegs +[x19] - b G_M57106_IG09 - ;; size=28 bbWeight=0.35 PerfScore 2.47 -G_M57106_IG08: ; bbWeight=0.49, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref - ; gcrRegs -[x19]
+G_M57106_IG06: ; bbWeight=0.49, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
ldr x1, [x20, #0xF0] ldr x1, [x1, #0x18] blr x1 @@ -133,7 +117,7 @@ G_M57106_IG08: ; bbWeight=0.49, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b mov x19, x0 ; gcrRegs +[x19] ;; size=16 bbWeight=0.49 PerfScore 3.65
-G_M57106_IG09: ; bbWeight=0.84, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG07: ; bbWeight=0.84, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 @@ -143,7 +127,7 @@ G_M57106_IG09: ; bbWeight=0.84, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ldr w1, [x19, #0x08] cbnz w1, G_M57106_IG16 ;; size=24 bbWeight=0.84 PerfScore 7.14
-G_M57106_IG10: ; bbWeight=0.79, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57106_IG08: ; bbWeight=0.79, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19-x20] movz x1, #0xD1FFAB1E // box for <unknown class>:<unknown field> movk x1, #0xD1FFAB1E LSL #16 @@ -153,7 +137,7 @@ G_M57106_IG10: ; bbWeight=0.79, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ldr x0, [x1, #0x08] ; gcrRegs +[x0] ;; size=20 bbWeight=0.79 PerfScore 5.89
-G_M57106_IG11: ; bbWeight=0.84, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M57106_IG09: ; bbWeight=0.84, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x1] ldr x25, [sp, #0x58] ldp x23, x24, [sp, #0x48] @@ -162,27 +146,27 @@ G_M57106_IG11: ; bbWeight=0.84, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b ldp fp, lr, [sp], #0x60 ret lr ;; size=24 bbWeight=0.84 PerfScore 5.88
-G_M57106_IG12: ; bbWeight=0.16, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[x0] - movz x0, #0xD1FFAB1E // box for <unknown class>:<unknown field> - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - ldr x0, [x0] - ; gcrRegs +[x0] - ldr x0, [x0, #0x08] - ;; size=20 bbWeight=0.16 PerfScore 1.20 -G_M57106_IG13: ; bbWeight=0.16, epilog, nogc, extend - ldr x25, [sp, #0x58] - ldp x23, x24, [sp, #0x48] - ldp x21, x22, [sp, #0x38] - ldp x19, x20, [sp, #0x28] - ldp fp, lr, [sp], #0x60 - ret lr - ;; size=24 bbWeight=0.16 PerfScore 1.12 -G_M57106_IG14: ; bbWeight=0.16, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M57106_IG10: ; bbWeight=0.48, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x19]
+ mov w21, #9 + b G_M57106_IG04 + ;; size=8 bbWeight=0.48 PerfScore 0.72 +G_M57106_IG11: ; bbWeight=0.35, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref + ; gcrRegs -[x19] +[x0] + movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_TypeArgumentsWithAnnotations():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this + movk x1, #0xD1FFAB1E LSL #16 + movk x1, #0xD1FFAB1E LSL #32 + ldr x1, [x1] + blr x1 + ; gcr arg pop 0 + mov x19, x0 + ; gcrRegs +[x19] + b G_M57106_IG07 + ;; size=28 bbWeight=0.35 PerfScore 2.47 +G_M57106_IG12: ; bbWeight=0.16, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[x0]
cmp w22, #7
- bhi G_M57106_IG15
+ bhi G_M57106_IG13
mov w0, w22 adr x1, [@RWD00] ldr w1, [x1, x0, LSL #2] @@ -190,13 +174,29 @@ G_M57106_IG14: ; bbWeight=0.16, gcVars=0000000000000000 {}, gcrefRegs=800 add x1, x1, x2 br x1 ;; size=32 bbWeight=0.16 PerfScore 1.20
-G_M57106_IG15: ; bbWeight=0.16, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG13: ; bbWeight=0.16, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, #15 bne G_M57106_IG34
- b G_M57106_IG12 - ;; size=12 bbWeight=0.16 PerfScore 0.40 -G_M57106_IG16: ; bbWeight=0.05, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x20]
+ ;; size=8 bbWeight=0.16 PerfScore 0.24 +G_M57106_IG14: ; bbWeight=0.16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[x19] + movz x0, #0xD1FFAB1E // box for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + ldr x0, [x0, #0x08] + ;; size=20 bbWeight=0.16 PerfScore 1.20 +G_M57106_IG15: ; bbWeight=0.16, epilog, nogc, extend + ldr x25, [sp, #0x58] + ldp x23, x24, [sp, #0x48] + ldp x21, x22, [sp, #0x38] + ldp x19, x20, [sp, #0x28] + ldp fp, lr, [sp], #0x60 + ret lr + ;; size=24 bbWeight=0.16 PerfScore 1.12 +G_M57106_IG16: ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs -[x0] +[x19-x20]
sxtw x1, w1 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -209,13 +209,13 @@ G_M57106_IG16: ; bbWeight=0.05, gcrefRegs=180000 {x19 x20}, byrefRegs=000 mov w23, wzr ldr w24, [x21, #0x08] cmp w24, #0
- ble G_M57106_IG24
+ ble G_M57106_IG25
;; size=40 bbWeight=0.05 PerfScore 0.46 G_M57106_IG17: ; bbWeight=0.03, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[x0] ldr w1, [x19, #0x08] cmp w1, w24
- blt G_M57106_IG25
+ blt G_M57106_IG26
;; size=12 bbWeight=0.03 PerfScore 0.12 G_M57106_IG18: ; bbWeight=0.05, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz mov w1, #24 @@ -231,8 +231,8 @@ G_M57106_IG18: ; bbWeight=0.05, gcrefRegs=380000 {x19 x20 x21}, byrefRegs movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 cmp x2, x3
- bne G_M57106_IG36 - cbz x0, G_M57106_IG22
+ bne G_M57106_IG37 + cbz x0, G_M57106_IG23
;; size=52 bbWeight=0.05 PerfScore 1.11 G_M57106_IG19: ; bbWeight=0.05, gcrefRegs=380003 {x0 x1 x19 x20 x21}, byrefRegs=0000 {}, byref, isz ; byrRegs -[x22] @@ -241,7 +241,7 @@ G_M57106_IG19: ; bbWeight=0.05, gcrefRegs=380003 {x0 x1 x19 x20 x21}, byr movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 cmp x2, x3
- bne G_M57106_IG35
+ bne G_M57106_IG36
;; size=24 bbWeight=0.05 PerfScore 0.32 G_M57106_IG20: ; bbWeight=0.05, gcrefRegs=380002 {x1 x19 x20 x21}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] @@ -259,14 +259,18 @@ G_M57106_IG21: ; bbWeight=0.05, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR add w23, w23, #1 cmp w24, w23 bgt G_M57106_IG18
- b G_M57106_IG24 - ;; size=28 bbWeight=0.05 PerfScore 0.27 -G_M57106_IG22: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+ ;; size=24 bbWeight=0.05 PerfScore 0.22 +G_M57106_IG22: ; bbWeight=0.03, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref + ; gcrRegs -[x19-x20] + b G_M57106_IG25 + ;; size=4 bbWeight=0.03 PerfScore 0.03 +G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref + ; gcrRegs +[x19-x20]
mov x2, xzr ; gcrRegs +[x2] b G_M57106_IG21 ;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG24: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
sxtw x1, w23 mov x0, x21 ; gcrRegs +[x0] @@ -275,19 +279,19 @@ G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR ; gcr arg pop 0 add w23, w23, #1 cmp w24, w23
- bgt G_M57106_IG25
+ bgt G_M57106_IG26
;; size=24 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG24: ; bbWeight=0.05, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M57106_IG25: ; bbWeight=0.05, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19-x20] mov x0, x21 ; gcrRegs +[x0]
- b G_M57106_IG11
+ b G_M57106_IG09
;; size=8 bbWeight=0.05 PerfScore 0.08
-G_M57106_IG25: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG26: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
...

-4 (-0.35%) : 624473.dasm - System.Collections.Concurrent.ConcurrentQueue`1+d__26[long]:MoveNext():ubyte:this (Tier1)

@@ -98,7 +98,7 @@ G_M37297_IG05: ; bbWeight=0.95, gcrefRegs=280000 {x19 x21}, byrefRegs=000 ; gcrRegs +[x0] ldr w14, [x0, #0x08] cmp w22, w14
- bhs G_M37297_IG32
+ bhs G_M37297_IG31
add x0, x0, x24 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -108,12 +108,12 @@ G_M37297_IG05: ; bbWeight=0.95, gcrefRegs=280000 {x19 x21}, byrefRegs=000 ldr w14, [x21, #0x18] and w0, w0, w14 cmp w0, w23
- bne G_M37297_IG39
+ bne G_M37297_IG38
ldr x0, [x21, #0x08] ; gcrRegs +[x0] ldr w14, [x0, #0x08] cmp w22, w14
- bhs G_M37297_IG32
+ bhs G_M37297_IG31
ldr x0, [x0, x24] ; gcrRegs -[x0] str x0, [x19, #0x20] @@ -139,13 +139,13 @@ G_M37297_IG08: ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=800 add w24, w14, #1 str w24, [x19, #0x38] cmp w24, w15
- blt G_M37297_IG38
+ blt G_M37297_IG37
;; size=28 bbWeight=0.05 PerfScore 0.37 G_M37297_IG09: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldp x14, x0, [x19, #0x08] ; gcrRegs +[x0 x14] cmp x14, x0
- beq G_M37297_IG30
+ beq G_M37297_IG25
ldr x1, [x14, #0x10] ; gcrRegs +[x1] add x14, x19, #24 @@ -220,7 +220,7 @@ G_M37297_IG15: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ;; size=4 bbWeight=0.00 PerfScore 0.00 G_M37297_IG16: ; bbWeight=0.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz cmp w20, #5
- bhi G_M37297_IG30
+ bhi G_M37297_IG25
mov w0, w20 adr x1, [@RWD00] ldr w1, [x1, x0, LSL #2] @@ -233,7 +233,7 @@ G_M37297_IG17: ; bbWeight=0.00, gcrefRegs=480000 {x19 x22}, byrefRegs=000 str w23, [x19, #0x38] ldr w0, [x22, #0x08] cmp w0, w23
- ble G_M37297_IG28
+ ble G_M37297_IG29
;; size=16 bbWeight=0.00 PerfScore 0.01 G_M37297_IG18: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ; gcrRegs -[x22] @@ -267,7 +267,7 @@ G_M37297_IG19: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, bgt G_M37297_IG18 ;; size=40 bbWeight=0.03 PerfScore 0.52 G_M37297_IG20: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- b G_M37297_IG28
+ b G_M37297_IG29
;; size=4 bbWeight=0.00 PerfScore 0.00 G_M37297_IG21: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz ldr x14, [x19, #0x18] @@ -301,7 +301,7 @@ G_M37297_IG22: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, str wzr, [x19, #0x38] ldr w1, [x19, #0x38] cmp w1, w0
- bge G_M37297_IG30
+ bge G_M37297_IG25
;; size=44 bbWeight=0.00 PerfScore 0.02 G_M37297_IG23: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref ldr x0, [x19, #0x10] @@ -331,9 +331,16 @@ G_M37297_IG24: ; bbWeight=0.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ;; size=32 bbWeight=0.01 PerfScore 0.14 G_M37297_IG25: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x19]
- b G_M37297_IG30
+ mov w0, wzr
;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M37297_IG26: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M37297_IG26: ; bbWeight=0.00, epilog, nogc, extend + ldp x23, x24, [sp, #0x40] + ldp x21, x22, [sp, #0x30] + ldp x19, x20, [sp, #0x20] + ldp fp, lr, [sp], #0x50 + ret lr + ;; size=20 bbWeight=0.00 PerfScore 0.00 +G_M37297_IG27: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19] movn w0, #0 str w0, [x19, #0x28] @@ -380,13 +387,13 @@ G_M37297_IG26: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, ldp x0, x1, [x19, #0x08] ; gcrRegs +[x0-x1] cmp x0, x1
- beq G_M37297_IG33
+ beq G_M37297_IG32
add x0, x0, #0xD1FFAB1E ; gcrRegs -[x0] ; byrRegs +[x0] ldapr w21, [x0] ;; size=140 bbWeight=0.00 PerfScore 0.06
-G_M37297_IG27: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M37297_IG28: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1] ; byrRegs -[x0] ldr x0, [x19, #0x08] @@ -406,44 +413,34 @@ G_M37297_IG27: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, and w0, w1, w0 str w0, [x19, #0x34] cmp w23, w0
- blt G_M37297_IG34
+ blt G_M37297_IG33
b G_M37297_IG17 ;; size=64 bbWeight=0.00 PerfScore 0.02
-G_M37297_IG28: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M37297_IG29: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22] str wzr, [x19, #0x38] ldp w1, w0, [x19, #0x34] cmp w0, w1
- blt G_M37297_IG38
+ blt G_M37297_IG37
;; size=16 bbWeight=0.00 PerfScore 0.01
-G_M37297_IG29: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M37297_IG30: ; bbWeight=0.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
b G_M37297_IG09 ;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M37297_IG30: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M37297_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
- mov w0, wzr - ;; size=4 bbWeight=0.00 PerfScore 0.00 -G_M37297_IG31: ; bbWeight=0.00, epilog, nogc, extend - ldp x23, x24, [sp, #0x40] - ldp x21, x22, [sp, #0x30] - ldp x19, x20, [sp, #0x20] - ldp fp, lr, [sp], #0x50 - ret lr - ;; size=20 bbWeight=0.00 PerfScore 0.00 -G_M37297_IG32: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=4 bbWeight=0 PerfScore 0.00
-G_M37297_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M37297_IG32: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs +[x19] ldr w21, [x19, #0x2C]
- b G_M37297_IG27
+ b G_M37297_IG28 + ;; size=8 bbWeight=0 PerfScore 0.00 +G_M37297_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref + str w23, [x19, #0x38] + b G_M37297_IG36
;; size=8 bbWeight=0 PerfScore 0.00 G_M37297_IG34: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- str w23, [x19, #0x38] - b G_M37297_IG37 - ;; size=8 bbWeight=0 PerfScore 0.00 -G_M37297_IG35: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x08] ; gcrRegs +[x0] ldr w1, [x19, #0x38] @@ -459,20 +456,20 @@ G_M37297_IG35: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by str w0, [x19, #0x28] b G_M37297_IG06 ;; size=44 bbWeight=0 PerfScore 0.00
-G_M37297_IG36: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M37297_IG35: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
movn w0, #0 str w0, [x19, #0x28] ldr w0, [x19, #0x38] add w24, w0, #1 str w24, [x19, #0x38] ;; size=20 bbWeight=0 PerfScore 0.00
-G_M37297_IG37: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M37297_IG36: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldp w1, w0, [x19, #0x34] cmp w0, w1
- blt G_M37297_IG35
+ blt G_M37297_IG34
b G_M37297_IG09 ;; size=16 bbWeight=0 PerfScore 0.00
-G_M37297_IG38: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M37297_IG37: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x08] ; gcrRegs +[x0] ldr w1, [x19, #0x38] @@ -488,7 +485,7 @@ G_M37297_IG38: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by str w0, [x19, #0x28] b G_M37297_IG06 ;; size=44 bbWeight=0 PerfScore 0.00
-G_M37297_IG39: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M37297_IG38: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x21] add x0, fp, #24 // [V16 tmp13] mov w1, #20 @@ -500,15 +497,15 @@ G_M37297_IG39: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 { ; gcr arg pop 0 b G_M37297_IG05 ;; size=32 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M37297_IG26 - G_M37297_IG02 - dd G_M37297_IG36 - G_M37297_IG02
+RWD00 dd G_M37297_IG27 - G_M37297_IG02 + dd G_M37297_IG35 - G_M37297_IG02
dd G_M37297_IG19 - G_M37297_IG02 dd G_M37297_IG08 - G_M37297_IG02 dd G_M37297_IG03 - G_M37297_IG02 dd G_M37297_IG24 - G_M37297_IG02
-; Total bytes of code 1152, prolog size 24, PerfScore 72.97, instruction count 288, allocated bytes for code 1152 (MethodHash=bc196e4e) for method System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[long]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 1148, prolog size 24, PerfScore 72.97, instruction count 287, allocated bytes for code 1148 (MethodHash=bc196e4e) for method System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[long]:MoveNext():ubyte:this (Tier1)
; ============================================================ Unwind Info: @@ -519,7 +516,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 288 (0x00120) Actual length = 1152 (0x000480)
+ Function Length : 287 (0x0011f) Actual length = 1148 (0x00047c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+0 (0.00%) : 663208.dasm - System.Text.RegularExpressions.Tests.RegexHelpers:OptionsFromEngine(int):int (Tier1)

@@ -5,7 +5,7 @@ ; optimized using Dynamic PGO ; fp based frame ; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 4808
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 4808
; 4 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; @@ -45,9 +45,18 @@ G_M57613_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov w19, w0 ;; size=36 bbWeight=1 PerfScore 7.00 G_M57613_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cbz w19, G_M57613_IG04
+ cbnz w19, G_M57613_IG05
;; size=4 bbWeight=1 PerfScore 1.00
-G_M57613_IG03: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M57613_IG03: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + mov w0, wzr + ;; size=4 bbWeight=0.62 PerfScore 0.31 +G_M57613_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + ldr x21, [sp, #0x48] + ldp x19, x20, [sp, #0x38] + ldp fp, lr, [sp], #0x50 + ret lr + ;; size=16 bbWeight=1 PerfScore 5.00 +G_M57613_IG05: ; bbWeight=0.38, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp w19, #3 bhi G_M57613_IG08 mov w0, w19 @@ -57,22 +66,13 @@ G_M57613_IG03: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr add x1, x1, x2 br x1 ;; size=32 bbWeight=0.38 PerfScore 2.82
-G_M57613_IG04: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov w0, wzr - ;; size=4 bbWeight=0.62 PerfScore 0.31 -G_M57613_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ldr x21, [sp, #0x48] - ldp x19, x20, [sp, #0x38] - ldp fp, lr, [sp], #0x50 - ret lr - ;; size=16 bbWeight=1 PerfScore 5.00 -G_M57613_IG06: ; bbWeight=0.36, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M57613_IG06: ; bbWeight=0.36, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #8
- b G_M57613_IG05
+ b G_M57613_IG04
;; size=8 bbWeight=0.36 PerfScore 0.55 G_M57613_IG07: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w0, #0xD1FFAB1E
- b G_M57613_IG05
+ b G_M57613_IG04
;; size=8 bbWeight=0.01 PerfScore 0.02 G_M57613_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz add x0, fp, #16 // [V02 loc1] @@ -172,7 +172,7 @@ G_M57613_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0 x19] brk_unix #0 ;; size=112 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57613_IG04 - G_M57613_IG02
+RWD00 dd G_M57613_IG03 - G_M57613_IG02
dd G_M57613_IG06 - G_M57613_IG02 dd G_M57613_IG07 - G_M57613_IG02 dd G_M57613_IG06 - G_M57613_IG02

+0 (0.00%) : 663296.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)

@@ -53,7 +53,7 @@ G_M417_IG02: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 cbz w0, G_M417_IG12 ldr w22, [x20, #0x28] cmp w22, #1
- bne G_M417_IG08
+ bne G_M417_IG09
;; size=20 bbWeight=1 PerfScore 6.50 G_M417_IG03: ; bbWeight=0.76, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref ; gcrRegs -[x21] @@ -69,22 +69,17 @@ G_M417_IG03: ; bbWeight=0.76, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 ldr x3, [x3] blr x3 ; gcrRegs -[x0-x1 x19]
- ;; size=36 bbWeight=0.76 PerfScore 9.46 -G_M417_IG04: ; bbWeight=0.86, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc - ldp x21, x22, [sp, #0x40] - ldp x19, x20, [sp, #0x30] - ldp fp, lr, [sp], #0x50 - ret lr - ;; size=16 bbWeight=0.86 PerfScore 3.42 -G_M417_IG05: ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+ b G_M417_IG08 + ;; size=40 bbWeight=0.76 PerfScore 10.21 +G_M417_IG04: ; bbWeight=0.05, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21] mov x22, x20 ; gcrRegs +[x22] ldr w0, [x20, #0x28] cmp w0, #2
- bne G_M417_IG07
+ bne G_M417_IG06
;; size=16 bbWeight=0.05 PerfScore 0.23
-G_M417_IG06: ; bbWeight=0.86, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.86, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldr x0, [x22, #0x10] ; gcrRegs +[x0] mov x1, x21 @@ -101,9 +96,9 @@ G_M417_IG06: ; bbWeight=0.86, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRe ldr x22, [x22, #0x18] ldr w0, [x22, #0x28] cmp w0, #2
- beq G_M417_IG06
+ beq G_M417_IG05
;; size=52 bbWeight=0.86 PerfScore 17.27
-G_M417_IG07: ; bbWeight=0.05, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG06: ; bbWeight=0.05, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
mov x0, x22 ; gcrRegs +[x0] mov x1, x21 @@ -116,52 +111,9 @@ G_M417_IG07: ; bbWeight=0.05, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRe ldr x3, [x3] blr x3 ; gcrRegs -[x0-x2 x19 x21-x22]
- b G_M417_IG04
+ b G_M417_IG08
;; size=36 bbWeight=0.05 PerfScore 0.37
-G_M417_IG08: ; bbWeight=0.24, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[x19 x21] - cmp w22, #17 - bhi G_M417_IG04 - mov w2, w22 - adr x0, [@RWD00] - ldr w0, [x0, x2, LSL #2] - adr x1, [G_M417_IG02] - add x0, x0, x1 - br x0 - ;; size=32 bbWeight=0.24 PerfScore 1.83 -G_M417_IG09: ; bbWeight=0.04, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref - ldr x0, [x20, #0x10] - ; gcrRegs +[x0] - mov x1, x21 - ; gcrRegs +[x1] - mov x2, x19 - ; gcrRegs +[x2] - movz x3, #0xD1FFAB1E // code for System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - ldr wzr, [x0] - blr x3 - ; gcrRegs -[x0-x2 x19 x21] - b G_M417_IG04 - ;; size=40 bbWeight=0.04 PerfScore 0.58 -G_M417_IG10: ; bbWeight=0.01, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref - ; gcrRegs +[x19 x21] - ldr x1, [x21, #0x88] - ; gcrRegs +[x1] - ldrsb wzr, [x19] - add x2, fp, #32 // [V10 tmp5] - mov x0, x19 - ; gcrRegs +[x0] - movz x3, #0xD1FFAB1E // code for <unknown method> - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - ; gcrRegs -[x0-x1 x19 x21] - b G_M417_IG04 - ;; size=40 bbWeight=0.01 PerfScore 0.11 -G_M417_IG11: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M417_IG07: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21] ldr x1, [x21, #0x80] ; gcrRegs +[x1] @@ -175,8 +127,56 @@ G_M417_IG11: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0 ldr x3, [x3] blr x3 ; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04 - ;; size=40 bbWeight=0.00 PerfScore 0.02
+ ;; size=36 bbWeight=0.00 PerfScore 0.02 +G_M417_IG08: ; bbWeight=0.86, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc + ldp x21, x22, [sp, #0x40] + ldp x19, x20, [sp, #0x30] + ldp fp, lr, [sp], #0x50 + ret lr + ;; size=16 bbWeight=0.86 PerfScore 3.42 +G_M417_IG09: ; bbWeight=0.24, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz + ; gcrRegs +[x19 x21] + cmp w22, #17 + bhi G_M417_IG08 + mov w2, w22 + adr x0, [@RWD00] + ldr w0, [x0, x2, LSL #2] + adr x1, [G_M417_IG02] + add x0, x0, x1 + br x0 + ;; size=32 bbWeight=0.24 PerfScore 1.83 +G_M417_IG10: ; bbWeight=0.04, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref + ldr x0, [x20, #0x10] + ; gcrRegs +[x0] + mov x1, x21 + ; gcrRegs +[x1] + mov x2, x19 + ; gcrRegs +[x2] + movz x3, #0xD1FFAB1E // code for System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #0xD1FFAB1E LSL #32 + ldr x3, [x3] + ldr wzr, [x0] + blr x3 + ; gcrRegs -[x0-x2 x19 x21] + b G_M417_IG08 + ;; size=40 bbWeight=0.04 PerfScore 0.58 +G_M417_IG11: ; bbWeight=0.01, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref + ; gcrRegs +[x19 x21] + ldr x1, [x21, #0x88] + ; gcrRegs +[x1] + ldrsb wzr, [x19] + add x2, fp, #32 // [V10 tmp5] + mov x0, x19 + ; gcrRegs +[x0] + movz x3, #0xD1FFAB1E // code for <unknown method> + movk x3, #0xD1FFAB1E LSL #16 + movk x3, #0xD1FFAB1E LSL #32 + ldr x3, [x3] + blr x3 + ; gcrRegs -[x0-x1 x19 x21] + b G_M417_IG08 + ;; size=40 bbWeight=0.01 PerfScore 0.11
G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz ; gcrRegs +[x19 x21] ldr x0, [x20] @@ -237,7 +237,7 @@ G_M417_IG16: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs= ldr x4, [x4] blr x4 ; gcrRegs -[x1-x3 x19 x21-x22]
- b G_M417_IG04
+ b G_M417_IG08
;; size=36 bbWeight=0 PerfScore 0.00 G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref ; gcrRegs +[x19 x21] @@ -267,29 +267,29 @@ G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 ldr wzr, [x0] blr x3 ; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG08
;; size=76 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+RWD00 dd G_M417_IG08 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG05 - G_M417_IG02 - dd G_M417_IG09 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02 + dd G_M417_IG10 - G_M417_IG02
dd G_M417_IG17 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG10 - G_M417_IG02 - dd G_M417_IG10 - G_M417_IG02 - dd G_M417_IG10 - G_M417_IG02 - dd G_M417_IG10 - G_M417_IG02
+ dd G_M417_IG08 - G_M417_IG02 + dd G_M417_IG08 - G_M417_IG02
dd G_M417_IG11 - G_M417_IG02 dd G_M417_IG11 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG09 - G_M417_IG02
+ dd G_M417_IG11 - G_M417_IG02 + dd G_M417_IG11 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG08 - G_M417_IG02 + dd G_M417_IG08 - G_M417_IG02 + dd G_M417_IG08 - G_M417_IG02 + dd G_M417_IG08 - G_M417_IG02 + dd G_M417_IG10 - G_M417_IG02
-; Total bytes of code 608, prolog size 20, PerfScore 45.79, instruction count 152, allocated bytes for code 608 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
+; Total bytes of code 608, prolog size 20, PerfScore 46.55, instruction count 152, allocated bytes for code 608 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
; ============================================================ Unwind Info:

+0 (0.00%) : 664632.dasm - System.Text.RegularExpressions.RegexCharClass:CharsToStringClass(System.ReadOnlySpan`1[ushort]):System.String (Tier1)

@@ -5,7 +5,7 @@ ; optimized using Dynamic PGO ; fp based frame ; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 8829
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 8829
; 9 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; @@ -91,36 +91,26 @@ G_M30761_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=40 bbWeight=1 PerfScore 8.00 G_M30761_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz cmp w1, #2
- beq G_M30761_IG04
+ bne G_M30761_IG07
;; size=8 bbWeight=1 PerfScore 1.50
-G_M30761_IG03: ; bbWeight=0.36, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz - cmp w1, #2 - bhi G_M30761_IG11 - mov w0, w1 - adr x2, [@RWD00] - ldr w2, [x2, x0, LSL #2] - adr x3, [G_M30761_IG02] - add x2, x2, x3 - br x2 - ;; size=32 bbWeight=0.36 PerfScore 2.70 -G_M30761_IG04: ; bbWeight=0.64, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M30761_IG03: ; bbWeight=0.64, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w1, #0
- bls G_M30761_IG20
+ bls G_M30761_IG25
ldrh w20, [x19] orr w21, w20, #32 sub w0, w21, #97 cmp w0, #25 bhi G_M30761_IG11 ;; size=28 bbWeight=0.64 PerfScore 4.48
-G_M30761_IG05: ; bbWeight=0.56, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M30761_IG04: ; bbWeight=0.56, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w1, #1
- bls G_M30761_IG20
+ bls G_M30761_IG25
ldrh w2, [x19, #0x02] orr w2, w2, #32 cmp w21, w2 bne G_M30761_IG11 ;; size=24 bbWeight=0.56 PerfScore 3.62
-G_M30761_IG06: ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M30761_IG05: ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x19] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 @@ -128,7 +118,7 @@ G_M30761_IG06: ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ldr x1, [x1] ; gcrRegs +[x1] cmp w0, #26
- bhs G_M30761_IG20
+ bhs G_M30761_IG25
add x1, x1, #16 ; gcrRegs -[x1] ; byrRegs +[x1] @@ -139,18 +129,28 @@ G_M30761_IG06: ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcrRegs +[x0] cbz x0, G_M30761_IG17 ;; size=44 bbWeight=0.43 PerfScore 5.18
-G_M30761_IG07: ; bbWeight=0.43, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M30761_IG06: ; bbWeight=0.43, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[x1 x22] ldp x21, x22, [sp, #0x60] ldp x19, x20, [sp, #0x50] ldp fp, lr, [sp], #0x70 ret lr ;; size=16 bbWeight=0.43 PerfScore 1.73
-G_M30761_IG08: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
+G_M30761_IG07: ; bbWeight=0.36, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
; gcrRegs -[x0] ; byrRegs +[x19]
+ cmp w1, #2 + bhi G_M30761_IG11 + mov w0, w1 + adr x2, [@RWD00] + ldr w2, [x2, x0, LSL #2] + adr x3, [G_M30761_IG02] + add x2, x2, x3 + br x2 + ;; size=32 bbWeight=0.36 PerfScore 2.70 +G_M30761_IG08: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w1, #0
- bls G_M30761_IG20
+ bls G_M30761_IG25
ldrh w20, [x19] cmp w20, #128 bge G_M30761_IG11 @@ -162,7 +162,7 @@ G_M30761_IG09: ; bbWeight=0.27, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, ldr x0, [x0] ; gcrRegs +[x0] cmp w20, #128
- bhs G_M30761_IG20
+ bhs G_M30761_IG25
add x0, x0, #16 ; gcrRegs -[x0] ; byrRegs +[x0] @@ -187,11 +187,11 @@ G_M30761_IG11: ; bbWeight=0.30, gcVars=0000000000000000 {}, gcrefRegs=000 lsl w20, w1, #1 sub w0, w1, #1 cmp w0, w1
- bhs G_M30761_IG20
+ bhs G_M30761_IG25
ldrh w0, [x19, w0, UXTW #2] mov w2, #0xD1FFAB1E cmp w0, w2
- beq G_M30761_IG21
+ beq G_M30761_IG26
;; size=32 bbWeight=0.30 PerfScore 2.37 G_M30761_IG12: ; bbWeight=0.30, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz str x19, [fp, #0x40] // [V43 tmp34] @@ -236,7 +236,7 @@ G_M30761_IG15: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=000 ldr w0, [fp, #0x28] // [V07 loc6+0x10] ldr w1, [fp, #0x38] // [V07 loc6+0x20] cmp w0, w1
- bhi G_M30761_IG25
+ bhi G_M30761_IG20
ldr x2, [fp, #0x30] // [V07 loc6+0x18] ; byrRegs +[x2] ubfiz x3, x0, #1, #32 @@ -252,7 +252,7 @@ G_M30761_IG15: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=000 blr x1 ; byrRegs -[x2] cmp w21, #3
- blo G_M30761_IG24
+ blo G_M30761_IG23
movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 @@ -313,7 +313,7 @@ G_M30761_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=400000 {x22} ldr w0, [fp, #0x28] // [V07 loc6+0x10] ldr w1, [fp, #0x38] // [V07 loc6+0x20] cmp w0, w1
- bhi G_M30761_IG25
+ bhi G_M30761_IG20
ldr x2, [fp, #0x30] // [V07 loc6+0x18] ; byrRegs +[x2] ubfiz x3, x0, #1, #32 @@ -329,7 +329,7 @@ G_M30761_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=400000 {x22} blr x1 ; byrRegs -[x2] cmp w20, #3
- blo G_M30761_IG26
+ blo G_M30761_IG24
movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 @@ -388,7 +388,7 @@ G_M30761_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=400000 {x22} bl CORINFO_HELP_ASSIGN_REF ; gcrRegs -[x15] ; byrRegs -[x14 x22]
- b G_M30761_IG07
+ b G_M30761_IG06
;; size=164 bbWeight=0.00 PerfScore 0.10 G_M30761_IG19: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] @@ -424,26 +424,25 @@ G_M30761_IG19: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=84 bbWeight=0.00 PerfScore 0.00 G_M30761_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x2]
- bl CORINFO_HELP_RNGCHKFAIL - ;; size=4 bbWeight=0 PerfScore 0.00 -G_M30761_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref - ; byrRegs +[x19] - sub w20, w20, #1 - b G_M30761_IG12 - ;; size=8 bbWeight=0 PerfScore 0.00 -G_M30761_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; byrRegs -[x19]
+ movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException() + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + blr x0 + brk_unix #0 + ;; size=24 bbWeight=0 PerfScore 0.00 +G_M30761_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ;; size=12 bbWeight=0 PerfScore 0.00
-G_M30761_IG23: ; bbWeight=0, epilog, nogc, extend
+G_M30761_IG22: ; bbWeight=0, epilog, nogc, extend
ldp x21, x22, [sp, #0x60] ldp x19, x20, [sp, #0x50] ldp fp, lr, [sp], #0x70 ret lr ;; size=16 bbWeight=0 PerfScore 0.00
-G_M30761_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=480000 {x19 x22}, gcvars, byref
+G_M30761_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=480000 {x19 x22}, gcvars, byref
; byrRegs +[x19 x22] add x0, fp, #24 // [V07 loc6] movz x1, #0xD1FFAB1E @@ -456,17 +455,8 @@ G_M30761_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { blr x2 b G_M30761_IG16 ;; size=40 bbWeight=0 PerfScore 0.00
-G_M30761_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - ; byrRegs -[x19 x22] - movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException() - movk x0, #0xD1FFAB1E LSL #16 - movk x0, #0xD1FFAB1E LSL #32 - ldr x0, [x0] - blr x0 - brk_unix #0 - ;; size=24 bbWeight=0 PerfScore 0.00 -G_M30761_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref - ; byrRegs +[x22]
+G_M30761_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref + ; byrRegs -[x19]
add x0, fp, #24 // [V07 loc6] movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 @@ -478,9 +468,18 @@ G_M30761_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, b blr x2 b G_M30761_IG18 ;; size=40 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M30761_IG22 - G_M30761_IG02
+G_M30761_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; byrRegs -[x22] + bl CORINFO_HELP_RNGCHKFAIL + ;; size=4 bbWeight=0 PerfScore 0.00 +G_M30761_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref + ; byrRegs +[x19] + sub w20, w20, #1 + b G_M30761_IG12 + ;; size=8 bbWeight=0 PerfScore 0.00 +RWD00 dd G_M30761_IG21 - G_M30761_IG02
dd G_M30761_IG08 - G_M30761_IG02
- dd G_M30761_IG04 - G_M30761_IG02
+ dd G_M30761_IG03 - G_M30761_IG02
; Total bytes of code 1160, prolog size 36, PerfScore 42.03, instruction count 290, allocated bytes for code 1160 (MethodHash=fc3c87d6) for method System.Text.RegularExpressions.RegexCharClass:CharsToStringClass(System.ReadOnlySpan`1[ushort]):System.String (Tier1)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.arm64.checked.mch 5 1 1 3 -4 +4
benchmarks.run_tiered.linux.arm64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.arm64.checked.mch 11 0 0 11 -0 +0
libraries.crossgen2.linux.arm64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.linux.arm64.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.linux.arm64.Release.mch 18 4 0 14 -24 +0
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 0 0 0 0 -0 +0
realworld.run.linux.arm64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.linux.arm64.checked.mch 0 0 0 0 -0 +0
34 5 1 28 -28 +4

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 35,456 3,293 32,163 31 (0.09%) 31 (0.09%)
benchmarks.run_pgo.linux.arm64.checked.mch 152,104 62,013 90,091 2 (0.00%) 2 (0.00%)
benchmarks.run_tiered.linux.arm64.checked.mch 58,106 43,724 14,382 6 (0.01%) 6 (0.01%)
coreclr_tests.run.linux.arm64.checked.mch 648,884 400,206 248,678 33 (0.01%) 33 (0.01%)
libraries.crossgen2.linux.arm64.checked.mch 266,525 15 266,510 8 (0.00%) 8 (0.00%)
libraries.pmi.linux.arm64.checked.mch 300,713 6 300,707 333 (0.11%) 333 (0.11%)
libraries_tests.run.linux.arm64.Release.mch 734,063 491,226 242,837 318 (0.04%) 318 (0.04%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 304,791 21,620 283,171 469 (0.15%) 469 (0.15%)
realworld.run.linux.arm64.checked.mch 33,267 151 33,116 96 (0.29%) 96 (0.29%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,024 7 19,017 4 (0.02%) 4 (0.02%)
2,552,933 1,022,261 1,530,672 1,300 (0.05%) 1,300 (0.05%)

jit-analyze output

benchmarks.run_pgo.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 79023784 (overridden on cmd)
Total bytes of diff: 79023784 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
           4 : 24686.dasm (0.53 % of base)

Top file improvements (bytes):
          -4 : 127862.dasm (-0.53 % of base)

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

Top method regressions (bytes):
           4 (0.53 % of base) : 24686.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

Top method improvements (bytes):
          -4 (-0.53 % of base) : 127862.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

Top method regressions (percentages):
           4 (0.53 % of base) : 24686.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

Top method improvements (percentages):
          -4 (-0.53 % of base) : 127862.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

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


coreclr_tests.run.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 525847368 (overridden on cmd)
Total bytes of diff: 525847368 (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), 11 unchanged.

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


libraries_tests.run.linux.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 382591448 (overridden on cmd)
Total bytes of diff: 382591424 (overridden on cmd)
Total bytes of delta: -24 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
         -12 : 455462.dasm (-0.46 % of base)
          -4 : 624473.dasm (-0.35 % of base)
          -4 : 625027.dasm (-0.34 % of base)
          -4 : 669072.dasm (-0.43 % of base)

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

Top method improvements (bytes):
         -12 (-0.46 % of base) : 455462.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
          -4 (-0.43 % of base) : 669072.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
          -4 (-0.35 % of base) : 624473.dasm - System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[long]:MoveNext():ubyte:this (Tier1)
          -4 (-0.34 % of base) : 625027.dasm - System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[System.UInt128]:MoveNext():ubyte:this (Tier1)

Top method improvements (percentages):
         -12 (-0.46 % of base) : 455462.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
          -4 (-0.43 % of base) : 669072.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
          -4 (-0.35 % of base) : 624473.dasm - System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[long]:MoveNext():ubyte:this (Tier1)
          -4 (-0.34 % of base) : 625027.dasm - System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[System.UInt128]:MoveNext():ubyte:this (Tier1)

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



linux x64

Diffs are based on 2,540,651 contexts (986,212 MinOpts, 1,554,439 FullOpts).

MISSED contexts: 1,316 (0.05%)

Overall (+181 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 71,349,815 +28
coreclr_tests.run.linux.x64.checked.mch 417,667,412 +135
libraries_tests.run.linux.x64.Release.mch 328,359,812 +18

FullOpts (+181 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 48,788,139 +28
coreclr_tests.run.linux.x64.checked.mch 130,359,773 +135
libraries_tests.run.linux.x64.Release.mch 146,148,821 +18

Example diffs

benchmarks.run_pgo.linux.x64.checked.mch

-27 (-4.74%) : 83044.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -20,10 +20,10 @@ ; V08 loc7 [V08,T18] ( 5, 0 ) int -> r14 ; V09 loc8 [V09,T19] ( 3, 0 ) ref -> rbx class-hnd exact <System.Text.RegularExpressions.RegexNode> ;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T17] ( 5, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T17] ( 5, 0 ) ref -> r14 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T13] ( 4, 3.98) int -> r14 "Inline return value spill temp" ; V13 tmp3 [V13,T15] ( 3, 2.77) ref -> rax class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T11] ( 6, 5.96) ref -> r13 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T11] ( 6, 5.96) ref -> r15 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T01] ( 4, 13.92) ref -> r13 "CASTCLASS eval op1" ;* V16 tmp6 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode> ; V17 tmp7 [V17,T12] ( 3, 4.42) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode> @@ -51,31 +51,31 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbx, rdi ; gcrRegs +[rbx] ;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method> ; gcr arg pop 0 test eax, eax
- je SHORT G_M35244_IG08
+ je G_M35244_IG26
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG08 - ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG26 + ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref movzx rax, byte ptr [rbx+0x2E] lea edi, [rax-0x03] cmp edi, 5
- jbe G_M35244_IG26
+ jbe G_M35244_IG23
;; size=16 bbWeight=2.99 PerfScore 11.21
-G_M35244_IG04: ; bbWeight=2.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24 cmp eax, 10
- ja SHORT G_M35244_IG08
+ ja G_M35244_IG26
mov esi, eax lea rdi, [reloc @RWD00] mov edi, dword ptr [rdi+4*rsi] lea rax, G_M35244_IG02 add rdi, rax jmp rdi
- ;; size=32 bbWeight=2.95 PerfScore 22.16
+ ;; size=36 bbWeight=2.95 PerfScore 22.16
G_M35244_IG05: ; bbWeight=0.26, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref ; gcrRegs +[r15] mov r14d, 1 @@ -85,38 +85,75 @@ G_M35244_IG06: ; bbWeight=1.99, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 mov r13, r15 ; gcrRegs +[r13] test r13, r13
- je SHORT G_M35244_IG09
+ je SHORT G_M35244_IG11
;; size=11 bbWeight=1.99 PerfScore 3.48
-G_M35244_IG07: ; bbWeight=0.99, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref - jmp G_M35244_IG23 - ;; size=5 bbWeight=0.99 PerfScore 1.99 -G_M35244_IG08: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rbx r13 r15] - pop rbx - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=9 bbWeight=0.02 PerfScore 0.06 -G_M35244_IG09: ; bbWeight=1.99, gcVars=0000000000000000 {}, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx r13 r15] - test r13, r13 - jne G_M35244_IG25 - ;; size=9 bbWeight=1.99 PerfScore 2.49 -G_M35244_IG10: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG07: ; bbWeight=0.99, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz + mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode + cmp qword ptr [r13], rsi + je SHORT G_M35244_IG11 + ;; size=16 bbWeight=0.99 PerfScore 4.23 +G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
+ jmp SHORT G_M35244_IG17 + ;; size=2 bbWeight=0.50 PerfScore 0.99 +G_M35244_IG09: ; bbWeight=1.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r15] + mov r15, gword ptr [rbx+0x08] + ; gcrRegs +[r15] + test r15, r15 + jne SHORT G_M35244_IG13 + ;; size=9 bbWeight=1.99 PerfScore 6.46 +G_M35244_IG10: ; bbWeight=0.98, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + xor r14d, r14d + jmp SHORT G_M35244_IG06 + ;; size=5 bbWeight=0.98 PerfScore 2.21 +G_M35244_IG11: ; bbWeight=1.99, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[r13] + test r13, r13 + je SHORT G_M35244_IG17 + ;; size=5 bbWeight=1.99 PerfScore 2.49 +G_M35244_IG12: ; bbWeight=0.44, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r15] + mov r15, r13 + ; gcrRegs +[r15] + jmp SHORT G_M35244_IG15 + ;; size=5 bbWeight=0.44 PerfScore 0.99 +G_M35244_IG13: ; bbWeight=1.01, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r13] + mov rsi, r15 + ; gcrRegs +[rsi] + mov rdi, 0xD1FFAB1E ; <unknown class> + call CORINFO_HELP_ISINSTANCEOFCLASS + ; gcrRegs -[rsi] +[rax] + ; gcr arg pop 0 + test rax, rax + je SHORT G_M35244_IG05 + ;; size=23 bbWeight=1.01 PerfScore 2.77 +G_M35244_IG14: ; bbWeight=0.75, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz + mov r14d, dword ptr [rax+0x10] + jmp SHORT G_M35244_IG06 + ;; size=6 bbWeight=0.75 PerfScore 3.01 +G_M35244_IG15: ; bbWeight=1.99, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax] + movzx rdi, byte ptr [r15+0x2E] + cmp edi, 24 + je G_M35244_IG29 + ;; size=14 bbWeight=1.99 PerfScore 6.46 +G_M35244_IG16: ; bbWeight=1.99, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + jmp SHORT G_M35244_IG21 + ;; size=2 bbWeight=1.99 PerfScore 3.97 +G_M35244_IG17: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov r13, r15 ; gcrRegs +[r13] test r13, r13
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG20
;; size=8 bbWeight=1.55 PerfScore 2.32
-G_M35244_IG11: ; bbWeight=0.77, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.77, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class> cmp qword ptr [r13], rdi
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG20
;; size=16 bbWeight=0.77 PerfScore 3.29
-G_M35244_IG12: ; bbWeight=0.39, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.39, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13] mov rsi, r15 ; gcrRegs +[rsi] @@ -126,50 +163,67 @@ G_M35244_IG12: ; bbWeight=0.39, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 mov r13, rax ; gcrRegs +[r13] ;; size=12 bbWeight=0.39 PerfScore 1.35
-G_M35244_IG13: ; bbWeight=1.55, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=1.55, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG28
+ jae G_M35244_IG36
mov rdi, gword ptr [r13+0x08] ; gcrRegs +[rdi] cmp r14d, dword ptr [rdi+0x08]
- jae G_M35244_IG29
+ jae SHORT G_M35244_IG25
mov esi, r14d
- mov r13, gword ptr [rdi+8*rsi+0x10] - ;; size=32 bbWeight=1.55 PerfScore 18.96 -G_M35244_IG14: ; bbWeight=1.99, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref - ; gcrRegs -[rdi] - movzx rdi, byte ptr [r13+0x2E] - cmp edi, 24 - je G_M35244_IG30 - ;; size=14 bbWeight=1.99 PerfScore 6.46 -G_M35244_IG15: ; bbWeight=1.99, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+ mov r15, gword ptr [rdi+8*rsi+0x10] + ; gcrRegs +[r15] + jmp SHORT G_M35244_IG15 + ;; size=30 bbWeight=1.55 PerfScore 22.06 +G_M35244_IG21: ; bbWeight=1.99, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[rdi r13]
lea esi, [rdi-0x1A] cmp esi, 1
- jbe G_M35244_IG30
+ jbe SHORT G_M35244_IG29
add edi, -33 cmp edi, 1
- jbe G_M35244_IG30 - ;; size=24 bbWeight=1.99 PerfScore 6.46 -G_M35244_IG16: ; bbWeight=1.99, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref
+ jbe SHORT G_M35244_IG29 + ;; size=16 bbWeight=1.99 PerfScore 6.46 +G_M35244_IG22: ; bbWeight=1.99, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
- mov rbx, r13
+ mov rbx, r15
; gcrRegs +[rbx] jmp G_M35244_IG03 ;; size=8 bbWeight=1.99 PerfScore 4.47
-G_M35244_IG17: ; bbWeight=1.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz - ; gcrRegs -[r13] - mov r15, gword ptr [rbx+0x08] - ; gcrRegs +[r15] - test r15, r15 - jne SHORT G_M35244_IG21 - ;; size=9 bbWeight=1.99 PerfScore 6.46 -G_M35244_IG18: ; bbWeight=0.98, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz - jmp SHORT G_M35244_IG20 - ;; size=2 bbWeight=0.98 PerfScore 1.96 -G_M35244_IG19: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG23: ; bbWeight=0.03, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r15] mov rdi, rbx
+ ; gcrRegs +[rdi] + ;; size=3 bbWeight=0.03 PerfScore 0.01 +G_M35244_IG24: ; bbWeight=0.03, epilog, nogc, extend + pop rbx + pop r13 + pop r14 + pop r15 + pop rbp + tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this] + ; gcr arg pop 0 + ;; size=14 bbWeight=0.03 PerfScore 0.15 +G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[rbx rdi] + call CORINFO_HELP_RNGCHKFAIL + ; gcr arg pop 0 + ;; size=5 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + nop + ;; size=1 bbWeight=0 PerfScore 0.00 +G_M35244_IG27: ; bbWeight=0, epilog, nogc, extend + pop rbx + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=9 bbWeight=0 PerfScore 0.00 +G_M35244_IG28: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs +[rbx] + mov rdi, rbx
; gcrRegs +[rdi] xor esi, esi call [System.Text.RegularExpressions.RegexNode:Child(int):System.Text.RegularExpressions.RegexNode:this] @@ -179,86 +233,29 @@ G_M35244_IG19: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcrRegs +[rbx] ...

-6 (-1.42%) : 143009.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)

@@ -54,12 +54,12 @@ G_M417_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n G_M417_IG02: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz call <unknown method> test eax, eax
- je G_M417_IG14
+ je G_M417_IG13
mov r13d, dword ptr [r15+0x28] cmp r13d, 1 jne SHORT G_M417_IG09 ;; size=23 bbWeight=1 PerfScore 5.50
-G_M417_IG03: ; bbWeight=0.58, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M417_IG03: ; bbWeight=0.58, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r14] mov rsi, gword ptr [r15+0x08] ; gcrRegs +[rsi] @@ -69,27 +69,16 @@ G_M417_IG03: ; bbWeight=0.58, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {} ; gcrRegs +[rdi] call [<unknown method>] ; gcrRegs -[rbx rsi rdi]
- ;; size=19 bbWeight=0.58 PerfScore 5.08 -G_M417_IG04: ; bbWeight=0.70, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref - nop - ;; size=1 bbWeight=0.70 PerfScore 0.17 -G_M417_IG05: ; bbWeight=0.70, epilog, nogc, extend - add rsp, 32 - pop rbx - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=13 bbWeight=0.70 PerfScore 2.62 -G_M417_IG06: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M417_IG07 + ;; size=21 bbWeight=0.58 PerfScore 6.24 +G_M417_IG04: ; bbWeight=0.10, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14] mov r13, r15 ; gcrRegs +[r13] cmp dword ptr [r15+0x28], 2
- jne SHORT G_M417_IG08
+ jne SHORT G_M417_IG06
;; size=10 bbWeight=0.10 PerfScore 0.43
-G_M417_IG07: ; bbWeight=0.78, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.78, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [r13+0x10] ; gcrRegs +[rdi] mov rsi, r14 @@ -101,9 +90,9 @@ G_M417_IG07: ; bbWeight=0.78, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs ; gcrRegs -[rdx rsi rdi] mov r13, gword ptr [r13+0x18] cmp dword ptr [r13+0x28], 2
- je SHORT G_M417_IG07
+ je SHORT G_M417_IG05
;; size=29 bbWeight=0.78 PerfScore 11.35
-G_M417_IG08: ; bbWeight=0.10, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M417_IG06: ; bbWeight=0.10, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
mov rdi, r13 ; gcrRegs +[rdi] mov rsi, r14 @@ -112,12 +101,23 @@ G_M417_IG08: ; bbWeight=0.10, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs ; gcrRegs +[rdx] call [System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this] ; gcrRegs -[rdx rbx rsi rdi r13-r14]
- jmp SHORT G_M417_IG04 - ;; size=17 bbWeight=0.10 PerfScore 0.58 -G_M417_IG09: ; bbWeight=0.42, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=15 bbWeight=0.10 PerfScore 0.38 +G_M417_IG07: ; bbWeight=0.70, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref + nop + ;; size=1 bbWeight=0.70 PerfScore 0.17 +G_M417_IG08: ; bbWeight=0.70, epilog, nogc, extend + add rsp, 32 + pop rbx + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=13 bbWeight=0.70 PerfScore 2.62 +G_M417_IG09: ; bbWeight=0.42, gcVars=0000000000000000 {}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx r14] cmp r13d, 17
- ja SHORT G_M417_IG04
+ ja SHORT G_M417_IG07
mov edi, r13d lea rsi, [reloc @RWD00] mov esi, dword ptr [rsi+4*rdi] @@ -135,9 +135,9 @@ G_M417_IG10: ; bbWeight=0.02, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=000 cmp dword ptr [rdi], edi call [System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this] ; gcrRegs -[rdx rbx rsi rdi r14]
- jmp SHORT G_M417_IG04
+ jmp SHORT G_M417_IG07
;; size=20 bbWeight=0.02 PerfScore 0.17
-G_M417_IG11: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M417_IG11: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14] mov rdi, gword ptr [r15+0x10] ; gcrRegs +[rdi] @@ -157,21 +157,9 @@ G_M417_IG11: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 { cmp dword ptr [rdi], edi call [System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this] ; gcrRegs -[rdx rbx rsi rdi r14]
- jmp G_M417_IG04 - ;; size=41 bbWeight=0 PerfScore 0.00 -G_M417_IG12: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref - ; gcrRegs +[rbx r14] - mov rsi, gword ptr [r14+0x80] - ; gcrRegs +[rsi] - cmp byte ptr [rbx], bl - lea rdx, [rbp-0x40] - mov rdi, rbx - ; gcrRegs +[rdi] - call [<unknown method>] - ; gcrRegs -[rbx rsi rdi r14] - jmp G_M417_IG04 - ;; size=27 bbWeight=0 PerfScore 0.00 -G_M417_IG13: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M417_IG07 + ;; size=38 bbWeight=0 PerfScore 0.00 +G_M417_IG12: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14] mov rsi, gword ptr [r14+0x88] ; gcrRegs +[rsi] @@ -181,24 +169,24 @@ G_M417_IG13: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 { ; gcrRegs +[rdi] call [<unknown method>] ; gcrRegs -[rbx rsi rdi r14]
- jmp G_M417_IG04 - ;; size=27 bbWeight=0 PerfScore 0.00 -G_M417_IG14: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M417_IG07 + ;; size=24 bbWeight=0 PerfScore 0.00 +G_M417_IG13: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14] mov rdi, qword ptr [r15] mov rsi, qword ptr [rdi+0x38] mov rsi, qword ptr [rsi] mov rsi, qword ptr [rsi+0x40] test rsi, rsi
- je SHORT G_M417_IG15 - jmp SHORT G_M417_IG16
+ je SHORT G_M417_IG14 + jmp SHORT G_M417_IG15
;; size=21 bbWeight=0 PerfScore 0.00
-G_M417_IG15: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M417_IG14: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rsi, rax ;; size=18 bbWeight=0 PerfScore 0.00
-G_M417_IG16: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M417_IG15: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, rsi call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] @@ -216,16 +204,16 @@ G_M417_IG16: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 { mov rsi, qword ptr [rsi] mov rax, qword ptr [rsi+0x48] test rax, rax
- je SHORT G_M417_IG17
+ je SHORT G_M417_IG16
mov rdi, rax
- jmp SHORT G_M417_IG18
+ jmp SHORT G_M417_IG17
;; size=57 bbWeight=0 PerfScore 0.00
-G_M417_IG17: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
+G_M417_IG16: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdi, rax ;; size=18 bbWeight=0 PerfScore 0.00
-G_M417_IG18: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
+G_M417_IG17: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
mov rsi, r13 ; gcrRegs +[rsi] mov rdx, r14 @@ -234,29 +222,41 @@ G_M417_IG18: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=00 ; gcrRegs +[rcx] call [System.Threading.StackHelper:CallOnEmptyStack[System.__Canon,System.__Canon](System.Action`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon)] ; gcrRegs -[rcx rdx rbx rsi r13-r14]
- jmp G_M417_IG04
+ jmp G_M417_IG07
;; size=20 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+G_M417_IG18: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref + ; gcrRegs +[rbx r14] + mov rsi, gword ptr [r14+0x80] + ; gcrRegs +[rsi] + cmp byte ptr [rbx], bl + lea rdx, [rbp-0x40] + mov rdi, rbx + ; gcrRegs +[rdi] + call [<unknown method>] + ; gcrRegs -[rbx rsi rdi r14] + jmp G_M417_IG07 + ;; size=27 bbWeight=0 PerfScore 0.00 +RWD00 dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG06 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02
dd G_M417_IG10 - G_M417_IG02 dd G_M417_IG11 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG13 - G_M417_IG02 - dd G_M417_IG13 - G_M417_IG02 - dd G_M417_IG13 - G_M417_IG02 - dd G_M417_IG13 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG12 - G_M417_IG02 dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02 - dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG12 - G_M417_IG02 + dd G_M417_IG12 - G_M417_IG02 + dd G_M417_IG18 - G_M417_IG02 + dd G_M417_IG18 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02 + dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG10 - G_M417_IG02
-; Total bytes of code 422, prolog size 21, PerfScore 36.44, instruction count 116, allocated bytes for code 422 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
+; Total bytes of code 416, prolog size 21, PerfScore 37.40, instruction count 116, allocated bytes for code 416 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
; ============================================================ Unwind Info:

-1 (-0.12%) : 48479.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)

@@ -112,7 +112,7 @@ G_M37647_IG07: ; bbWeight=98.96, gcrefRegs=C009 {rax rbx r14 r15}, byrefR mov edx, ecx movzx rdx, byte ptr [rax+rdx+0x10] cmp edx, 3
- ja SHORT G_M37647_IG11
+ ja SHORT G_M37647_IG10
lea rcx, [reloc @RWD00] mov ecx, dword ptr [rcx+4*rdx] lea rdi, G_M37647_IG02 @@ -124,7 +124,7 @@ G_M37647_IG08: ; bbWeight=0.02, gcrefRegs=C009 {rax rbx r14 r15}, byrefRe ; GC ptr vars +{V06} jmp G_M37647_IG19 ;; size=9 bbWeight=0.02 PerfScore 0.06
-G_M37647_IG09: ; bbWeight=31.14, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M37647_IG09: ; bbWeight=31.14, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref
; GC ptr vars -{V06} mov gword ptr [rbp+0x78], rax ; GC ptr vars +{V06} @@ -144,9 +144,19 @@ G_M37647_IG09: ; bbWeight=31.14, gcrefRegs=C009 {rax rbx r14 r15}, byrefR mov rax, gword ptr [rbp+0x78] ; gcrRegs +[rax] mov esi, dword ptr [rbp+0x74]
- jmp SHORT G_M37647_IG11 - ;; size=43 bbWeight=31.14 PerfScore 482.63 -G_M37647_IG10: ; bbWeight=18.68, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=41 bbWeight=31.14 PerfScore 420.36 +G_M37647_IG10: ; bbWeight=98.96, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz + ; GC ptr vars -{V06} + inc esi + cmp esi, r13d + jl SHORT G_M37647_IG07 + ;; size=7 bbWeight=98.96 PerfScore 148.44 +G_M37647_IG11: ; bbWeight=0.04, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref + mov gword ptr [rbp+0x78], rax + ; GC ptr vars +{V06} + jmp G_M37647_IG19 + ;; size=9 bbWeight=0.04 PerfScore 0.12 +G_M37647_IG12: ; bbWeight=18.68, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; GC ptr vars -{V06} mov gword ptr [rbp+0x78], rax ; GC ptr vars +{V06} @@ -166,42 +176,9 @@ G_M37647_IG10: ; bbWeight=18.68, gcVars=0000000000000000 {}, gcrefRegs=C0 mov rax, gword ptr [rbp+0x78] ; gcrRegs +[rax] mov esi, dword ptr [rbp+0x74]
- ;; size=41 bbWeight=18.68 PerfScore 252.21 -G_M37647_IG11: ; bbWeight=98.96, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref - ; GC ptr vars -{V06} - inc esi - cmp esi, r13d - jl G_M37647_IG07 - ;; size=11 bbWeight=98.96 PerfScore 148.44 -G_M37647_IG12: ; bbWeight=0.04, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref - mov gword ptr [rbp+0x78], rax - ; GC ptr vars +{V06} - jmp G_M37647_IG19 - ;; size=9 bbWeight=0.04 PerfScore 0.12 -G_M37647_IG13: ; bbWeight=24.11, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz - ; GC ptr vars -{V06} - mov gword ptr [rbp+0x78], rax - ; GC ptr vars +{V06} - mov dword ptr [rbp+0x74], esi - mov r9d, esi - mov r10, gword ptr [rbx+8*r9+0x10] - ; gcrRegs +[r10] - mov rdx, gword ptr [r15+8*r9+0x10] - ; gcrRegs +[rdx] - mov rsi, r10 - ; gcrRegs +[rsi] - mov rcx, gword ptr [r14+8*r9+0x10] - ; gcrRegs +[rcx] - xor edi, edi - call [EMFloatClass:AddSubInternalFPF(ubyte,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF)] - ; gcrRegs -[rax rcx rdx rsi r10] - ; gcr arg pop 0 - mov rax, gword ptr [rbp+0x78] - ; gcrRegs +[rax] - mov esi, dword ptr [rbp+0x74] - jmp SHORT G_M37647_IG11 - ;; size=45 bbWeight=24.11 PerfScore 379.74 -G_M37647_IG14: ; bbWeight=25.03, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M37647_IG10 + ;; size=43 bbWeight=18.68 PerfScore 289.58 +G_M37647_IG13: ; bbWeight=25.03, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V06} mov gword ptr [rbp+0x78], rax ; GC ptr vars +{V06} @@ -222,8 +199,31 @@ G_M37647_IG14: ; bbWeight=25.03, gcVars=0000000000000000 {}, gcrefRegs=C0 mov rax, gword ptr [rbp+0x78] ; gcrRegs +[rax] mov esi, dword ptr [rbp+0x74]
- jmp SHORT G_M37647_IG11
+ jmp SHORT G_M37647_IG10
;; size=48 bbWeight=25.03 PerfScore 394.22
+G_M37647_IG14: ; bbWeight=24.11, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref + ; GC ptr vars -{V06} + mov gword ptr [rbp+0x78], rax + ; GC ptr vars +{V06} + mov dword ptr [rbp+0x74], esi + mov r9d, esi + mov r10, gword ptr [rbx+8*r9+0x10] + ; gcrRegs +[r10] + mov rdx, gword ptr [r15+8*r9+0x10] + ; gcrRegs +[rdx] + mov rsi, r10 + ; gcrRegs +[rsi] + mov rcx, gword ptr [r14+8*r9+0x10] + ; gcrRegs +[rcx] + xor edi, edi + call [EMFloatClass:AddSubInternalFPF(ubyte,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF)] + ; gcrRegs -[rax rcx rdx rsi r10] + ; gcr arg pop 0 + mov rax, gword ptr [rbp+0x78] + ; gcrRegs +[rax] + mov esi, dword ptr [rbp+0x74] + jmp G_M37647_IG10 + ;; size=48 bbWeight=24.11 PerfScore 379.74
G_M37647_IG15: ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref ; GC ptr vars -{V06} mov edx, esi @@ -390,17 +390,17 @@ G_M37647_IG25: ; bbWeight=0, epilog, nogc, extend pop rbp ret ;; size=18 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M37647_IG13 - G_M37647_IG02 - dd G_M37647_IG14 - G_M37647_IG02
+RWD00 dd G_M37647_IG14 - G_M37647_IG02 + dd G_M37647_IG13 - G_M37647_IG02
dd G_M37647_IG09 - G_M37647_IG02
- dd G_M37647_IG10 - G_M37647_IG02
+ dd G_M37647_IG12 - G_M37647_IG02
RWD16 dd G_M37647_IG22 - G_M37647_IG02 dd G_M37647_IG21 - G_M37647_IG02 dd G_M37647_IG16 - G_M37647_IG02 dd G_M37647_IG17 - G_M37647_IG02
-; Total bytes of code 858, prolog size 96, PerfScore 3238.03, instruction count 216, allocated bytes for code 858 (MethodHash=73346cf0) for method EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
+; Total bytes of code 857, prolog size 96, PerfScore 3213.12, instruction count 216, allocated bytes for code 857 (MethodHash=73346cf0) for method EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
; ============================================================ Unwind Info:

+15 (+2.88%) : 136262.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -51,36 +51,36 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbx, rdi ; gcrRegs +[rbx] ;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method> ; gcr arg pop 0 test eax, eax
- je SHORT G_M35244_IG09
+ je G_M35244_IG25
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG09 - ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG25 + ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=4.06, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref movzx rax, byte ptr [rbx+0x2E] lea edi, [rax-0x03] cmp edi, 5 jbe G_M35244_IG22 ;; size=16 bbWeight=4.06 PerfScore 15.24
-G_M35244_IG04: ; bbWeight=3.06, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=3.06, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24 cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG25
mov esi, eax lea rdi, [reloc @RWD00] mov edi, dword ptr [rdi+4*rsi] lea rax, G_M35244_IG02 add rdi, rax jmp rdi
- ;; size=32 bbWeight=3.06 PerfScore 22.98
+ ;; size=36 bbWeight=3.06 PerfScore 22.98
G_M35244_IG05: ; bbWeight=3.06, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz mov r15, gword ptr [rbx+0x08] ; gcrRegs +[r15] test r15, r15
- je SHORT G_M35244_IG08
+ je SHORT G_M35244_IG12
;; size=9 bbWeight=3.06 PerfScore 9.96 G_M35244_IG06: ; bbWeight=2.53, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz mov rsi, r15 @@ -90,43 +90,38 @@ G_M35244_IG06: ; bbWeight=2.53, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[rsi] +[rax] ; gcr arg pop 0 test rax, rax
- je SHORT G_M35244_IG10
+ je SHORT G_M35244_IG08
;; size=23 bbWeight=2.53 PerfScore 6.96 G_M35244_IG07: ; bbWeight=0.91, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz mov r14d, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG11
+ jmp SHORT G_M35244_IG09
;; size=6 bbWeight=0.91 PerfScore 3.65
-G_M35244_IG08: ; bbWeight=0.53, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=1.62, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- xor r14d, r14d - jmp SHORT G_M35244_IG11 - ;; size=5 bbWeight=0.53 PerfScore 1.20 -G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rbx r15] - pop rbx - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=9 bbWeight=0.00 PerfScore 0.00 -G_M35244_IG10: ; bbWeight=1.62, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx r15]
mov r14d, 1 ;; size=6 bbWeight=1.62 PerfScore 0.40
-G_M35244_IG11: ; bbWeight=3.06, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=3.06, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
dec r14d mov r13, r15 ; gcrRegs +[r13] test r13, r13 je SHORT G_M35244_IG13 ;; size=11 bbWeight=3.06 PerfScore 5.36
-G_M35244_IG12: ; bbWeight=1.53, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.53, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode cmp qword ptr [r13], rsi
- jne SHORT G_M35244_IG14
+ je SHORT G_M35244_IG13
;; size=16 bbWeight=1.53 PerfScore 6.51
+G_M35244_IG11: ; bbWeight=0.77, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r13] + jmp SHORT G_M35244_IG14 + ;; size=2 bbWeight=0.77 PerfScore 1.53 +G_M35244_IG12: ; bbWeight=0.53, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + xor r14d, r14d + jmp SHORT G_M35244_IG09 + ;; size=5 bbWeight=0.53 PerfScore 1.20
G_M35244_IG13: ; bbWeight=3.06, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r13]
test r13, r13 jne SHORT G_M35244_IG18 ;; size=5 bbWeight=3.06 PerfScore 3.83 @@ -155,7 +150,7 @@ G_M35244_IG16: ; bbWeight=0.28, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 G_M35244_IG17: ; bbWeight=1.10, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[rax] cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG33
+ jae G_M35244_IG35
mov rdi, gword ptr [r13+0x08] ; gcrRegs +[rdi] cmp r14d, dword ptr [rdi+0x08] @@ -174,15 +169,15 @@ G_M35244_IG19: ; bbWeight=3.06, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[r13] movzx rdi, byte ptr [r15+0x2E] cmp edi, 24
- je SHORT G_M35244_IG26
+ je SHORT G_M35244_IG28
;; size=10 bbWeight=3.06 PerfScore 9.96 G_M35244_IG20: ; bbWeight=3.04, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz lea esi, [rdi-0x1A] cmp esi, 1
- jbe SHORT G_M35244_IG26
+ jbe SHORT G_M35244_IG28
add edi, -33 cmp edi, 1
- jbe SHORT G_M35244_IG26
+ jbe SHORT G_M35244_IG28
;; size=16 bbWeight=3.04 PerfScore 9.89 G_M35244_IG21: ; bbWeight=3.06, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref ; gcrRegs -[rbx] @@ -209,7 +204,18 @@ G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + nop + ;; size=1 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend + pop rbx + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=9 bbWeight=0 PerfScore 0.00 +G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx] mov rdi, rbx ; gcrRegs +[rdi] @@ -221,16 +227,16 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcrRegs +[rbx] jmp G_M35244_IG03 ;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[r15] cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG27
+ je SHORT G_M35244_IG29
mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] cmp byte ptr [rdi+0x2E], 32 je SHORT G_M35244_IG21 ;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi] mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode call CORINFO_HELP_NEWSFAST @@ -263,7 +269,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp G_M35244_IG21 ;; size=72 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] +[rbx] mov rdi, rbx ; gcrRegs +[rdi] @@ -272,9 +278,9 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov r15d, eax mov r14d, 1
- jmp SHORT G_M35244_IG30
+ jmp SHORT G_M35244_IG32
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, rbx ; gcrRegs +[rdi] mov esi, r14d @@ -289,20 +295,20 @@ G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 inc r14d ;; size=26 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r14d, r15d
- jl SHORT G_M35244_IG29
+ jl SHORT G_M35244_IG31
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG09 - jmp G_M35244_IG25
+ je G_M35244_IG25 + jmp G_M35244_IG27
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x20] mov dword ptr [rbx+0x24], edi ;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
cmp dword ptr [rbx+0x24], 1
- je G_M35244_IG25
+ je G_M35244_IG27
mov rdi, rbx ; gcrRegs +[rdi] call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this] @@ -311,29 +317,29 @@ G_M35244_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov rbx, rax ; gcrRegs +[rbx] test rbx, rbx
- je G_M35244_IG09
+ je G_M35244_IG25
jmp G_M35244_IG03 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG35: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx] call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG28 - G_M35244_IG02
+RWD00 dd G_M35244_IG30 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG32 - G_M35244_IG02 - dd G_M35244_IG31 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02 + dd G_M35244_IG33 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG09 - G_M35244_IG02
dd G_M35244_IG25 - G_M35244_IG02
- dd G_M35244_IG25 - G_M35244_IG02 - dd G_M35244_IG25 - G_M35244_IG02 - dd G_M35244_IG28 - G_M35244_IG02 - dd G_M35244_IG28 - G_M35244_IG02
...

+15 (+2.89%) : 25942.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -51,36 +51,36 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbx, rdi ; gcrRegs +[rbx] ;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method> ; gcr arg pop 0 test eax, eax
- je SHORT G_M35244_IG09
+ je G_M35244_IG26
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG09 - ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG26 + ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref movzx rax, byte ptr [rbx+0x2E] lea edi, [rax-0x03] cmp edi, 5 jbe G_M35244_IG23 ;; size=16 bbWeight=3.97 PerfScore 14.89
-G_M35244_IG04: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24 cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG26
mov esi, eax lea rdi, [reloc @RWD00] mov edi, dword ptr [rdi+4*rsi] lea rax, G_M35244_IG02 add rdi, rax jmp rdi
- ;; size=32 bbWeight=2.97 PerfScore 22.29
+ ;; size=36 bbWeight=2.97 PerfScore 22.29
G_M35244_IG05: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz mov r15, gword ptr [rbx+0x08] ; gcrRegs +[r15] test r15, r15
- je SHORT G_M35244_IG08
+ je SHORT G_M35244_IG12
;; size=9 bbWeight=2.97 PerfScore 9.66 G_M35244_IG06: ; bbWeight=2.46, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz mov rsi, r15 @@ -90,43 +90,38 @@ G_M35244_IG06: ; bbWeight=2.46, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[rsi] +[rax] ; gcr arg pop 0 test rax, rax
- je SHORT G_M35244_IG10
+ je SHORT G_M35244_IG08
;; size=23 bbWeight=2.46 PerfScore 6.76 G_M35244_IG07: ; bbWeight=0.88, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz mov r14d, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG11
+ jmp SHORT G_M35244_IG09
;; size=6 bbWeight=0.88 PerfScore 3.54
-G_M35244_IG08: ; bbWeight=0.51, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=1.57, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- xor r14d, r14d - jmp SHORT G_M35244_IG11 - ;; size=5 bbWeight=0.51 PerfScore 1.15 -G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rbx r15] - pop rbx - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=9 bbWeight=0.00 PerfScore 0.01 -G_M35244_IG10: ; bbWeight=1.57, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx r15]
mov r14d, 1 ;; size=6 bbWeight=1.57 PerfScore 0.39
-G_M35244_IG11: ; bbWeight=2.97, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=2.97, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
dec r14d mov r13, r15 ; gcrRegs +[r13] test r13, r13 je SHORT G_M35244_IG13 ;; size=11 bbWeight=2.97 PerfScore 5.20
-G_M35244_IG12: ; bbWeight=1.49, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.49, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode cmp qword ptr [r13], rsi
- jne SHORT G_M35244_IG14
+ je SHORT G_M35244_IG13
;; size=16 bbWeight=1.49 PerfScore 6.31
+G_M35244_IG11: ; bbWeight=0.74, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r13] + jmp SHORT G_M35244_IG14 + ;; size=2 bbWeight=0.74 PerfScore 1.49 +G_M35244_IG12: ; bbWeight=0.51, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + xor r14d, r14d + jmp SHORT G_M35244_IG09 + ;; size=5 bbWeight=0.51 PerfScore 1.15
G_M35244_IG13: ; bbWeight=2.97, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r13]
test r13, r13 jne SHORT G_M35244_IG19 ;; size=5 bbWeight=2.97 PerfScore 3.71 @@ -155,7 +150,7 @@ G_M35244_IG16: ; bbWeight=0.27, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 G_M35244_IG17: ; bbWeight=1.08, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref ; gcrRegs -[rax] cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG34
+ jae G_M35244_IG36
;; size=10 bbWeight=1.08 PerfScore 4.32 G_M35244_IG18: ; bbWeight=1.08, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz mov rdi, gword ptr [r13+0x08] @@ -176,15 +171,15 @@ G_M35244_IG20: ; bbWeight=2.97, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[r13] movzx rdi, byte ptr [r15+0x2E] cmp edi, 24
- je SHORT G_M35244_IG27
+ je SHORT G_M35244_IG29
;; size=10 bbWeight=2.97 PerfScore 9.66 G_M35244_IG21: ; bbWeight=2.97, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz lea esi, [rdi-0x1A] cmp esi, 1
- jbe SHORT G_M35244_IG27
+ jbe SHORT G_M35244_IG29
add edi, -33 cmp edi, 1
- jbe SHORT G_M35244_IG27
+ jbe SHORT G_M35244_IG29
;; size=16 bbWeight=2.97 PerfScore 9.64 G_M35244_IG22: ; bbWeight=2.97, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref ; gcrRegs -[rbx] @@ -211,7 +206,18 @@ G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + nop + ;; size=1 bbWeight=0 PerfScore 0.00 +G_M35244_IG27: ; bbWeight=0, epilog, nogc, extend + pop rbx + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=9 bbWeight=0 PerfScore 0.00 +G_M35244_IG28: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx] mov rdi, rbx ; gcrRegs +[rdi] @@ -223,16 +229,16 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcrRegs +[rbx] jmp G_M35244_IG03 ;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[r15] cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG28
+ je SHORT G_M35244_IG30
mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] cmp byte ptr [rdi+0x2E], 32 je SHORT G_M35244_IG22 ;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi] mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode call CORINFO_HELP_NEWSFAST @@ -265,7 +271,7 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp G_M35244_IG22 ;; size=72 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] +[rbx] mov rdi, rbx ; gcrRegs +[rdi] @@ -274,9 +280,9 @@ G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov r15d, eax mov r14d, 1
- jmp SHORT G_M35244_IG31
+ jmp SHORT G_M35244_IG33
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, rbx ; gcrRegs +[rdi] mov esi, r14d @@ -291,20 +297,20 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 inc r14d ;; size=26 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r14d, r15d
- jl SHORT G_M35244_IG30
+ jl SHORT G_M35244_IG32
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG09 - jmp G_M35244_IG26
+ je G_M35244_IG26 + jmp G_M35244_IG28
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x20] mov dword ptr [rbx+0x24], edi ;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG35: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
cmp dword ptr [rbx+0x24], 1
- je G_M35244_IG26
+ je G_M35244_IG28
mov rdi, rbx ; gcrRegs +[rdi] call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this] @@ -313,29 +319,29 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov rbx, rax ; gcrRegs +[rbx] test rbx, rbx
- je G_M35244_IG09
+ je G_M35244_IG26
jmp G_M35244_IG03 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG34: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG36: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx] call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG29 - G_M35244_IG02
+RWD00 dd G_M35244_IG31 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG33 - G_M35244_IG02 - dd G_M35244_IG32 - G_M35244_IG02
+ dd G_M35244_IG35 - G_M35244_IG02 + dd G_M35244_IG34 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG09 - G_M35244_IG02
dd G_M35244_IG26 - G_M35244_IG02
- dd G_M35244_IG26 - G_M35244_IG02 - dd G_M35244_IG26 - G_M35244_IG02 - dd G_M35244_IG29 - G_M35244_IG02 - dd G_M35244_IG29 - G_M35244_IG02
...

+15 (+2.89%) : 148478.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -51,36 +51,36 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbx, rdi ; gcrRegs +[rbx] ;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method> ; gcr arg pop 0 test eax, eax
- je SHORT G_M35244_IG09
+ je G_M35244_IG25
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG09 - ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG25 + ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=4.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref movzx rax, byte ptr [rbx+0x2E] lea edi, [rax-0x03] cmp edi, 5 jbe G_M35244_IG22 ;; size=16 bbWeight=4.02 PerfScore 15.09
-G_M35244_IG04: ; bbWeight=3.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=3.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24 cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG25
mov esi, eax lea rdi, [reloc @RWD00] mov edi, dword ptr [rdi+4*rsi] lea rax, G_M35244_IG02 add rdi, rax jmp rdi
- ;; size=32 bbWeight=3.02 PerfScore 22.67
+ ;; size=36 bbWeight=3.02 PerfScore 22.67
G_M35244_IG05: ; bbWeight=3.02, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz mov r15, gword ptr [rbx+0x08] ; gcrRegs +[r15] test r15, r15
- je SHORT G_M35244_IG08
+ je SHORT G_M35244_IG12
;; size=9 bbWeight=3.02 PerfScore 9.83 G_M35244_IG06: ; bbWeight=2.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz mov rsi, r15 @@ -90,43 +90,38 @@ G_M35244_IG06: ; bbWeight=2.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[rsi] +[rax] ; gcr arg pop 0 test rax, rax
- je SHORT G_M35244_IG10
+ je SHORT G_M35244_IG08
;; size=23 bbWeight=2.50 PerfScore 6.87 G_M35244_IG07: ; bbWeight=0.90, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz mov r14d, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG11
+ jmp SHORT G_M35244_IG09
;; size=6 bbWeight=0.90 PerfScore 3.61
-G_M35244_IG08: ; bbWeight=0.52, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=1.60, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- xor r14d, r14d - jmp SHORT G_M35244_IG11 - ;; size=5 bbWeight=0.52 PerfScore 1.18 -G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rbx r15] - pop rbx - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=9 bbWeight=0.00 PerfScore 0.01 -G_M35244_IG10: ; bbWeight=1.60, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx r15]
mov r14d, 1 ;; size=6 bbWeight=1.60 PerfScore 0.40
-G_M35244_IG11: ; bbWeight=3.02, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=3.02, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
dec r14d mov r13, r15 ; gcrRegs +[r13] test r13, r13 je SHORT G_M35244_IG13 ;; size=11 bbWeight=3.02 PerfScore 5.29
-G_M35244_IG12: ; bbWeight=1.51, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.51, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode cmp qword ptr [r13], rsi
- jne SHORT G_M35244_IG14
+ je SHORT G_M35244_IG13
;; size=16 bbWeight=1.51 PerfScore 6.42
+G_M35244_IG11: ; bbWeight=0.76, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r13] + jmp SHORT G_M35244_IG14 + ;; size=2 bbWeight=0.76 PerfScore 1.51 +G_M35244_IG12: ; bbWeight=0.52, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + xor r14d, r14d + jmp SHORT G_M35244_IG09 + ;; size=5 bbWeight=0.52 PerfScore 1.18
G_M35244_IG13: ; bbWeight=3.02, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[r13]
test r13, r13 jne SHORT G_M35244_IG18 ;; size=5 bbWeight=3.02 PerfScore 3.78 @@ -155,7 +150,7 @@ G_M35244_IG16: ; bbWeight=0.27, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 G_M35244_IG17: ; bbWeight=1.09, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[rax] cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG33
+ jae G_M35244_IG35
mov rdi, gword ptr [r13+0x08] ; gcrRegs +[rdi] cmp r14d, dword ptr [rdi+0x08] @@ -174,15 +169,15 @@ G_M35244_IG19: ; bbWeight=3.02, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[r13] movzx rdi, byte ptr [r15+0x2E] cmp edi, 24
- je SHORT G_M35244_IG26
+ je SHORT G_M35244_IG28
;; size=10 bbWeight=3.02 PerfScore 9.83 G_M35244_IG20: ; bbWeight=3.02, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz lea esi, [rdi-0x1A] cmp esi, 1
- jbe SHORT G_M35244_IG26
+ jbe SHORT G_M35244_IG28
add edi, -33 cmp edi, 1
- jbe SHORT G_M35244_IG26
+ jbe SHORT G_M35244_IG28
;; size=16 bbWeight=3.02 PerfScore 9.82 G_M35244_IG21: ; bbWeight=3.02, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref ; gcrRegs -[rbx] @@ -209,7 +204,18 @@ G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + nop + ;; size=1 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend + pop rbx + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=9 bbWeight=0 PerfScore 0.00 +G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx] mov rdi, rbx ; gcrRegs +[rdi] @@ -221,16 +227,16 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcrRegs +[rbx] jmp G_M35244_IG03 ;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[r15] cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG27
+ je SHORT G_M35244_IG29
mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] cmp byte ptr [rdi+0x2E], 32 je SHORT G_M35244_IG21 ;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi] mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode call CORINFO_HELP_NEWSFAST @@ -263,7 +269,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp G_M35244_IG21 ;; size=72 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] +[rbx] mov rdi, rbx ; gcrRegs +[rdi] @@ -272,9 +278,9 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov r15d, eax mov r14d, 1
- jmp SHORT G_M35244_IG30
+ jmp SHORT G_M35244_IG32
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, rbx ; gcrRegs +[rdi] mov esi, r14d @@ -289,20 +295,20 @@ G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 inc r14d ;; size=26 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r14d, r15d
- jl SHORT G_M35244_IG29
+ jl SHORT G_M35244_IG31
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG09 - jmp G_M35244_IG25
+ je G_M35244_IG25 + jmp G_M35244_IG27
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x20] mov dword ptr [rbx+0x24], edi ;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
cmp dword ptr [rbx+0x24], 1
- je G_M35244_IG25
+ je G_M35244_IG27
mov rdi, rbx ; gcrRegs +[rdi] call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this] @@ -311,29 +317,29 @@ G_M35244_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov rbx, rax ; gcrRegs +[rbx] test rbx, rbx
- je G_M35244_IG09
+ je G_M35244_IG25
jmp G_M35244_IG03 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG35: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx] call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG28 - G_M35244_IG02
+RWD00 dd G_M35244_IG30 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG32 - G_M35244_IG02 - dd G_M35244_IG31 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02 + dd G_M35244_IG33 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG09 - G_M35244_IG02
dd G_M35244_IG25 - G_M35244_IG02
- dd G_M35244_IG25 - G_M35244_IG02 - dd G_M35244_IG25 - G_M35244_IG02 - dd G_M35244_IG28 - G_M35244_IG02 - dd G_M35244_IG28 - G_M35244_IG02
...

coreclr_tests.run.linux.x64.checked.mch

-7 (-0.90%) : 288435.dasm - DefaultNamespace.GCVariant2:runTest(int,int):ubyte:this (Tier1-OSR)

@@ -84,11 +84,11 @@ G_M46668_IG03: ; bbWeight=0.01, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, ; byrRegs -[rdi] xor r13d, r13d ;; size=33 bbWeight=0.01 PerfScore 0.03
-G_M46668_IG04: ; bbWeight=0.01, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M46668_IG04: ; bbWeight=0.01, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
cmp r13d, ebx
- jge G_M46668_IG15 - ;; size=9 bbWeight=0.01 PerfScore 0.01 -G_M46668_IG05: ; bbWeight=99.99, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ jge SHORT G_M46668_IG08 + ;; size=5 bbWeight=0.01 PerfScore 0.01 +G_M46668_IG05: ; bbWeight=99.99, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
mov edi, r13d sar edi, 31 and edi, 7 @@ -97,14 +97,14 @@ G_M46668_IG05: ; bbWeight=99.99, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, mov eax, r13d sub eax, edi cmp eax, 7
- ja G_M46668_IG14
+ ja SHORT G_M46668_IG07
mov edi, eax lea rax, [reloc @RWD00] mov eax, dword ptr [rax+4*rdi] lea rcx, G_M46668_IG02 add rax, rcx jmp rax
- ;; size=53 bbWeight=99.99 PerfScore 924.91
+ ;; size=49 bbWeight=99.99 PerfScore 924.91
G_M46668_IG06: ; bbWeight=12.64, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref mov rdi, 0xD1FFAB1E ; <unknown class> call CORINFO_HELP_NEWSFAST @@ -124,10 +124,24 @@ G_M46668_IG06: ; bbWeight=12.64, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, ; gcrRegs +[rax] ; gcr arg pop 0 mov dword ptr [rax+0x08], r13d
- jmp G_M46668_IG14 - ;; size=59 bbWeight=12.64 PerfScore 151.69 -G_M46668_IG07: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ ;; size=54 bbWeight=12.64 PerfScore 126.41 +G_M46668_IG07: ; bbWeight=99.99, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
+ inc r13d + cmp r13d, ebx + jl SHORT G_M46668_IG05 + ;; size=8 bbWeight=99.99 PerfScore 149.99 +G_M46668_IG08: ; bbWeight=0.01, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref + mov edi, -1 + mov esi, 2 + call <unknown method> + ; gcr arg pop 0 + inc r12d + cmp r12d, r14d + jge G_M46668_IG16 + jmp G_M46668_IG03 + ;; size=32 bbWeight=0.01 PerfScore 0.05 +G_M46668_IG09: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class> call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] @@ -146,9 +160,9 @@ G_M46668_IG07: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, ; gcrRegs +[rax] ; gcr arg pop 0 mov byte ptr [rax+0x08], 0
- jmp G_M46668_IG14 - ;; size=59 bbWeight=12.48 PerfScore 149.78 -G_M46668_IG08: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M46668_IG07 + ;; size=56 bbWeight=12.48 PerfScore 149.78 +G_M46668_IG10: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] mov rdi, 0xD1FFAB1E ; <unknown class> call CORINFO_HELP_NEWSFAST @@ -173,53 +187,53 @@ G_M46668_IG08: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, ; gcr arg pop 0 vmovss xmm0, dword ptr [rbp-0x2C] vmovss dword ptr [rax+0x08], xmm0
- jmp G_M46668_IG14
+ jmp G_M46668_IG07
;; size=88 bbWeight=12.48 PerfScore 453.49
-G_M46668_IG09: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref - ; gcrRegs -[rax] - mov rdi, 0xD1FFAB1E ; <unknown class> - call CORINFO_HELP_NEWSFAST - ; gcrRegs +[rax] - ; gcr arg pop 0 - mov rdi, gword ptr [r15+0x08] - ; gcrRegs +[rdi] - mov byte ptr [rax+0x08], r13b - mov rdx, rax - ; gcrRegs +[rdx] - movsxd rsi, r13d - call [CORINFO_HELP_ARRADDR_ST] - ; gcrRegs -[rax rdx rdi] - ; gcr arg pop 0 - mov rdi, 0xD1FFAB1E ; <unknown class> - call CORINFO_HELP_NEWSFAST - ; gcrRegs +[rax] - ; gcr arg pop 0 - mov byte ptr [rax+0x08], r13b - jmp G_M46668_IG14 - ;; size=59 bbWeight=12.48 PerfScore 149.78 -G_M46668_IG10: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref - ; gcrRegs -[rax] - mov rdi, 0xD1FFAB1E ; <unknown class> - call CORINFO_HELP_NEWSFAST - ; gcrRegs +[rax] - ; gcr arg pop 0 - mov rdi, gword ptr [r15+0x08] - ; gcrRegs +[rdi] - mov word ptr [rax+0x08], r13w - mov rdx, rax - ; gcrRegs +[rdx] - movsxd rsi, r13d - call [CORINFO_HELP_ARRADDR_ST] - ; gcrRegs -[rax rdx rdi] - ; gcr arg pop 0 - mov rdi, 0xD1FFAB1E ; <unknown class> - call CORINFO_HELP_NEWSFAST - ; gcrRegs +[rax] - ; gcr arg pop 0 - mov word ptr [rax+0x08], r13w - jmp G_M46668_IG14 - ;; size=61 bbWeight=12.48 PerfScore 149.78
G_M46668_IG11: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax] + mov rdi, 0xD1FFAB1E ; <unknown class> + call CORINFO_HELP_NEWSFAST + ; gcrRegs +[rax] + ; gcr arg pop 0 + mov rdi, gword ptr [r15+0x08] + ; gcrRegs +[rdi] + mov byte ptr [rax+0x08], r13b + mov rdx, rax + ; gcrRegs +[rdx] + movsxd rsi, r13d + call [CORINFO_HELP_ARRADDR_ST] + ; gcrRegs -[rax rdx rdi] + ; gcr arg pop 0 + mov rdi, 0xD1FFAB1E ; <unknown class> + call CORINFO_HELP_NEWSFAST + ; gcrRegs +[rax] + ; gcr arg pop 0 + mov byte ptr [rax+0x08], r13b + jmp G_M46668_IG07 + ;; size=59 bbWeight=12.48 PerfScore 149.78 +G_M46668_IG12: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax] + mov rdi, 0xD1FFAB1E ; <unknown class> + call CORINFO_HELP_NEWSFAST + ; gcrRegs +[rax] + ; gcr arg pop 0 + mov rdi, gword ptr [r15+0x08] + ; gcrRegs +[rdi] + mov word ptr [rax+0x08], r13w + mov rdx, rax + ; gcrRegs +[rdx] + movsxd rsi, r13d + call [CORINFO_HELP_ARRADDR_ST] + ; gcrRegs -[rax rdx rdi] + ; gcr arg pop 0 + mov rdi, 0xD1FFAB1E ; <unknown class> + call CORINFO_HELP_NEWSFAST + ; gcrRegs +[rax] + ; gcr arg pop 0 + mov word ptr [rax+0x08], r13w + jmp G_M46668_IG07 + ;; size=61 bbWeight=12.48 PerfScore 149.78 +G_M46668_IG13: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] mov rdi, 0xD1FFAB1E ; <unknown class> call CORINFO_HELP_NEWSFAST @@ -241,9 +255,9 @@ G_M46668_IG11: ; bbWeight=12.48, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, ; gcr arg pop 0 movsxd rdi, r13d mov qword ptr [rax+0x08], rdi
- jmp G_M46668_IG14
+ jmp G_M46668_IG07
;; size=65 bbWeight=12.48 PerfScore 156.02
-G_M46668_IG12: ; bbWeight=12.47, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+G_M46668_IG14: ; bbWeight=12.47, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] mov rdi, 0xD1FFAB1E ; <unknown class> call CORINFO_HELP_NEWSFAST @@ -268,9 +282,9 @@ G_M46668_IG12: ; bbWeight=12.47, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, ; gcr arg pop 0 vmovsd xmm0, qword ptr [rbp-0x38] vmovsd qword ptr [rax+0x08], xmm0
- jmp SHORT G_M46668_IG14 - ;; size=85 bbWeight=12.47 PerfScore 478.07 -G_M46668_IG13: ; bbWeight=12.47, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ jmp G_M46668_IG07 + ;; size=88 bbWeight=12.47 PerfScore 478.07 +G_M46668_IG15: ; bbWeight=12.47, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] mov rdi, 0xD1FFAB1E ; <unknown class> call CORINFO_HELP_NEWSFAST @@ -290,24 +304,10 @@ G_M46668_IG13: ; bbWeight=12.47, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, ; gcrRegs +[rax] ; gcr arg pop 0 mov word ptr [rax+0x08], r13w
- ;; size=56 bbWeight=12.47 PerfScore 124.71 -G_M46668_IG14: ; bbWeight=99.99, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref - ; gcrRegs -[rax] - inc r13d - cmp r13d, ebx - jl G_M46668_IG05 - ;; size=12 bbWeight=99.99 PerfScore 149.99 -G_M46668_IG15: ; bbWeight=0.01, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref - mov edi, -1 - mov esi, 2 - call <unknown method> - ; gcr arg pop 0 - inc r12d - cmp r12d, r14d - jl G_M46668_IG03 - ;; size=27 bbWeight=0.01 PerfScore 0.03
+ jmp G_M46668_IG07 + ;; size=61 bbWeight=12.47 PerfScore 149.66
G_M46668_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r15]
+ ; gcrRegs -[rax r15]
mov eax, 1 ;; size=5 bbWeight=0 PerfScore 0.00 G_M46668_IG17: ; bbWeight=0, epilog, nogc, extend @@ -321,19 +321,19 @@ G_M46668_IG17: ; bbWeight=0, epilog, nogc, extend ret ;; size=18 bbWeight=0 PerfScore 0.00 RWD00 dd G_M46668_IG06 - G_M46668_IG02
- dd G_M46668_IG07 - G_M46668_IG02 - dd G_M46668_IG08 - G_M46668_IG02
dd G_M46668_IG09 - G_M46668_IG02 dd G_M46668_IG10 - G_M46668_IG02 dd G_M46668_IG11 - G_M46668_IG02 dd G_M46668_IG12 - G_M46668_IG02 dd G_M46668_IG13 - G_M46668_IG02
+ dd G_M46668_IG14 - G_M46668_IG02 + dd G_M46668_IG15 - G_M46668_IG02
RWD32 dd 40400000h ; 3 RWD36 dd 00000000h RWD40 dq 3FD51EB851EB851Fh ; 0.33
-; Total bytes of code 782, prolog size 91, PerfScore 2910.02, instruction count 157, allocated bytes for code 782 (MethodHash=10ee49b3) for method DefaultNamespace.GCVariant2:runTest(int,int):ubyte:this (Tier1-OSR)
+; Total bytes of code 775, prolog size 91, PerfScore 2909.70, instruction count 158, allocated bytes for code 775 (MethodHash=10ee49b3) for method DefaultNamespace.GCVariant2:runTest(int,int):ubyte:this (Tier1-OSR)
; ============================================================ Unwind Info:

-1 (-0.12%) : 243545.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)

@@ -106,7 +106,7 @@ G_M37647_IG06: ; bbWeight=98.96, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR mov edi, esi movzx rdi, byte ptr [rcx+rdi+0x10] cmp edi, 3
- ja SHORT G_M37647_IG09
+ ja SHORT G_M37647_IG08
mov esi, edi lea rdi, [reloc @RWD00] mov edi, dword ptr [rdi+4*rsi] @@ -114,7 +114,7 @@ G_M37647_IG06: ; bbWeight=98.96, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR add rdi, r8 jmp rdi ;; size=63 bbWeight=98.96 PerfScore 1533.89
-G_M37647_IG07: ; bbWeight=30.76, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M37647_IG07: ; bbWeight=30.76, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref
mov gword ptr [rbp+0x78], rcx ; GC ptr vars +{V06} mov dword ptr [rbp+0x74], eax @@ -131,10 +131,17 @@ G_M37647_IG07: ; bbWeight=30.76, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR mov eax, dword ptr [rbp+0x74] mov rcx, gword ptr [rbp+0x78] ; gcrRegs +[rcx]
- jmp SHORT G_M37647_IG09 - ;; size=40 bbWeight=30.76 PerfScore 469.16 -G_M37647_IG08: ; bbWeight=18.46, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=38 bbWeight=30.76 PerfScore 407.63 +G_M37647_IG08: ; bbWeight=98.96, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V06}
+ inc eax + cmp eax, r13d + jl SHORT G_M37647_IG06 + ;; size=7 bbWeight=98.96 PerfScore 148.44 +G_M37647_IG09: ; bbWeight=0.04, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref + jmp G_M37647_IG17 + ;; size=5 bbWeight=0.04 PerfScore 0.08 +G_M37647_IG10: ; bbWeight=18.46, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov gword ptr [rbp+0x78], rcx ; GC ptr vars +{V06} mov dword ptr [rbp+0x74], eax @@ -151,17 +158,10 @@ G_M37647_IG08: ; bbWeight=18.46, gcVars=0000000000000000 {}, gcrefRegs=C0 mov eax, dword ptr [rbp+0x74] mov rcx, gword ptr [rbp+0x78] ; gcrRegs +[rcx]
- ;; size=38 bbWeight=18.46 PerfScore 244.58 -G_M37647_IG09: ; bbWeight=98.96, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ jmp SHORT G_M37647_IG08 + ;; size=40 bbWeight=18.46 PerfScore 281.50 +G_M37647_IG11: ; bbWeight=24.99, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V06}
- inc eax - cmp eax, r13d - jl G_M37647_IG06 - ;; size=11 bbWeight=98.96 PerfScore 148.44 -G_M37647_IG10: ; bbWeight=0.04, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref - jmp G_M37647_IG17 - ;; size=5 bbWeight=0.04 PerfScore 0.08 -G_M37647_IG11: ; bbWeight=24.99, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov gword ptr [rbp+0x78], rcx ; GC ptr vars +{V06} mov dword ptr [rbp+0x74], eax @@ -180,9 +180,9 @@ G_M37647_IG11: ; bbWeight=24.99, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR mov eax, dword ptr [rbp+0x74] mov rcx, gword ptr [rbp+0x78] ; gcrRegs +[rcx]
- jmp SHORT G_M37647_IG09
+ jmp SHORT G_M37647_IG08
;; size=45 bbWeight=24.99 PerfScore 393.55
-G_M37647_IG12: ; bbWeight=24.75, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M37647_IG12: ; bbWeight=24.75, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V06} mov gword ptr [rbp+0x78], rcx ; GC ptr vars +{V06} @@ -202,8 +202,8 @@ G_M37647_IG12: ; bbWeight=24.75, gcVars=0000000000000000 {}, gcrefRegs=C0 mov eax, dword ptr [rbp+0x74] mov rcx, gword ptr [rbp+0x78] ; gcrRegs +[rcx]
- jmp SHORT G_M37647_IG09 - ;; size=48 bbWeight=24.75 PerfScore 389.81
+ jmp G_M37647_IG08 + ;; size=51 bbWeight=24.75 PerfScore 389.81
G_M37647_IG13: ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref ; GC ptr vars -{V06} mov edi, eax @@ -370,14 +370,14 @@ G_M37647_IG22: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { RWD00 dd G_M37647_IG11 - G_M37647_IG02 dd G_M37647_IG12 - G_M37647_IG02 dd G_M37647_IG07 - G_M37647_IG02
- dd G_M37647_IG08 - G_M37647_IG02
+ dd G_M37647_IG10 - G_M37647_IG02
RWD16 dd G_M37647_IG20 - G_M37647_IG02 dd G_M37647_IG21 - G_M37647_IG02 dd G_M37647_IG14 - G_M37647_IG02 dd G_M37647_IG15 - G_M37647_IG02
-; Total bytes of code 834, prolog size 96, PerfScore 3249.41, instruction count 210, allocated bytes for code 834 (MethodHash=73346cf0) for method EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
+; Total bytes of code 833, prolog size 96, PerfScore 3224.80, instruction count 210, allocated bytes for code 833 (MethodHash=73346cf0) for method EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
; ============================================================ Unwind Info:

-1 (-0.12%) : 243548.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)

@@ -106,7 +106,7 @@ G_M37647_IG06: ; bbWeight=98.97, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR mov edi, esi movzx rdi, byte ptr [rcx+rdi+0x10] cmp edi, 3
- ja SHORT G_M37647_IG09
+ ja SHORT G_M37647_IG08
mov esi, edi lea rdi, [reloc @RWD00] mov edi, dword ptr [rdi+4*rsi] @@ -114,7 +114,7 @@ G_M37647_IG06: ; bbWeight=98.97, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR add rdi, r8 jmp rdi ;; size=63 bbWeight=98.97 PerfScore 1533.97
-G_M37647_IG07: ; bbWeight=30.35, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M37647_IG07: ; bbWeight=30.35, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref
mov gword ptr [rbp+0x78], rcx ; GC ptr vars +{V06} mov dword ptr [rbp+0x74], eax @@ -131,10 +131,17 @@ G_M37647_IG07: ; bbWeight=30.35, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR mov eax, dword ptr [rbp+0x74] mov rcx, gword ptr [rbp+0x78] ; gcrRegs +[rcx]
- jmp SHORT G_M37647_IG09 - ;; size=40 bbWeight=30.35 PerfScore 462.81 -G_M37647_IG08: ; bbWeight=18.21, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=38 bbWeight=30.35 PerfScore 402.12 +G_M37647_IG08: ; bbWeight=98.97, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V06}
+ inc eax + cmp eax, r13d + jl SHORT G_M37647_IG06 + ;; size=7 bbWeight=98.97 PerfScore 148.45 +G_M37647_IG09: ; bbWeight=0.03, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref + jmp G_M37647_IG18 + ;; size=5 bbWeight=0.03 PerfScore 0.07 +G_M37647_IG10: ; bbWeight=18.21, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov gword ptr [rbp+0x78], rcx ; GC ptr vars +{V06} mov dword ptr [rbp+0x74], eax @@ -151,17 +158,10 @@ G_M37647_IG08: ; bbWeight=18.21, gcVars=0000000000000000 {}, gcrefRegs=C0 mov eax, dword ptr [rbp+0x74] mov rcx, gword ptr [rbp+0x78] ; gcrRegs +[rcx]
- ;; size=38 bbWeight=18.21 PerfScore 241.27 -G_M37647_IG09: ; bbWeight=98.97, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ jmp SHORT G_M37647_IG08 + ;; size=40 bbWeight=18.21 PerfScore 277.69 +G_M37647_IG11: ; bbWeight=26.00, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V06}
- inc eax - cmp eax, r13d - jl G_M37647_IG06 - ;; size=11 bbWeight=98.97 PerfScore 148.45 -G_M37647_IG10: ; bbWeight=0.03, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref - jmp G_M37647_IG18 - ;; size=5 bbWeight=0.03 PerfScore 0.07 -G_M37647_IG11: ; bbWeight=26.00, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov gword ptr [rbp+0x78], rcx ; GC ptr vars +{V06} mov dword ptr [rbp+0x74], eax @@ -180,9 +180,9 @@ G_M37647_IG11: ; bbWeight=26.00, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR mov eax, dword ptr [rbp+0x74] mov rcx, gword ptr [rbp+0x78] ; gcrRegs +[rcx]
- jmp SHORT G_M37647_IG09
+ jmp SHORT G_M37647_IG08
;; size=45 bbWeight=26.00 PerfScore 409.55
-G_M37647_IG12: ; bbWeight=24.41, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M37647_IG12: ; bbWeight=24.41, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V06} mov gword ptr [rbp+0x78], rcx ; GC ptr vars +{V06} @@ -202,8 +202,8 @@ G_M37647_IG12: ; bbWeight=24.41, gcVars=0000000000000000 {}, gcrefRegs=C0 mov eax, dword ptr [rbp+0x74] mov rcx, gword ptr [rbp+0x78] ; gcrRegs +[rcx]
- jmp SHORT G_M37647_IG09 - ;; size=48 bbWeight=24.41 PerfScore 384.38
+ jmp G_M37647_IG08 + ;; size=51 bbWeight=24.41 PerfScore 384.38
G_M37647_IG13: ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref ; GC ptr vars -{V06} mov edi, eax @@ -372,14 +372,14 @@ G_M37647_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { RWD00 dd G_M37647_IG11 - G_M37647_IG02 dd G_M37647_IG12 - G_M37647_IG02 dd G_M37647_IG07 - G_M37647_IG02
- dd G_M37647_IG08 - G_M37647_IG02
+ dd G_M37647_IG10 - G_M37647_IG02
RWD16 dd G_M37647_IG21 - G_M37647_IG02 dd G_M37647_IG22 - G_M37647_IG02 dd G_M37647_IG15 - G_M37647_IG02 dd G_M37647_IG16 - G_M37647_IG02
-; Total bytes of code 834, prolog size 96, PerfScore 3250.21, instruction count 210, allocated bytes for code 834 (MethodHash=73346cf0) for method EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
+; Total bytes of code 833, prolog size 96, PerfScore 3225.93, instruction count 210, allocated bytes for code 833 (MethodHash=73346cf0) for method EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
; ============================================================ Unwind Info:

+17 (+3.20%) : 305032.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -51,48 +51,38 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbx, rdi ; gcrRegs +[rbx] ;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method> ; gcr arg pop 0 test eax, eax
- je SHORT G_M35244_IG03
+ je G_M35244_IG26
test dword ptr [rbx+0x28], 0x440
- je SHORT G_M35244_IG04 - ;; size=18 bbWeight=1 PerfScore 6.25 -G_M35244_IG03: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rbx] - pop rbx - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=9 bbWeight=0.67 PerfScore 2.33 -G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx]
+ jne G_M35244_IG26 + ;; size=26 bbWeight=1 PerfScore 6.25 +G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E] lea edi, [rax-0x03] cmp edi, 5
- jbe G_M35244_IG23
+ jbe G_M35244_IG22
;; size=16 bbWeight=3 PerfScore 11.25
-G_M35244_IG05: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24 cmp eax, 10
- ja SHORT G_M35244_IG03
+ ja G_M35244_IG26
mov esi, eax lea rdi, [reloc @RWD00] mov edi, dword ptr [rdi+4*rsi] lea rax, G_M35244_IG02 add rdi, rax jmp rdi
- ;; size=32 bbWeight=2 PerfScore 15.00 -G_M35244_IG06: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=36 bbWeight=2 PerfScore 15.00 +G_M35244_IG05: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov r15, gword ptr [rbx+0x08] ; gcrRegs +[r15] test r15, r15
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG14
;; size=9 bbWeight=2 PerfScore 6.50
-G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, r15 ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; <unknown class> @@ -100,77 +90,77 @@ G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[rsi] +[rax] ; gcr arg pop 0 test rax, rax
- je SHORT G_M35244_IG12
+ je SHORT G_M35244_IG11
;; size=23 bbWeight=1.55 PerfScore 4.25
-G_M35244_IG08: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
mov r14d, dword ptr [rax+0x10] ;; size=4 bbWeight=1.09 PerfScore 2.18
-G_M35244_IG09: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] dec r14d mov r13, r15 ; gcrRegs +[r13] test r13, r13
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=11 bbWeight=2 PerfScore 3.50
-G_M35244_IG10: ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode cmp qword ptr [r13], rsi
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1 PerfScore 4.25
-G_M35244_IG11: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
- jmp SHORT G_M35244_IG18
+ jmp SHORT G_M35244_IG17
;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG12: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov r14d, 1
- jmp SHORT G_M35244_IG09
+ jmp SHORT G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r13] test r13, r13
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG17
;; size=5 bbWeight=2 PerfScore 2.50
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] mov r15, r13 ; gcrRegs +[r15]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=5 bbWeight=0.72 PerfScore 1.62
-G_M35244_IG15: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13] xor r14d, r14d
- jmp SHORT G_M35244_IG09
+ jmp SHORT G_M35244_IG08
;; size=5 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
movzx rdi, byte ptr [r15+0x2E] cmp edi, 24
- je G_M35244_IG28
+ je G_M35244_IG29
lea esi, [rdi-0x1A] cmp esi, 1
- jbe G_M35244_IG28
+ jbe G_M35244_IG29
add edi, -33 cmp edi, 1
- jbe SHORT G_M35244_IG28 - ;; size=34 bbWeight=2 PerfScore 13.00 -G_M35244_IG17: ; bbWeight=2, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ jbe G_M35244_IG29 + ;; size=38 bbWeight=2 PerfScore 13.00 +G_M35244_IG16: ; bbWeight=2, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov rbx, r15 ; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 4.50
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov r13, r15 ; gcrRegs +[r13] test r13, r13
- je SHORT G_M35244_IG21
+ je SHORT G_M35244_IG20
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class> cmp qword ptr [r13], rdi
- je SHORT G_M35244_IG21
+ je SHORT G_M35244_IG20
;; size=16 bbWeight=0.64 PerfScore 2.72
-G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13] mov rsi, r15 ; gcrRegs +[rsi] @@ -180,27 +170,27 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 mov r13, rax ; gcrRegs +[r13] ;; size=12 bbWeight=0.32 PerfScore 1.12
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] cmp r14d, dword ptr [r13+0x10]
- jae SHORT G_M35244_IG25
+ jae SHORT G_M35244_IG24
;; size=6 bbWeight=1.28 PerfScore 5.12
-G_M35244_IG22: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [r13+0x08] ; gcrRegs +[rdi] cmp r14d, dword ptr [rdi+0x08]
- jae SHORT G_M35244_IG26
+ jae SHORT G_M35244_IG25
mov esi, r14d mov r15, gword ptr [rdi+8*rsi+0x10] ; gcrRegs +[r15]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=20 bbWeight=1.28 PerfScore 13.12
-G_M35244_IG23: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi r13 r15] mov rdi, rbx ; gcrRegs +[rdi] ;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG24: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
pop rbx pop r13 pop r14 @@ -209,17 +199,28 @@ G_M35244_IG24: ; bbWeight=1, epilog, nogc, extend tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this] ; gcr arg pop 0 ;; size=14 bbWeight=1 PerfScore 4.50
-G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx rdi] call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + nop + ;; size=1 bbWeight=0 PerfScore 0.00 +G_M35244_IG27: ; bbWeight=0, epilog, nogc, extend + pop rbx + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=9 bbWeight=0 PerfScore 0.00 +G_M35244_IG28: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx] mov rdi, rbx ; gcrRegs +[rdi] @@ -229,18 +230,18 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov rbx, rax ; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[r15] cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG29
+ je SHORT G_M35244_IG30
mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] cmp byte ptr [rdi+0x2E], 32 ...

+17 (+3.20%) : 205401.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -51,48 +51,38 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbx, rdi ; gcrRegs +[rbx] ;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method> ; gcr arg pop 0 test eax, eax
- je SHORT G_M35244_IG03
+ je G_M35244_IG25
test dword ptr [rbx+0x28], 0x440
- je SHORT G_M35244_IG04 - ;; size=18 bbWeight=1 PerfScore 6.25 -G_M35244_IG03: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rbx] - pop rbx - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=9 bbWeight=0.67 PerfScore 2.33 -G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx]
+ jne G_M35244_IG25 + ;; size=26 bbWeight=1 PerfScore 6.25 +G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E] lea edi, [rax-0x03] cmp edi, 5
- jbe G_M35244_IG22
+ jbe G_M35244_IG21
;; size=16 bbWeight=3 PerfScore 11.25
-G_M35244_IG05: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24 cmp eax, 10
- ja SHORT G_M35244_IG03
+ ja G_M35244_IG25
mov esi, eax lea rdi, [reloc @RWD00] mov edi, dword ptr [rdi+4*rsi] lea rax, G_M35244_IG02 add rdi, rax jmp rdi
- ;; size=32 bbWeight=2 PerfScore 15.00 -G_M35244_IG06: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=36 bbWeight=2 PerfScore 15.00 +G_M35244_IG05: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov r15, gword ptr [rbx+0x08] ; gcrRegs +[r15] test r15, r15
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG14
;; size=9 bbWeight=2 PerfScore 6.50
-G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, r15 ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; <unknown class> @@ -100,77 +90,77 @@ G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[rsi] +[rax] ; gcr arg pop 0 test rax, rax
- je SHORT G_M35244_IG12
+ je SHORT G_M35244_IG11
;; size=23 bbWeight=1.55 PerfScore 4.25
-G_M35244_IG08: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
mov r14d, dword ptr [rax+0x10] ;; size=4 bbWeight=1.09 PerfScore 2.18
-G_M35244_IG09: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] dec r14d mov r13, r15 ; gcrRegs +[r13] test r13, r13
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=11 bbWeight=2 PerfScore 3.50
-G_M35244_IG10: ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode cmp qword ptr [r13], rsi
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1 PerfScore 4.25
-G_M35244_IG11: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
- jmp SHORT G_M35244_IG18
+ jmp SHORT G_M35244_IG17
;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG12: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov r14d, 1
- jmp SHORT G_M35244_IG09
+ jmp SHORT G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r13] test r13, r13
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG17
;; size=5 bbWeight=2 PerfScore 2.50
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] mov r15, r13 ; gcrRegs +[r15]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=5 bbWeight=0.72 PerfScore 1.62
-G_M35244_IG15: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13] xor r14d, r14d
- jmp SHORT G_M35244_IG09
+ jmp SHORT G_M35244_IG08
;; size=5 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
movzx rdi, byte ptr [r15+0x2E] cmp edi, 24
- je G_M35244_IG27
+ je G_M35244_IG28
lea esi, [rdi-0x1A] cmp esi, 1
- jbe G_M35244_IG27
+ jbe G_M35244_IG28
add edi, -33 cmp edi, 1
- jbe SHORT G_M35244_IG27 - ;; size=34 bbWeight=2 PerfScore 13.00 -G_M35244_IG17: ; bbWeight=2, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ jbe G_M35244_IG28 + ;; size=38 bbWeight=2 PerfScore 13.00 +G_M35244_IG16: ; bbWeight=2, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov rbx, r15 ; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 4.50
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov r13, r15 ; gcrRegs +[r13] test r13, r13
- je SHORT G_M35244_IG21
+ je SHORT G_M35244_IG20
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class> cmp qword ptr [r13], rdi
- je SHORT G_M35244_IG21
+ je SHORT G_M35244_IG20
;; size=16 bbWeight=0.64 PerfScore 2.72
-G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13] mov rsi, r15 ; gcrRegs +[rsi] @@ -180,25 +170,25 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 mov r13, rax ; gcrRegs +[r13] ;; size=11 bbWeight=0.32 PerfScore 0.48
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] cmp r14d, dword ptr [r13+0x10]
- jae SHORT G_M35244_IG24
+ jae SHORT G_M35244_IG23
mov rdi, gword ptr [r13+0x08] ; gcrRegs +[rdi] cmp r14d, dword ptr [rdi+0x08]
- jae SHORT G_M35244_IG25
+ jae SHORT G_M35244_IG24
mov esi, r14d mov r15, gword ptr [rdi+8*rsi+0x10] ; gcrRegs +[r15]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=26 bbWeight=1.28 PerfScore 18.24
-G_M35244_IG22: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi r13 r15] mov rdi, rbx ; gcrRegs +[rdi] ;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
pop rbx pop r13 pop r14 @@ -207,17 +197,28 @@ G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this] ; gcr arg pop 0 ;; size=14 bbWeight=1 PerfScore 4.50
-G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx rdi] call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + nop + ;; size=1 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend + pop rbx + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=9 bbWeight=0 PerfScore 0.00 +G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx] mov rdi, rbx ; gcrRegs +[rdi] @@ -227,18 +228,18 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov rbx, rax ; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[r15] cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG28
+ je SHORT G_M35244_IG29
mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] cmp byte ptr [rdi+0x2E], 32
- je G_M35244_IG17
+ je G_M35244_IG16
;; size=21 bbWeight=0 PerfScore 0.00 ...

+17 (+3.20%) : 296158.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

@@ -51,69 +51,59 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov rbx, rdi ; gcrRegs +[rbx] ;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method> ; gcr arg pop 0 test eax, eax
- je SHORT G_M35244_IG03
+ je G_M35244_IG25
test dword ptr [rbx+0x28], 0x440
- je SHORT G_M35244_IG04 - ;; size=18 bbWeight=1 PerfScore 6.25 -G_M35244_IG03: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - ; gcrRegs -[rbx] - pop rbx - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=9 bbWeight=0.67 PerfScore 2.33 -G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx]
+ jne G_M35244_IG25 + ;; size=26 bbWeight=1 PerfScore 6.25 +G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E] lea edi, [rax-0x03] cmp edi, 5
- jbe G_M35244_IG22
+ jbe G_M35244_IG21
;; size=16 bbWeight=3 PerfScore 11.25
-G_M35244_IG05: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24 cmp eax, 10
- ja SHORT G_M35244_IG03
+ ja G_M35244_IG25
mov esi, eax lea rdi, [reloc @RWD00] mov edi, dword ptr [rdi+4*rsi] lea rax, G_M35244_IG02 add rdi, rax jmp rdi
- ;; size=32 bbWeight=2 PerfScore 15.00 -G_M35244_IG06: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ ;; size=36 bbWeight=2 PerfScore 15.00 +G_M35244_IG05: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r15] mov r14d, 1 ;; size=6 bbWeight=0.45 PerfScore 0.11
-G_M35244_IG07: ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
dec r14d mov r13, r15 ; gcrRegs +[r13] test r13, r13
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=11 bbWeight=2.00 PerfScore 3.50
-G_M35244_IG08: ; bbWeight=1.00, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG07: ; bbWeight=1.00, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode cmp qword ptr [r13], rsi
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1.00 PerfScore 4.25
-G_M35244_IG09: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
- jmp SHORT G_M35244_IG18
+ jmp SHORT G_M35244_IG17
;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG10: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] mov r15, gword ptr [rbx+0x08] ; gcrRegs +[r15] test r15, r15
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG14
;; size=9 bbWeight=2 PerfScore 6.50
-G_M35244_IG11: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, r15 ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; <unknown class> @@ -121,57 +111,57 @@ G_M35244_IG11: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 ; gcrRegs -[rsi] +[rax] ; gcr arg pop 0 test rax, rax
- je SHORT G_M35244_IG06
+ je SHORT G_M35244_IG05
;; size=23 bbWeight=1.55 PerfScore 4.25
-G_M35244_IG12: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
mov r14d, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG07
+ jmp SHORT G_M35244_IG06
;; size=6 bbWeight=1.09 PerfScore 4.36
-G_M35244_IG13: ; bbWeight=2.00, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2.00, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[r13] test r13, r13
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG17
;; size=5 bbWeight=2.00 PerfScore 2.50
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] mov r15, r13 ; gcrRegs +[r15]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=5 bbWeight=0.72 PerfScore 1.62
-G_M35244_IG15: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13] xor r14d, r14d
- jmp SHORT G_M35244_IG07
+ jmp SHORT G_M35244_IG06
;; size=5 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
movzx rdi, byte ptr [r15+0x2E] cmp edi, 24
- je G_M35244_IG27
+ je G_M35244_IG28
lea esi, [rdi-0x1A] cmp esi, 1
- jbe G_M35244_IG27
+ jbe G_M35244_IG28
add edi, -33 cmp edi, 1
- jbe SHORT G_M35244_IG27 - ;; size=34 bbWeight=2 PerfScore 13.00 -G_M35244_IG17: ; bbWeight=2, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ jbe G_M35244_IG28 + ;; size=38 bbWeight=2 PerfScore 13.00 +G_M35244_IG16: ; bbWeight=2, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] mov rbx, r15 ; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 4.50
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov r13, r15 ; gcrRegs +[r13] test r13, r13
- je SHORT G_M35244_IG21
+ je SHORT G_M35244_IG20
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class> cmp qword ptr [r13], rdi
- je SHORT G_M35244_IG21
+ je SHORT G_M35244_IG20
;; size=16 bbWeight=0.64 PerfScore 2.72
-G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13] mov rsi, r15 ; gcrRegs +[rsi] @@ -181,25 +171,25 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 mov r13, rax ; gcrRegs +[r13] ;; size=11 bbWeight=0.32 PerfScore 0.48
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] cmp r14d, dword ptr [r13+0x10]
- jae SHORT G_M35244_IG24
+ jae SHORT G_M35244_IG23
mov rdi, gword ptr [r13+0x08] ; gcrRegs +[rdi] cmp r14d, dword ptr [rdi+0x08]
- jae SHORT G_M35244_IG25
+ jae SHORT G_M35244_IG24
mov esi, r14d mov r15, gword ptr [rdi+8*rsi+0x10] ; gcrRegs +[r15]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=26 bbWeight=1.28 PerfScore 18.24
-G_M35244_IG22: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi r13 r15] mov rdi, rbx ; gcrRegs +[rdi] ;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
pop rbx pop r13 pop r14 @@ -208,17 +198,28 @@ G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this] ; gcr arg pop 0 ;; size=14 bbWeight=1 PerfScore 4.50
-G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx rdi] call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()] ; gcr arg pop 0 int3 ;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + nop + ;; size=1 bbWeight=0 PerfScore 0.00 +G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend + pop rbx + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=9 bbWeight=0 PerfScore 0.00 +G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx] mov rdi, rbx ; gcrRegs +[rdi] @@ -228,18 +229,18 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr ; gcr arg pop 0 mov rbx, rax ; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[r15] cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG28
+ je SHORT G_M35244_IG29
mov rdi, gword ptr [rbx+0x18] ; gcrRegs +[rdi] cmp byte ptr [rdi+0x2E], 32
- je G_M35244_IG17
+ je G_M35244_IG16
...

libraries_tests.run.linux.x64.Release.mch

-16 (-1.84%) : 625934.dasm - System.Collections.Concurrent.ConcurrentQueue`1+d__26[byte]:MoveNext():ubyte:this (Tier1)

@@ -94,16 +94,16 @@ G_M19889_IG05: ; bbWeight=0.95, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 mov rax, gword ptr [r14+0x08] ; gcrRegs +[rax] cmp r13d, dword ptr [rax+0x08]
- jae G_M19889_IG29
+ jae G_M19889_IG28
mov eax, dword ptr [rax+8*r15+0x10] ; gcrRegs -[rax] and eax, dword ptr [r14+0x18] cmp eax, r12d
- jne G_M19889_IG37
+ jne G_M19889_IG36
mov rax, gword ptr [r14+0x08] ; gcrRegs +[rax] cmp r13d, dword ptr [rax+0x08]
- jae G_M19889_IG29
+ jae G_M19889_IG28
movsx rax, byte ptr [rax+8*r15+0x14] ; gcrRegs -[rax] mov byte ptr [rbx+0x38], al @@ -126,7 +126,7 @@ G_M19889_IG07: ; bbWeight=1.00, epilog, nogc, extend G_M19889_IG08: ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs +[rbx] cmp r15d, 5
- ja G_M19889_IG27
+ ja G_M19889_IG24
mov edi, r15d lea rax, [reloc @RWD00] mov eax, dword ptr [rax+4*rdi] @@ -171,7 +171,7 @@ G_M19889_IG12: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, G_M19889_IG13: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov edi, dword ptr [rbx+0x30] cmp edi, dword ptr [rbx+0x2C]
- jl G_M19889_IG30
+ jl G_M19889_IG29
;; size=12 bbWeight=0.00 PerfScore 0.01 G_M19889_IG14: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rdi, gword ptr [rbx+0x08] @@ -179,7 +179,7 @@ G_M19889_IG14: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov r13, gword ptr [rbx+0x10] ; gcrRegs +[r13] cmp rdi, r13
- je G_M19889_IG27
+ je G_M19889_IG24
mov r12, gword ptr [rdi+0x10] ; gcrRegs +[r12] lea rdi, bword ptr [rbx+0x18] @@ -257,7 +257,7 @@ G_M19889_IG20: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, cmp r15, gword ptr [rbx+0x10] jne G_M19889_IG15 ;; size=30 bbWeight=0.00 PerfScore 0.04
-G_M19889_IG21: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG21: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] xor rdi, rdi ; gcrRegs +[rdi] @@ -275,8 +275,8 @@ G_M19889_IG21: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, xor esi, esi mov dword ptr [rbx+0x30], esi cmp dword ptr [rbx+0x30], edi
- jge G_M19889_IG27 - ;; size=41 bbWeight=0.00 PerfScore 0.02
+ jge SHORT G_M19889_IG24 + ;; size=37 bbWeight=0.00 PerfScore 0.02
G_M19889_IG22: ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rdi, gword ptr [rbx+0x10] ; gcrRegs +[rdi] @@ -298,9 +298,19 @@ G_M19889_IG23: ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ;; size=20 bbWeight=0.01 PerfScore 0.11 G_M19889_IG24: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rbx]
- jmp G_M19889_IG27 - ;; size=5 bbWeight=0.00 PerfScore 0.00 -G_M19889_IG25: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ xor eax, eax + ;; size=2 bbWeight=0.00 PerfScore 0.00 +G_M19889_IG25: ; bbWeight=0.00, epilog, nogc, extend + add rsp, 8 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=15 bbWeight=0.00 PerfScore 0.00 +G_M19889_IG26: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx] mov dword ptr [rbx+0x20], -1 mov rdi, gword ptr [rbx+0x08] @@ -330,10 +340,10 @@ G_M19889_IG25: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov rdi, gword ptr [rbx+0x08] ; gcrRegs +[rdi] cmp rdi, gword ptr [rbx+0x10]
- je G_M19889_IG32
+ je SHORT G_M19889_IG31
mov r14d, dword ptr [rdi+0xA0]
- ;; size=88 bbWeight=0.00 PerfScore 0.04 -G_M19889_IG26: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=84 bbWeight=0.00 PerfScore 0.04 +G_M19889_IG27: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi] mov rdi, gword ptr [rbx+0x08] ; gcrRegs +[rdi] @@ -353,28 +363,15 @@ G_M19889_IG26: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, and edi, r14d mov dword ptr [rbx+0x2C], edi cmp eax, edi
- jl SHORT G_M19889_IG33
+ jl SHORT G_M19889_IG32
jmp G_M19889_IG09 ;; size=56 bbWeight=0.00 PerfScore 0.02
-G_M19889_IG27: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M19889_IG28: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx r13]
- xor eax, eax - ;; size=2 bbWeight=0.00 PerfScore 0.00 -G_M19889_IG28: ; bbWeight=0.00, epilog, nogc, extend - add rsp, 8 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=15 bbWeight=0.00 PerfScore 0.00 -G_M19889_IG29: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M19889_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx] mov rdi, gword ptr [rbx+0x08] ; gcrRegs +[rdi] @@ -386,22 +383,22 @@ G_M19889_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov dword ptr [rbx+0x20], 3 jmp G_M19889_IG06 ;; size=28 bbWeight=0 PerfScore 0.00
-G_M19889_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov dword ptr [rbx+0x20], -1 mov ecx, dword ptr [rbx+0x30] inc ecx mov dword ptr [rbx+0x30], ecx jmp G_M19889_IG13 ;; size=20 bbWeight=0 PerfScore 0.00
-G_M19889_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov r14d, dword ptr [rbx+0x24]
- jmp G_M19889_IG26 - ;; size=9 bbWeight=0 PerfScore 0.00 -G_M19889_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M19889_IG27 + ;; size=6 bbWeight=0 PerfScore 0.00 +G_M19889_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov dword ptr [rbx+0x30], eax
- jmp SHORT G_M19889_IG36
+ jmp SHORT G_M19889_IG35
;; size=5 bbWeight=0 PerfScore 0.00
-G_M19889_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, gword ptr [rbx+0x08] ; gcrRegs +[rdi] mov esi, dword ptr [rbx+0x30] @@ -412,19 +409,19 @@ G_M19889_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov dword ptr [rbx+0x20], 1 jmp G_M19889_IG06 ;; size=28 bbWeight=0 PerfScore 0.00
-G_M19889_IG35: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov dword ptr [rbx+0x20], -1 mov ecx, dword ptr [rbx+0x30] inc ecx mov dword ptr [rbx+0x30], ecx ;; size=15 bbWeight=0 PerfScore 0.00
-G_M19889_IG36: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M19889_IG35: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rbx+0x30] cmp edi, dword ptr [rbx+0x2C]
- jl SHORT G_M19889_IG34
+ jl SHORT G_M19889_IG33
jmp G_M19889_IG14 ;; size=13 bbWeight=0 PerfScore 0.00
-G_M19889_IG37: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+G_M19889_IG36: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
; gcrRegs +[r14] lea rdi, [rbp-0x30] mov esi, 20 @@ -432,15 +429,15 @@ G_M19889_IG37: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp G_M19889_IG05 ;; size=20 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M19889_IG25 - G_M19889_IG02 - dd G_M19889_IG35 - G_M19889_IG02
+RWD00 dd G_M19889_IG26 - G_M19889_IG02 + dd G_M19889_IG34 - G_M19889_IG02
dd G_M19889_IG11 - G_M19889_IG02
- dd G_M19889_IG31 - G_M19889_IG02
+ dd G_M19889_IG30 - G_M19889_IG02
dd G_M19889_IG03 - G_M19889_IG02 dd G_M19889_IG23 - G_M19889_IG02
-; Total bytes of code 868, prolog size 19, PerfScore 61.55, instruction count 222, allocated bytes for code 868 (MethodHash=a906b24e) for method System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[byte]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 852, prolog size 19, PerfScore 61.54, instruction count 221, allocated bytes for code 852 (MethodHash=a906b24e) for method System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[byte]:MoveNext():ubyte:this (Tier1)
; ============================================================ Unwind Info:

-31 (-1.57%) : 466681.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)

@@ -101,23 +101,23 @@ G_M38617_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ;; size=39 bbWeight=1 PerfScore 10.50 G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref test rbx, rbx
- je G_M38617_IG18
+ je G_M38617_IG36
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+SequenceType cmp qword ptr [r15], rdi
- jne G_M38617_IG20
+ jne G_M38617_IG38
mov rdi, gword ptr [r15+0x10] ; gcrRegs +[rdi] mov rax, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+ItemType cmp qword ptr [rdi], rax
- jne G_M38617_IG19
+ jne G_M38617_IG37
mov r14d, dword ptr [rdi+0x0C] ;; size=55 bbWeight=1 PerfScore 13.75 G_M38617_IG03: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref ; gcrRegs -[rdi] cmp r14d, 2
- jg G_M38617_IG22
+ jg G_M38617_IG12
cmp r14d, 1
- jne G_M38617_IG21
+ jne G_M38617_IG11
mov rdi, rbx ; gcrRegs +[rdi] call <unknown method> @@ -132,7 +132,7 @@ G_M38617_IG03: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, ; gcr arg pop 0 mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+ItemType cmp qword ptr [rax], rdi
- jne G_M38617_IG15
+ jne G_M38617_IG10
;; size=59 bbWeight=1 PerfScore 11.50 G_M38617_IG04: ; bbWeight=0.96, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref mov r12d, dword ptr [rax+0x0C] @@ -140,18 +140,18 @@ G_M38617_IG04: ; bbWeight=0.96, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0 G_M38617_IG05: ; bbWeight=1, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref ; gcrRegs -[rax] cmp r12d, 1
- je G_M38617_IG36
+ je G_M38617_IG33
cmp r12d, 2
- je G_M38617_IG35
+ je G_M38617_IG32
add r12d, -12
- jne G_M38617_IG30
+ jne G_M38617_IG27
;; size=30 bbWeight=1 PerfScore 3.75 G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, gcvars, byref ; GC ptr vars -{V00} mov rdi, 0xD1FFAB1E ; gcrRegs +[rdi] cmp r13, rdi
- je G_M38617_IG33
+ je G_M38617_IG30
mov rdi, 0xD1FFAB1E ; System.Xml.Schema.XmlAtomicValue ; gcrRegs -[rdi] call CORINFO_HELP_NEWSFAST @@ -212,7 +212,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=2008 { mov rdi, gword ptr [rbx+0x08] ; gcrRegs +[rdi] cmp esi, dword ptr [rdi+0x08]
- jge G_M38617_IG34
+ jge G_M38617_IG31
;; size=182 bbWeight=1 PerfScore 30.50 G_M38617_IG07: ; bbWeight=1, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref ; gcrRegs -[rdi] @@ -227,81 +227,22 @@ G_M38617_IG07: ; bbWeight=1, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, call CORINFO_HELP_ARRADDR_ST ; gcrRegs -[rdx rdi r13] ; gcr arg pop 0
- jmp G_M38617_IG16 - ;; size=29 bbWeight=1 PerfScore 9.00 -G_M38617_IG08: ; bbWeight=0, gcVars=0000000000140100 {V00 V06 V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs -[rbx] - ; GC ptr vars +{V00 V06 V08 V09 V18 V20} - jmp SHORT G_M38617_IG10 - ;; size=2 bbWeight=0 PerfScore 0.00 -G_M38617_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov rdi, gword ptr [rbp-0x40] - ; gcrRegs +[rdi] - mov r11, 0xD1FFAB1E ; code for <unknown method> - call [r11]<unknown method> - ; gcrRegs -[rdi] +[rax] - ; gcr arg pop 0 - mov rdi, rax - ; gcrRegs +[rdi] - call [System.Xml.Xsl.Runtime.XmlQueryRuntime:EnsureNavigator(System.Object):System.Xml.XPath.XPathNavigator] - ; gcrRegs -[rdi] - ; gcr arg pop 0 - mov rsi, rax - ; gcrRegs +[rsi] - mov rdi, gword ptr [rbp-0x38] - ; gcrRegs +[rdi] - call [System.Xml.Xsl.Runtime.XmlQuerySequence`1[System.__Canon]:Add(System.__Canon):this] - ; gcrRegs -[rax rsi rdi] - ; gcr arg pop 0 - ;; size=39 bbWeight=0 PerfScore 0.00 -G_M38617_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz - mov rdi, gword ptr [rbp-0x40] - ; gcrRegs +[rdi] - mov r11, 0xD1FFAB1E ; code for <unknown method> - call [r11]<unknown method> - ; gcrRegs -[rdi] - ; gcr arg pop 0 - test eax, eax - jne SHORT G_M38617_IG09 - ;; size=21 bbWeight=0 PerfScore 0.00 -G_M38617_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov rdi, rsp - call G_M38617_IG39 - ;; size=8 bbWeight=0 PerfScore 0.00 -G_M38617_IG12: ; bbWeight=0, nogc, extend - nop - ;; size=1 bbWeight=0 PerfScore 0.00 -G_M38617_IG13: ; bbWeight=0, gcVars=0000000000040100 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; GC ptr vars -{V08 V09 V18 V20} - mov rdi, gword ptr [rbp-0x38] - ; gcrRegs +[rdi] - mov rbx, rdi - ; gcrRegs +[rbx] - ;; size=7 bbWeight=0 PerfScore 0.00 -G_M38617_IG14: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz - ; gcrRegs -[rdi] - ; GC ptr vars -{V06} - mov rsi, rbx - ; gcrRegs +[rsi] - mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.Runtime.XmlQueryNodeSequence - call CORINFO_HELP_CHKCASTCLASS - ; gcrRegs -[rbx rsi] +[rax] - ; gcr arg pop 0 - mov rdi, rax - ; gcrRegs +[rdi] - mov rax, gword ptr [rbp-0x30] - mov rsi, gword ptr [rax+0x68] - ; gcrRegs +[rsi] - cmp dword ptr [rdi], edi - ; GC ptr vars -{V00} - call [System.Xml.Xsl.Runtime.XmlQueryNodeSequence:DocOrderDistinct(System.Collections.Generic.IComparer`1[System.Xml.XPath.XPathNavigator]):System.Xml.Xsl.Runtime.XmlQueryNodeSequence:this] - ; gcrRegs -[rsi rdi] - ; gcr arg pop 0 - mov rbx, rax - ; gcrRegs +[rbx] - jmp SHORT G_M38617_IG16 - ;; size=42 bbWeight=0 PerfScore 0.00 -G_M38617_IG15: ; bbWeight=0.04, gcVars=0000000000000100 {V00}, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=24 bbWeight=1 PerfScore 7.00 +G_M38617_IG08: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + mov rax, rbx + ; gcrRegs +[rax] + ;; size=3 bbWeight=1 PerfScore 0.25 +G_M38617_IG09: ; bbWeight=1, epilog, nogc, extend + add rsp, 40 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=15 bbWeight=1 PerfScore 4.25 +G_M38617_IG10: ; bbWeight=0.04, gcVars=0000000000000100 {V00}, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r13] ; GC ptr vars +{V00 V08} mov rdi, rax @@ -315,108 +256,34 @@ G_M38617_IG15: ; bbWeight=0.04, gcVars=0000000000000100 {V00}, gcrefRegs= mov r12d, eax jmp G_M38617_IG05 ;; size=21 bbWeight=0.04 PerfScore 0.38
-G_M38617_IG16: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[r13] - ; GC ptr vars -{V00 V08} - mov rax, rbx - ; gcrRegs +[rax] - ;; size=3 bbWeight=1 PerfScore 0.25 -G_M38617_IG17: ; bbWeight=1, epilog, nogc, extend - add rsp, 40 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=15 bbWeight=1 PerfScore 4.25 -G_M38617_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs -[rax rbx] - call [<unknown method>] - ; gcrRegs +[rax] - ; gcr arg pop 0 - mov r14, rax - ; gcrRegs +[r14] - mov rdi, 0xD1FFAB1E ; <unknown class> - mov esi, 1 - call CORINFO_HELP_NEWARR_1_OBJ - ; gcr arg pop 0 - mov rbx, rax - ; gcrRegs +[rbx] - mov rdi, 0xD1FFAB1E - ; gcrRegs +[rdi] - mov gword ptr [rbx+0x10], rdi - mov rdi, 0xD1FFAB1E ; <unknown class> - ; gcrRegs -[rdi] - call CORINFO_HELP_NEWSFAST - ; gcr arg pop 0 - mov r12, rax - ; gcrRegs +[r12] - mov rdi, r12 - ; gcrRegs +[rdi] - mov rsi, r14 - ; gcrRegs +[rsi] - mov rdx, rbx - ; gcrRegs +[rdx] - call [<unknown method>] - ; gcrRegs -[rax rdx rbx rsi rdi r14] - ; gcr arg pop 0 - mov rdi, r12 - ; gcrRegs +[rdi] - call CORINFO_HELP_THROW - ; gcrRegs -[rdi r12] - ; gcr arg pop 0 - ;; size=87 bbWeight=0 PerfScore 0.00 -G_M38617_IG19: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, gcvars, byref - ; gcrRegs +[rbx rdi r15] - ; GC ptr vars +{V00 V08} - mov rax, qword ptr [rdi] - mov rax, qword ptr [rax+0x60] - call [rax+0x38]<unknown method> - ; gcrRegs -[rdi] - ; gcr arg pop 0 - mov r14d, eax - jmp G_M38617_IG03 - ;; size=18 bbWeight=0 PerfScore 0.00 -G_M38617_IG20: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref - mov rdi, r15 - ; gcrRegs +[rdi] - mov rax, qword ptr [r15] - mov rax, qword ptr [rax+0x60] - call [rax+0x38]<unknown method> - ; gcrRegs -[rdi] - ; gcr arg pop 0 - mov r14d, eax - jmp G_M38617_IG03 - ;; size=21 bbWeight=0 PerfScore 0.00 -G_M38617_IG21: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M38617_IG11: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[r13] +[r15]
...

-12 (-1.32%) : 631077.dasm - System.Collections.Concurrent.ConcurrentQueue`1+d__26[System.UInt128]:MoveNext():ubyte:this (Tier1)

@@ -111,16 +111,16 @@ G_M14029_IG05: ; bbWeight=0.96, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 mov rax, gword ptr [r14+0x08] ; gcrRegs +[rax] cmp r13d, dword ptr [rax+0x08]
- jae G_M14029_IG29
+ jae G_M14029_IG28
mov eax, dword ptr [rax+r15+0x10] ; gcrRegs -[rax] and eax, dword ptr [r14+0x18] cmp eax, r12d
- jne G_M14029_IG37
+ jne G_M14029_IG36
mov rax, gword ptr [r14+0x08] ; gcrRegs +[rax] cmp r13d, dword ptr [rax+0x08]
- jae G_M14029_IG29
+ jae G_M14029_IG28
vmovups xmm0, xmmword ptr [rax+r15+0x20] vmovups xmmword ptr [rbx+0x38], xmm0 mov dword ptr [rbx+0x20], 4 @@ -142,7 +142,7 @@ G_M14029_IG07: ; bbWeight=1.00, epilog, nogc, extend G_M14029_IG08: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref ; gcrRegs +[rbx] cmp r15d, 5
- ja G_M14029_IG27
+ ja G_M14029_IG24
mov edi, r15d lea rax, [reloc @RWD00] mov eax, dword ptr [rax+4*rdi] @@ -191,7 +191,7 @@ G_M14029_IG12: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, G_M14029_IG13: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov edi, dword ptr [rbx+0x30] cmp edi, dword ptr [rbx+0x2C]
- jl G_M14029_IG30
+ jl G_M14029_IG29
;; size=12 bbWeight=0.00 PerfScore 0.01 G_M14029_IG14: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rdi, gword ptr [rbx+0x08] @@ -199,7 +199,7 @@ G_M14029_IG14: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov r15, gword ptr [rbx+0x10] ; gcrRegs +[r15] cmp rdi, r15
- je G_M14029_IG27
+ je G_M14029_IG24
mov r14, gword ptr [rdi+0x10] ; gcrRegs +[r14] lea rdi, bword ptr [rbx+0x18] @@ -277,7 +277,7 @@ G_M14029_IG20: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, cmp r15, gword ptr [rbx+0x10] jne G_M14029_IG15 ;; size=30 bbWeight=0.00 PerfScore 0.04
-G_M14029_IG21: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14029_IG21: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] xor rdi, rdi ; gcrRegs +[rdi] @@ -295,8 +295,8 @@ G_M14029_IG21: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, xor esi, esi mov dword ptr [rbx+0x30], esi cmp dword ptr [rbx+0x30], edi
- jge G_M14029_IG27 - ;; size=41 bbWeight=0.00 PerfScore 0.02
+ jge SHORT G_M14029_IG24 + ;; size=37 bbWeight=0.00 PerfScore 0.02
G_M14029_IG22: ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref lea r14, bword ptr [rbx+0x38] ; byrRegs +[r14] @@ -322,9 +322,19 @@ G_M14029_IG23: ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ;; size=20 bbWeight=0.01 PerfScore 0.09 G_M14029_IG24: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rbx]
- jmp G_M14029_IG27 - ;; size=5 bbWeight=0.00 PerfScore 0.00 -G_M14029_IG25: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ xor eax, eax + ;; size=2 bbWeight=0.00 PerfScore 0.00 +G_M14029_IG25: ; bbWeight=0.00, epilog, nogc, extend + add rsp, 8 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=15 bbWeight=0.00 PerfScore 0.00 +G_M14029_IG26: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx] mov dword ptr [rbx+0x20], -1 mov rdi, gword ptr [rbx+0x08] @@ -354,10 +364,10 @@ G_M14029_IG25: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, mov rdi, gword ptr [rbx+0x08] ; gcrRegs +[rdi] cmp rdi, gword ptr [rbx+0x10]
- je G_M14029_IG32
+ je G_M14029_IG31
mov r13d, dword ptr [rdi+0xA0] ;; size=88 bbWeight=0.00 PerfScore 0.04
-G_M14029_IG26: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M14029_IG27: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi] mov rdi, gword ptr [rbx+0x08] ; gcrRegs +[rdi] @@ -377,28 +387,15 @@ G_M14029_IG26: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, and edi, r13d mov dword ptr [rbx+0x2C], edi cmp eax, edi
- jl SHORT G_M14029_IG33
+ jl SHORT G_M14029_IG32
jmp G_M14029_IG09 ;; size=57 bbWeight=0.00 PerfScore 0.02
-G_M14029_IG27: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M14029_IG28: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx r12]
- xor eax, eax - ;; size=2 bbWeight=0.00 PerfScore 0.00 -G_M14029_IG28: ; bbWeight=0.00, epilog, nogc, extend - add rsp, 8 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=15 bbWeight=0.00 PerfScore 0.00 -G_M14029_IG29: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL ; gcr arg pop 0 ;; size=5 bbWeight=0 PerfScore 0.00
-G_M14029_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14029_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx] lea r15, bword ptr [rbx+0x38] ; byrRegs +[r15] @@ -413,7 +410,7 @@ G_M14029_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov dword ptr [rbx+0x20], 3 jmp G_M14029_IG06 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M14029_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14029_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; byrRegs -[r15] mov dword ptr [rbx+0x20], -1 mov ecx, dword ptr [rbx+0x30] @@ -421,15 +418,15 @@ G_M14029_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov dword ptr [rbx+0x30], ecx jmp G_M14029_IG13 ;; size=20 bbWeight=0 PerfScore 0.00
-G_M14029_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14029_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov r13d, dword ptr [rbx+0x24]
- jmp G_M14029_IG26 - ;; size=9 bbWeight=0 PerfScore 0.00 -G_M14029_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M14029_IG27 + ;; size=6 bbWeight=0 PerfScore 0.00 +G_M14029_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov dword ptr [rbx+0x30], eax
- jmp SHORT G_M14029_IG36
+ jmp SHORT G_M14029_IG35
;; size=5 bbWeight=0 PerfScore 0.00
-G_M14029_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14029_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
lea r15, bword ptr [rbx+0x38] ; byrRegs +[r15] mov rdi, gword ptr [rbx+0x08] @@ -443,20 +440,20 @@ G_M14029_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov dword ptr [rbx+0x20], 1 jmp G_M14029_IG06 ;; size=36 bbWeight=0 PerfScore 0.00
-G_M14029_IG35: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14029_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; byrRegs -[r15] mov dword ptr [rbx+0x20], -1 mov ecx, dword ptr [rbx+0x30] inc ecx mov dword ptr [rbx+0x30], ecx ;; size=15 bbWeight=0 PerfScore 0.00
-G_M14029_IG36: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M14029_IG35: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rbx+0x30] cmp edi, dword ptr [rbx+0x2C]
- jl SHORT G_M14029_IG34
+ jl SHORT G_M14029_IG33
jmp G_M14029_IG14 ;; size=13 bbWeight=0 PerfScore 0.00
-G_M14029_IG37: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+G_M14029_IG36: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
; gcrRegs +[r14] lea rdi, [rbp-0x30] mov esi, 20 @@ -464,15 +461,15 @@ G_M14029_IG37: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, ; gcr arg pop 0 jmp G_M14029_IG05 ;; size=20 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M14029_IG25 - G_M14029_IG02 - dd G_M14029_IG35 - G_M14029_IG02
+RWD00 dd G_M14029_IG26 - G_M14029_IG02 + dd G_M14029_IG34 - G_M14029_IG02
dd G_M14029_IG11 - G_M14029_IG02
- dd G_M14029_IG31 - G_M14029_IG02
+ dd G_M14029_IG30 - G_M14029_IG02
dd G_M14029_IG03 - G_M14029_IG02 dd G_M14029_IG23 - G_M14029_IG02
-; Total bytes of code 911, prolog size 19, PerfScore 63.08, instruction count 231, allocated bytes for code 911 (MethodHash=df0cc932) for method System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[System.UInt128]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 899, prolog size 19, PerfScore 63.08, instruction count 230, allocated bytes for code 899 (MethodHash=df0cc932) for method System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[System.UInt128]:MoveNext():ubyte:this (Tier1)
; ============================================================ Unwind Info:

+16 (+0.93%) : 700531.dasm - System.Text.RegularExpressions.Tests.MonoTests+d__1:MoveNext():ubyte:this (Tier1)

@@ -5,7 +5,7 @@ ; optimized using Dynamic PGO ; rbp based frame ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 4359
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 4359
; 9 inlinees with PGO data; 14 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; @@ -14,7 +14,7 @@ ;* V02 loc1 [V02 ] ( 0, 0 ) int -> zero-ref ;* V03 loc2 [V03 ] ( 0, 0 ) int -> zero-ref ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T01] ( 8, 13.50) ref -> r12 class-hnd exact "dup spill" <<unknown class>>
+; V05 tmp1 [V05,T01] ( 8, 13.50) ref -> rbx class-hnd exact "dup spill" <<unknown class>>
; V06 tmp2 [V06,T02] ( 3, 5.06) ref -> rax class-hnd exact "Single-def Box Helper" <<unknown class>> ; V07 tmp3 [V07,T11] ( 2, 3.38) ref -> rsi class-hnd "Strict ordering of exceptions for Array store" <System.__Canon> ; V08 tmp4 [V08,T03] ( 3, 5.06) ref -> rax class-hnd exact "Single-def Box Helper" <<unknown class>> @@ -22,13 +22,13 @@ ; V10 tmp6 [V10,T13] ( 2, 3.38) ref -> rsi class-hnd "Strict ordering of exceptions for Array store" <System.__Canon> ; V11 tmp7 [V11,T14] ( 2, 3.38) ref -> rsi class-hnd exact "Strict ordering of exceptions for Array store" <System.String> ; V12 tmp8 [V12,T51] ( 2, 0.00) ref -> rdx class-hnd "dup spill" <<unknown class>>
-; V13 tmp9 [V13,T56] ( 2, 0.00) int -> r14 "impSpillLclRefs"
+; V13 tmp9 [V13,T56] ( 2, 0.00) int -> rbx "impSpillLclRefs"
; V14 tmp10 [V14,T52] ( 2, 0.00) ref -> r15 class-hnd exact "impSpillLclRefs" <<unknown class>> ;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref ;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref ;* V17 tmp13 [V17 ] ( 0, 0 ) ref -> zero-ref ; V18 tmp14 [V18,T57] ( 4, 0.00) ref -> rdx
-; V19 tmp15 [V19,T58] ( 5, 0.00) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V19 tmp15 [V19,T58] ( 5, 0.00) ref -> r13 class-hnd exact "NewObj constructor temp" <<unknown class>>
; V20 tmp16 [V20,T16] ( 8, 2.49) ref -> rbx class-hnd exact "dup spill" <<unknown class>> ; V21 tmp17 [V21,T22] ( 3, 0.93) ref -> rax class-hnd exact "Single-def Box Helper" <<unknown class>> ; V22 tmp18 [V22,T30] ( 2, 0.62) ref -> rsi class-hnd "Strict ordering of exceptions for Array store" <System.__Canon> @@ -39,7 +39,7 @@ ;* V27 tmp23 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "spilling ret_expr" <System.Text.RegularExpressions.Tests.RegexHelpers+<get_AvailableEngines>d__12> ; V28 tmp24 [V28,T64] ( 2, 0.00) ref -> rax "guarded devirt return temp" ;* V29 tmp25 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Tests.RegexHelpers+<get_AvailableEngines>d__12>
-; V30 tmp26 [V30,T62] ( 3, 0.00) int -> r12 "guarded devirt return temp"
+; V30 tmp26 [V30,T62] ( 3, 0.00) int -> r15 "guarded devirt return temp"
; V31 tmp27 [V31,T49] ( 4, 0.01) ref -> rax "guarded devirt arg temp" ;* V32 tmp28 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Tests.RegexHelpers+<get_AvailableEngines>d__12> ; V33 tmp29 [V33,T59] ( 3, 0.00) int -> rax "guarded devirt return temp" @@ -107,7 +107,7 @@ ; V95 PSPSym [V95,T21] ( 1, 1 ) long -> [rbp-0x60] do-not-enreg[V] "PSPSym" ; V96 cse0 [V96,T15] ( 3, 2.53) int -> rsi "CSE - moderate" ; V97 cse1 [V97,T50] ( 5, 0.00) long -> rbx multi-def "CSE - conservative"
-; V98 cse2 [V98,T60] ( 3, 0.00) long -> r13 "CSE - conservative"
+; V98 cse2 [V98,T60] ( 3, 0.00) long -> r14 "CSE - conservative"
; ; Lcl frame size = 56 @@ -124,119 +124,43 @@ G_M22758_IG01: ; bbWeight=1, gcVars=00000000000000000000000000000000 {}, mov gword ptr [rbp-0x40], rdi ; GC ptr vars +{V00} ;; size=27 bbWeight=1 PerfScore 8.75
-G_M22758_IG02: ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M22758_IG02: ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rdi] mov ebx, dword ptr [rdi+0x30] cmp ebx, 1
- jne SHORT G_M22758_IG05 - ;; size=8 bbWeight=1 PerfScore 3.25
+ jne G_M22758_IG09 + ;; size=12 bbWeight=1 PerfScore 3.25
G_M22758_IG03: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref mov dword ptr [rdi+0x30], -3 test byte ptr [rdi+0x58], 1
- je G_M22758_IG29
+ jne G_M22758_IG10
;; size=17 bbWeight=0.84 PerfScore 4.22
-G_M22758_IG04: ; bbWeight=0.16, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref - jmp G_M22758_IG37 - ;; size=5 bbWeight=0.16 PerfScore 0.31 -G_M22758_IG05: ; bbWeight=0.16, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref - cmp ebx, 2 - ja G_M22758_IG13 - mov eax, ebx - lea rcx, [reloc @RWD00] - mov ecx, dword ptr [rcx+4*rax] - lea rdx, G_M22758_IG02 - add rcx, rdx - jmp rcx - ;; size=33 bbWeight=0.16 PerfScore 1.13 -G_M22758_IG06: ; bbWeight=0.00, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref - mov dword ptr [rdi+0x38], r12d - mov edi, dword ptr [rdi+0x38] - ; gcrRegs -[rdi] - call [System.Text.RegularExpressions.Tests.MonoTests:<ValidateRegex_MemberData>g__Cases|1_0(int):System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.String,int,System.String,System.String]]]
+G_M22758_IG04: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + xor rsi, rsi + ; gcrRegs +[rsi] + mov gword ptr [rdi+0x28], rsi + ;; size=6 bbWeight=0.84 PerfScore 1.06 +G_M22758_IG05: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs -[rsi] + mov qword ptr [rdi+0x40], rsi + mov qword ptr [rdi+0x48], rsi + mov qword ptr [rdi+0x50], rsi + mov qword ptr [rdi+0x58], rsi + mov esi, dword ptr [rdi+0x3C] + inc esi + mov dword ptr [rdi+0x3C], esi + mov rax, gword ptr [rdi+0x20]
; gcrRegs +[rax]
- ; gcr arg pop 0 - mov rsi, rax - ; gcrRegs +[rsi] - mov rdi, 0xD1FFAB1E ; <unknown method> - call [System.Linq.Enumerable:ToArray[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon]]):System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon][]] - ; gcrRegs -[rsi] - ; gcr arg pop 0 - mov rdi, gword ptr [rbp-0x40] - ; gcrRegs +[rdi] - lea rdi, bword ptr [rdi+0x18] - ; gcrRegs -[rdi] - ; byrRegs +[rdi] - mov rsi, rax - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rax rsi] - ; byrRegs -[rdi] - mov rdi, gword ptr [rbp-0x40] - ; gcrRegs +[rdi] - mov r14d, dword ptr [rdi+0x38] - mov r15, gword ptr [rdi+0x18] - ; gcrRegs +[r15] - mov r13, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - mov rdx, gword ptr [r13] - ; gcrRegs +[rdx] - test rdx, rdx - je G_M22758_IG36 - ;; size=83 bbWeight=0.00 PerfScore 0.02 -G_M22758_IG07: ; bbWeight=0.00, gcrefRegs=8004 {rdx r15}, byrefRegs=0000 {}, byref - ; gcrRegs -[rdi] - mov rsi, r15 - ; gcrRegs +[rsi] - mov rdi, 0xD1FFAB1E ; <unknown method> - call [System.Linq.Enumerable:Select[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon],System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon]],System.Func`2[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon],System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]]):System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]]] - ; gcrRegs -[rdx rsi r15] +[rax] - ; gcr arg pop 0 - mov rsi, rax - ; gcrRegs +[rsi] - mov rdi, 0xD1FFAB1E ; <unknown method> - call [System.Linq.Enumerable:ToArray[System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]]):System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]][]] - ; gcrRegs -[rsi] - ; gcr arg pop 0 - mov rsi, rax - ; gcrRegs +[rsi] - mov edi, r14d - call [System.Text.RegularExpressions.Tests.RegexHelpers:GetRegexesAsync(int,System.ValueTuple`4[System.String,System.Globalization.CultureInfo,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]][]):System.Threading.Tasks.Task`1[System.Text.RegularExpressions.Regex[]]] - ; gcrRegs -[rsi] - ; gcr arg pop 0 - mov rdi, rax - ; gcrRegs +[rdi] - cmp dword ptr [rdi], edi - call [System.Threading.Tasks.Task`1[System.__Canon]:get_Result():System.__Canon:this] - ; gcrRegs -[rdi] - ; gcr arg pop 0 - mov rdi, gword ptr [rbp-0x40] - ; gcrRegs +[rdi] - lea rdi, bword ptr [rdi+0x20] - ; gcrRegs -[rdi] - ; byrRegs +[rdi] - mov rsi, rax - ; gcrRegs +[rsi] - call CORINFO_HELP_ASSIGN_REF - ; gcrRegs -[rax rsi] - ; byrRegs -[rdi] - xor edi, edi - mov rbx, gword ptr [rbp-0x40] - ; gcrRegs +[rbx] - mov dword ptr [rbx+0x3C], edi - mov edi, dword ptr [rbx+0x3C] - mov rax, gword ptr [rbx+0x20] - ; gcrRegs +[rax] - cmp edi, dword ptr [rax+0x08] - mov rdi, rbx - ; gcrRegs +[rdi] - jge G_M22758_IG41 - ;; size=105 bbWeight=0.00 PerfScore 0.03 -G_M22758_IG08: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref - ; gcrRegs -[rax rbx]
+ cmp dword ptr [rax+0x08], esi + jle G_M22758_IG27 + ;; size=37 bbWeight=0.84 PerfScore 11.18 +G_M22758_IG06: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax]
mov rsi, gword ptr [rdi+0x18] ; gcrRegs +[rsi] mov eax, dword ptr [rdi+0x3C] cmp eax, dword ptr [rsi+0x08]
- jae G_M22758_IG11
+ jae G_M22758_IG41
shl rax, 5 mov rsi, gword ptr [rsi+rax+0x20] lea rdi, bword ptr [rdi+0x28] @@ -248,14 +172,14 @@ G_M22758_IG08: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, mov rdi, gword ptr [rbp-0x40] ; gcrRegs +[rdi] cmp dword ptr [rdi+0x38], 2
- je G_M22758_IG32
+ je G_M22758_IG26
;; size=48 bbWeight=0.84 PerfScore 14.35
-G_M22758_IG09: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+G_M22758_IG07: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
mov rsi, gword ptr [rdi+0x18] ; gcrRegs +[rsi] mov eax, dword ptr [rdi+0x3C] cmp eax, dword ptr [rsi+0x08]
- jae G_M22758_IG11
+ jae G_M22758_IG41
shl rax, 5 lea rsi, bword ptr [rsi+rax+0x10] ; gcrRegs -[rsi] @@ -274,8 +198,8 @@ G_M22758_IG09: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, call CORINFO_HELP_NEWARR_1_OBJ ; gcrRegs +[rax] ; gcr arg pop 0
- mov r12, rax - ; gcrRegs +[r12]
+ mov rbx, rax + ; gcrRegs +[rbx]
mov rdi, 0xD1FFAB1E ; <unknown class> call CORINFO_HELP_NEWSFAST ; gcr arg pop 0 @@ -283,7 +207,7 @@ G_M22758_IG09: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, ; gcrRegs +[rdi] mov esi, dword ptr [rdi+0x38] mov dword ptr [rax+0x08], esi
- lea rdi, bword ptr [r12+0x10]
+ lea rdi, bword ptr [rbx+0x10]
; gcrRegs -[rdi] ; byrRegs +[rdi] mov rsi, rax @@ -295,7 +219,7 @@ G_M22758_IG09: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, ; gcrRegs +[rdi] mov rsi, gword ptr [rdi+0x40] ; gcrRegs +[rsi]
- lea rdi, bword ptr [r12+0x18]
+ lea rdi, bword ptr [rbx+0x18]
; gcrRegs -[rdi] ; byrRegs +[rdi] call CORINFO_HELP_ASSIGN_REF @@ -309,7 +233,7 @@ G_M22758_IG09: ; bbWeight=0.84, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, ; gcrRegs +[rdi] mov esi, dword ptr [rdi+0x58] mov dword ptr [rax+0x08], esi
- lea rdi, bword ptr [r12+0x20]
+ lea rdi, bword ptr [rbx+0x20]
...

+26 (+1.11%) : 49361.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)

@@ -5,7 +5,7 @@ ; optimized using Dynamic PGO ; rbp based frame ; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 7182
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 7182
; 7 inlinees with PGO data; 16 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; @@ -34,7 +34,7 @@ ; V22 tmp14 [V22,T35] ( 3, 0 ) ref -> r13 class-hnd exact single-def "dup spill" <<unknown class>> ; V23 tmp15 [V23,T44] ( 2, 0 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.RefExpressionSyntax> ; V24 tmp16 [V24,T45] ( 2, 0 ) ref -> rax class-hnd exact single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-; V25 tmp17 [V25,T36] ( 3, 0 ) ref -> r13 class-hnd exact single-def "dup spill" <<unknown class>>
+; V25 tmp17 [V25,T36] ( 3, 0 ) ref -> r14 class-hnd exact single-def "dup spill" <<unknown class>>
; V26 tmp18 [V26,T46] ( 2, 0 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.IdentifierNameSyntax> ; V27 tmp19 [V27,T47] ( 2, 0 ) ref -> rax class-hnd exact single-def "Strict ordering of exceptions for Array store" <<unknown class>> ;* V28 tmp20 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken> @@ -65,7 +65,7 @@ ;* V53 tmp45 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifier> ; V54 tmp46 [V54,T48] ( 2, 0 ) ref -> r15 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken> ;* V55 tmp47 [V55,T53] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V56 tmp48 [V56,T49] ( 2, 0 ) ref -> r15 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+; V56 tmp48 [V56,T49] ( 2, 0 ) ref -> r13 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
; V57 tmp49 [V57,T50] ( 2, 0 ) ref -> rax class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken> ; V58 tmp50 [V58,T08] ( 6, 1.38) ref -> r12 "Single return block return value" ; V59 tmp51 [V59,T37] ( 3, 0 ) ref -> rax single-def "argument with side effect" @@ -96,12 +96,12 @@ G_M18455_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr mov rax, gword ptr [rbx+0x10] ; gcrRegs +[rax] test rax, rax
- je G_M18455_IG34
+ je G_M18455_IG23
;; size=13 bbWeight=1 PerfScore 3.25 G_M18455_IG03: ; bbWeight=1, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref movzx r14, word ptr [rax+0x0C] cmp r14d, 0x20A0
- jbe G_M18455_IG26
+ jbe G_M18455_IG19
;; size=18 bbWeight=1 PerfScore 3.25 G_M18455_IG04: ; bbWeight=0.81, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref ; gcrRegs -[rax] @@ -110,10 +110,10 @@ G_M18455_IG04: ; bbWeight=0.81, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ;; size=13 bbWeight=0.81 PerfScore 1.01 G_M18455_IG05: ; bbWeight=0.76, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref cmp r14d, 0x2124
- jbe G_M18455_IG57
+ jbe G_M18455_IG48
lea r13d, [r14-0x213C] test r13d, r13d
- jne G_M18455_IG22
+ jne G_M18455_IG18
;; size=29 bbWeight=0.76 PerfScore 2.28 G_M18455_IG06: ; bbWeight=0.52, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rdi, rbx @@ -122,14 +122,14 @@ G_M18455_IG06: ; bbWeight=0.52, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ; gcrRegs -[rdi] ; gcr arg pop 0 test eax, eax
- je G_M18455_IG78
+ je G_M18455_IG67
mov rdi, rbx ; gcrRegs +[rdi] call [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsPossibleAnonymousMethodExpression():ubyte:this] ; gcrRegs -[rdi] ; gcr arg pop 0 test eax, eax
- jne G_M18455_IG72
+ jne G_M18455_IG61
mov rdi, rbx ; gcrRegs +[rdi] mov esi, r15d @@ -137,7 +137,7 @@ G_M18455_IG06: ; bbWeight=0.52, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ; gcrRegs -[rdi] ; gcr arg pop 0 test eax, eax
- jne G_M18455_IG56
+ jne G_M18455_IG88
;; size=54 bbWeight=0.52 PerfScore 7.19 G_M18455_IG07: ; bbWeight=0.52, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref mov rdi, rbx @@ -147,7 +147,7 @@ G_M18455_IG07: ; bbWeight=0.52, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ; gcrRegs -[rdi] ; gcr arg pop 0 test eax, eax
- jne G_M18455_IG76
+ jne G_M18455_IG65
mov rdi, rbx ; gcrRegs +[rdi] mov esi, 1 @@ -158,20 +158,169 @@ G_M18455_IG07: ; bbWeight=0.52, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, ; gcrRegs +[r12] mov rax, gword ptr [rbx+0x10] test rax, rax
- je G_M18455_IG21
+ je G_M18455_IG27
;; size=50 bbWeight=0.52 PerfScore 6.14
-G_M18455_IG08: ; bbWeight=0.52, gcrefRegs=1009 {rax rbx r12}, byrefRegs=0000 {}, byref, isz
+G_M18455_IG08: ; bbWeight=0.52, gcrefRegs=1009 {rax rbx r12}, byrefRegs=0000 {}, byref
cmp word ptr [rax+0x0C], 0x2048
- jne SHORT G_M18455_IG12 - ;; size=8 bbWeight=0.52 PerfScore 2.09 -G_M18455_IG09: ; bbWeight=0.18, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
+ je G_M18455_IG24 + ;; size=12 bbWeight=0.52 PerfScore 2.09 +G_M18455_IG09: ; bbWeight=0.34, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax rbx] + mov rax, r12 + ; gcrRegs +[rax] + ;; size=3 bbWeight=0.34 PerfScore 0.09 +G_M18455_IG10: ; bbWeight=0.34, epilog, nogc, extend + add rsp, 8 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=15 bbWeight=0.34 PerfScore 1.47 +G_M18455_IG11: ; bbWeight=0.15, gcVars=0000000000000000 {}, gcrefRegs=A088 {rbx rdi r13 r15}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[rax r12] +[rbx rdi r13 r15] + mov rax, qword ptr [rax+0x68] + call [rax+0x28]Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode:GetTrailingTrivia():Microsoft.CodeAnalysis.GreenNode:this + ; gcrRegs -[rdi] +[rax] + ; gcr arg pop 0 + mov rsi, rax + ; gcrRegs +[rsi] + ;; size=10 bbWeight=0.15 PerfScore 0.81 +G_M18455_IG12: ; bbWeight=0.25, gcrefRegs=A048 {rbx rsi r13 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
+ lea rdi, bword ptr [rbx+0x20] + ; byrRegs +[rdi] + call CORINFO_HELP_ASSIGN_REF + ; gcrRegs -[rsi] + ; byrRegs -[rdi] + xor rdi, rdi + ; gcrRegs +[rdi] + mov gword ptr [rbx+0x10], rdi + cmp gword ptr [rbx+0x28], 0 + jne G_M18455_IG74 + ;; size=26 bbWeight=0.25 PerfScore 1.68 +G_M18455_IG13: ; bbWeight=0.25, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref + ; gcrRegs -[rdi] + inc dword ptr [rbx+0x38] + mov rdi, r13 + ; gcrRegs +[rdi] + mov esi, r12d + mov rdx, r15 + ; gcrRegs +[rdx] + cmp dword ptr [rdi], edi + ;; size=14 bbWeight=0.25 PerfScore 1.68 +G_M18455_IG14: ; bbWeight=0.25, epilog, nogc, extend + add rsp, 8 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + tail.jmp [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ContextAwareSyntax:LiteralExpression(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LiteralExpressionSyntax:this] + ; gcr arg pop 0 + ;; size=20 bbWeight=0.25 PerfScore 1.31 +G_M18455_IG15: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[rdx rdi r13 r15] + mov r13, gword ptr [rbx+0x118] + ; gcrRegs +[r13] + mov edi, r14d + call [<unknown method>] + ; gcr arg pop 0 + mov r12d, eax + mov r15, gword ptr [rbx+0x10] + ; gcrRegs +[r15] + test r15, r15 + je G_M18455_IG33 + ;; size=32 bbWeight=0.25 PerfScore 2.18 +G_M18455_IG16: ; bbWeight=0.25, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz + mov rdi, gword ptr [rbx+0x10] + ; gcrRegs +[rdi] + mov rax, qword ptr [rdi] + mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifier + cmp rax, rcx + jne SHORT G_M18455_IG11 + ;; size=22 bbWeight=0.25 PerfScore 1.37 +G_M18455_IG17: ; bbWeight=0.09, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz + ; gcrRegs -[rdi] + xor rsi, rsi + ; gcrRegs +[rsi] + jmp SHORT G_M18455_IG12 + ;; size=4 bbWeight=0.09 PerfScore 0.21 +G_M18455_IG18: ; bbWeight=0.24, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + ; gcrRegs -[rsi r13 r15] + cmp r13d, 14 + ja G_M18455_IG49 + mov edi, r13d + lea rax, [reloc @RWD00] + mov eax, dword ptr [rax+4*rdi] + lea rcx, G_M18455_IG02 + add rax, rcx + jmp rax + ;; size=35 bbWeight=0.24 PerfScore 1.72 +G_M18455_IG19: ; bbWeight=0.19, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + cmp r14d, 0x204D + ja G_M18455_IG28 + ;; size=13 bbWeight=0.19 PerfScore 0.24 +G_M18455_IG20: ; bbWeight=0.09, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + cmp r14d, 0x200F + ja G_M18455_IG90 + cmp r14d, 0x2008 + jne G_M18455_IG73 + mov rdi, rbx + ; gcrRegs +[rdi] + mov esi, r15d + call [<unknown method>] + ; gcrRegs -[rdi] + ; gcr arg pop 0 + test eax, eax + jne G_M18455_IG78 + ;; size=46 bbWeight=0.09 PerfScore 0.68 +G_M18455_IG21: ; bbWeight=0.09, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref + mov rdi, rbx + ; gcrRegs +[rdi] + ;; size=3 bbWeight=0.09 PerfScore 0.02 +G_M18455_IG22: ; bbWeight=0.09, epilog, nogc, extend + add rsp, 8 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + tail.jmp [<unknown method>] + ; gcr arg pop 0 + ;; size=20 bbWeight=0.09 PerfScore 0.49 +G_M18455_IG23: ; bbWeight=0.19, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref + ; gcrRegs -[rdi] + mov rdi, rbx + ; gcrRegs +[rdi] + call [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:FetchCurrentToken():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this] + ; gcrRegs -[rdi] +[rax] + ; gcr arg pop 0 + mov r14, rax + ; gcrRegs +[r14] + lea rdi, bword ptr [rbx+0x10] + ; byrRegs +[rdi] + mov rsi, r14 + ; gcrRegs +[rsi] + call CORINFO_HELP_ASSIGN_REF + ; gcrRegs -[rax rsi] + ; byrRegs -[rdi]
...

+8 (+1.85%) : 645245.dasm - System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte (Tier1)

@@ -5,7 +5,7 @@ ; optimized using Dynamic PGO ; rbp based frame ; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 2307
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 2307
; 2 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; @@ -65,197 +65,203 @@ G_M35891_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, ; gcrRegs +[rdx] ; byrRegs +[rdi] test esi, esi
- jle SHORT G_M35891_IG09
+ jle SHORT G_M35891_IG04
;; size=4 bbWeight=1 PerfScore 1.25 G_M35891_IG03: ; bbWeight=1.00, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz cmp byte ptr [rdi], 36
- jne SHORT G_M35891_IG09
+ je SHORT G_M35891_IG10
;; size=5 bbWeight=1.00 PerfScore 3.99
-G_M35891_IG04: ; bbWeight=0.47, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz - lea ebx, [rsi-0x03] - cmp ebx, 2 - je SHORT G_M35891_IG15 - ;; size=8 bbWeight=0.47 PerfScore 0.81 -G_M35891_IG05: ; bbWeight=0.16, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz - cmp ebx, 4 - ja SHORT G_M35891_IG09 - mov eax, ebx - lea rcx, [reloc @RWD00] - mov ecx, dword ptr [rcx+4*rax] - lea r8, G_M35891_IG02 - add rcx, r8 - jmp rcx - ;; size=29 bbWeight=0.16 PerfScore 1.16 -G_M35891_IG06: ; bbWeight=0.46, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35891_IG04: ; bbWeight=0.54, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref + test rdx, rdx + je G_M35891_IG24 + ;; size=9 bbWeight=0.54 PerfScore 0.67 +G_M35891_IG05: ; bbWeight=0.53, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref + mov rax, gword ptr [rdx+0x28] + ; gcrRegs +[rax] + ;; size=4 bbWeight=0.53 PerfScore 1.07 +G_M35891_IG06: ; bbWeight=0.54, gcrefRegs=0001 {rax}, byrefRegs=0080 {rdi}, byref, isz
; gcrRegs -[rdx]
+ test rax, rax + jne SHORT G_M35891_IG16 + ;; size=5 bbWeight=0.54 PerfScore 0.67 +G_M35891_IG07: ; bbWeight=0.46, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[rax]
; byrRegs -[rdi] xor ecx, ecx ;; size=2 bbWeight=0.46 PerfScore 0.12
-G_M35891_IG07: ; bbWeight=0.54, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35891_IG08: ; bbWeight=0.54, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movzx rax, cl ;; size=3 bbWeight=0.54 PerfScore 0.14
-G_M35891_IG08: ; bbWeight=0.54, epilog, nogc, extend
+G_M35891_IG09: ; bbWeight=0.54, epilog, nogc, extend
add rsp, 8 pop rbx pop rbp ret ;; size=7 bbWeight=0.54 PerfScore 1.22
-G_M35891_IG09: ; bbWeight=0.54, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, gcvars, byref
+G_M35891_IG10: ; bbWeight=0.47, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, gcvars, byref, isz
; gcrRegs +[rdx] ; byrRegs +[rdi]
+ lea ebx, [rsi-0x03] + cmp ebx, 2 + jne SHORT G_M35891_IG18 + ;; size=8 bbWeight=0.47 PerfScore 0.81 +G_M35891_IG11: ; bbWeight=0.31, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz
test rdx, rdx
- je G_M35891_IG23 - ;; size=9 bbWeight=0.54 PerfScore 0.67 -G_M35891_IG10: ; bbWeight=0.53, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref
+ je SHORT G_M35891_IG12
mov rax, gword ptr [rdx+0x28] ; gcrRegs +[rax]
- ;; size=4 bbWeight=0.53 PerfScore 1.07 -G_M35891_IG11: ; bbWeight=0.54, gcrefRegs=0001 {rax}, byrefRegs=0080 {rdi}, byref, isz - ; gcrRegs -[rdx]
test rax, rax
- je SHORT G_M35891_IG06 - ;; size=5 bbWeight=0.54 PerfScore 0.67 -G_M35891_IG12: ; bbWeight=0.24, gcrefRegs=0001 {rax}, byrefRegs=0080 {rdi}, byref, isz
+ jne SHORT G_M35891_IG04 + ;; size=14 bbWeight=0.31 PerfScore 1.38 +G_M35891_IG12: ; bbWeight=0.30, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz + ; gcrRegs -[rax] + cmp esi, 1 + jbe G_M35891_IG25 + cmp byte ptr [rdi+0x01], 116 + jne SHORT G_M35891_IG04 + ;; size=15 bbWeight=0.30 PerfScore 1.60 +G_M35891_IG13: ; bbWeight=0.30, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz + cmp esi, 2 + jbe G_M35891_IG25 + cmp byte ptr [rdi+0x02], 121 + jne SHORT G_M35891_IG04 + cmp esi, 3 + jbe G_M35891_IG25 + cmp byte ptr [rdi+0x03], 112 + jne SHORT G_M35891_IG04 + cmp esi, 4 + jbe G_M35891_IG25 + cmp byte ptr [rdi+0x04], 101 + jne SHORT G_M35891_IG04 + ;; size=45 bbWeight=0.30 PerfScore 4.79 +G_M35891_IG14: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + ; gcrRegs -[rdx] + ; byrRegs -[rdi] + mov eax, 8 + ;; size=5 bbWeight=0.38 PerfScore 0.09 +G_M35891_IG15: ; bbWeight=0.38, epilog, nogc, extend + add rsp, 8 + pop rbx + pop rbp + ret + ;; size=7 bbWeight=0.38 PerfScore 0.85 +G_M35891_IG16: ; bbWeight=0.24, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=0080 {rdi}, gcvars, byref, isz + ; gcrRegs +[rax] + ; byrRegs +[rdi]
lea rcx, bword ptr [rax+0x10] ; byrRegs +[rcx] mov edx, dword ptr [rax+0x08] cmp esi, edx
- jne SHORT G_M35891_IG06
+ jne SHORT G_M35891_IG07
mov rsi, rcx ; byrRegs +[rsi] call [<unknown method>] ; gcrRegs -[rax] ; byrRegs -[rcx rsi rdi] test eax, eax
- je SHORT G_M35891_IG06 - ;; size=24 bbWeight=0.24 PerfScore 1.97 -G_M35891_IG13: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov eax, 8 - ;; size=5 bbWeight=0.38 PerfScore 0.09 -G_M35891_IG14: ; bbWeight=0.38, epilog, nogc, extend - add rsp, 8 - pop rbx - pop rbp - ret - ;; size=7 bbWeight=0.38 PerfScore 0.85 -G_M35891_IG15: ; bbWeight=0.31, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, gcvars, byref, isz
+ je G_M35891_IG07 + ;; size=28 bbWeight=0.24 PerfScore 1.97 +G_M35891_IG17: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + jmp SHORT G_M35891_IG14 + ;; size=2 bbWeight=0.08 PerfScore 0.15 +G_M35891_IG18: ; bbWeight=0.16, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref
; gcrRegs +[rdx] ; byrRegs +[rdi]
- test rdx, rdx - je SHORT G_M35891_IG16 - mov rax, gword ptr [rdx+0x28] - ; gcrRegs +[rax] - test rax, rax - jne SHORT G_M35891_IG09 - ;; size=14 bbWeight=0.31 PerfScore 1.38 -G_M35891_IG16: ; bbWeight=0.30, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz - ; gcrRegs -[rax]
+ cmp ebx, 4 + ja G_M35891_IG04 + mov eax, ebx + lea rcx, [reloc @RWD00] + mov ecx, dword ptr [rcx+4*rax] + lea r8, G_M35891_IG02 + add rcx, r8 + jmp rcx + ;; size=33 bbWeight=0.16 PerfScore 1.16 +G_M35891_IG19: ; bbWeight=0.08, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref
cmp esi, 1
- jbe G_M35891_IG24 - cmp byte ptr [rdi+0x01], 116 - jne SHORT G_M35891_IG09 - ;; size=15 bbWeight=0.30 PerfScore 1.60 -G_M35891_IG17: ; bbWeight=0.30, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz - cmp esi, 2 - jbe G_M35891_IG24 - cmp byte ptr [rdi+0x02], 121 - jne SHORT G_M35891_IG09 - cmp esi, 3 - jbe G_M35891_IG24 - cmp byte ptr [rdi+0x03], 112 - jne SHORT G_M35891_IG09 - cmp esi, 4 - jbe G_M35891_IG24 - cmp byte ptr [rdi+0x04], 101 - jne SHORT G_M35891_IG09 - jmp SHORT G_M35891_IG13 - ;; size=47 bbWeight=0.30 PerfScore 5.39 -G_M35891_IG18: ; bbWeight=0.08, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref - cmp esi, 1 - jbe G_M35891_IG24
+ jbe G_M35891_IG25
cmp byte ptr [rdi+0x01], 118
- jne G_M35891_IG09
+ jne G_M35891_IG04
cmp esi, 2
- jbe G_M35891_IG24
+ jbe G_M35891_IG25
cmp byte ptr [rdi+0x02], 97
- jne G_M35891_IG09
+ jne G_M35891_IG04
cmp esi, 3
- jbe G_M35891_IG24
+ jbe G_M35891_IG25
cmp byte ptr [rdi+0x03], 108
- jne G_M35891_IG09
+ jne G_M35891_IG04
cmp esi, 4
- jbe G_M35891_IG24
+ jbe G_M35891_IG25
cmp byte ptr [rdi+0x04], 117
- jne G_M35891_IG09
+ jne G_M35891_IG04
cmp esi, 5
- jbe G_M35891_IG24
+ jbe G_M35891_IG25
cmp byte ptr [rdi+0x05], 101
- jne G_M35891_IG09
+ jne G_M35891_IG04
cmp esi, 6
- jbe G_M35891_IG24
+ jbe G_M35891_IG25
cmp byte ptr [rdi+0x06], 115
- jne G_M35891_IG09
+ jne G_M35891_IG04
mov ecx, 1
- jmp G_M35891_IG07
+ jmp G_M35891_IG08
;; size=124 bbWeight=0.08 PerfScore 2.75
-G_M35891_IG19: ; bbWeight=0.05, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz
+G_M35891_IG20: ; bbWeight=0.05, gcrefRegs=0004 {rdx}, byrefRegs=0080 {rdi}, byref, isz
cmp esi, 1
- jbe SHORT G_M35891_IG24
+ jbe SHORT G_M35891_IG25
cmp byte ptr [rdi+0x01], 105
- jne G_M35891_IG09
+ jne G_M35891_IG04
cmp esi, 2
- jbe SHORT G_M35891_IG24
+ jbe SHORT G_M35891_IG25
cmp byte ptr [rdi+0x02], 100 ...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.x64.checked.mch 12 6 5 1 -37 +65
benchmarks.run_tiered.linux.x64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.x64.checked.mch 15 5 10 0 -11 +146
libraries.crossgen2.linux.x64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.linux.x64.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.linux.x64.Release.mch 15 5 10 0 -67 +85
librariestestsnotieredcompilation.run.linux.x64.Release.mch 0 0 0 0 -0 +0
realworld.run.linux.x64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.linux.x64.checked.mch 0 0 0 0 -0 +0
42 16 25 1 -115 +296

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 32,968 2,462 30,506 31 (0.09%) 31 (0.09%)
benchmarks.run_pgo.linux.x64.checked.mch 161,511 62,151 99,360 2 (0.00%) 2 (0.00%)
benchmarks.run_tiered.linux.x64.checked.mch 58,448 43,917 14,531 6 (0.01%) 6 (0.01%)
coreclr_tests.run.linux.x64.checked.mch 606,587 361,418 245,169 38 (0.01%) 38 (0.01%)
libraries.crossgen2.linux.x64.checked.mch 266,386 15 266,371 8 (0.00%) 8 (0.00%)
libraries.pmi.linux.x64.checked.mch 301,693 6 301,687 333 (0.11%) 333 (0.11%)
libraries_tests.run.linux.x64.Release.mch 746,775 494,189 252,586 327 (0.04%) 327 (0.04%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 305,412 21,933 283,479 471 (0.15%) 471 (0.15%)
realworld.run.linux.x64.checked.mch 33,357 111 33,246 96 (0.29%) 96 (0.29%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,514 10 27,504 4 (0.01%) 4 (0.01%)
2,540,651 986,212 1,554,439 1,316 (0.05%) 1,316 (0.05%)

jit-analyze output

benchmarks.run_pgo.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 71349815 (overridden on cmd)
Total bytes of diff: 71349843 (overridden on cmd)
Total bytes of delta: 28 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          15 : 25942.dasm (2.89 % of base)
          15 : 148478.dasm (2.89 % of base)
          15 : 136262.dasm (2.88 % of base)
          11 : 27417.dasm (1.95 % of base)
           9 : 82973.dasm (1.26 % of base)

Top file improvements (bytes):
         -27 : 83044.dasm (-4.74 % of base)
          -6 : 143009.dasm (-1.42 % of base)
          -1 : 48479.dasm (-0.12 % of base)
          -1 : 43167.dasm (-0.11 % of base)
          -1 : 48527.dasm (-0.12 % of base)
          -1 : 43210.dasm (-0.11 % of base)

11 total files with Code Size differences (6 improved, 5 regressed), 1 unchanged.

Top method regressions (bytes):
          15 (2.89 % of base) : 25942.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          15 (2.89 % of base) : 148478.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          15 (2.88 % of base) : 136262.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          11 (1.95 % of base) : 27417.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           9 (1.26 % of base) : 82973.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitNode|12(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)

Top method improvements (bytes):
         -27 (-4.74 % of base) : 83044.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          -6 (-1.42 % of base) : 143009.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
          -1 (-0.11 % of base) : 43167.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.11 % of base) : 43210.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.12 % of base) : 48479.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.12 % of base) : 48527.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)

Top method regressions (percentages):
          15 (2.89 % of base) : 25942.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          15 (2.89 % of base) : 148478.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          15 (2.88 % of base) : 136262.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          11 (1.95 % of base) : 27417.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           9 (1.26 % of base) : 82973.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitNode|12(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)

Top method improvements (percentages):
         -27 (-4.74 % of base) : 83044.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          -6 (-1.42 % of base) : 143009.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
          -1 (-0.12 % of base) : 48479.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.12 % of base) : 48527.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.11 % of base) : 43167.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.11 % of base) : 43210.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)

11 total methods with Code Size differences (6 improved, 5 regressed).


coreclr_tests.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 417667412 (overridden on cmd)
Total bytes of diff: 417667547 (overridden on cmd)
Total bytes of delta: 135 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          17 : 262427.dasm (3.20 % of base)
          17 : 305032.dasm (3.20 % of base)
          17 : 296158.dasm (3.20 % of base)
          17 : 3201.dasm (3.20 % of base)
          17 : 205401.dasm (3.20 % of base)
          17 : 31240.dasm (3.20 % of base)
          17 : 245293.dasm (3.20 % of base)
          17 : 256053.dasm (3.20 % of base)
           5 : 226989.dasm (0.96 % of base)
           5 : 244627.dasm (0.96 % of base)

Top file improvements (bytes):
          -7 : 288435.dasm (-0.90 % of base)
          -1 : 243502.dasm (-0.11 % of base)
          -1 : 243545.dasm (-0.12 % of base)
          -1 : 243548.dasm (-0.12 % of base)
          -1 : 243499.dasm (-0.11 % of base)

15 total files with Code Size differences (5 improved, 10 regressed), 0 unchanged.

Top method regressions (bytes):
          17 (3.20 % of base) : 262427.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 305032.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 296158.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 3201.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 205401.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 31240.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 245293.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 256053.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.96 % of base) : 226989.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.96 % of base) : 244627.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

Top method improvements (bytes):
          -7 (-0.90 % of base) : 288435.dasm - DefaultNamespace.GCVariant2:runTest(int,int):ubyte:this (Tier1-OSR)
          -1 (-0.11 % of base) : 243502.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.11 % of base) : 243499.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.12 % of base) : 243545.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.12 % of base) : 243548.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)

Top method regressions (percentages):
          17 (3.20 % of base) : 296158.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 205401.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 262427.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 305032.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 3201.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 31240.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 245293.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
          17 (3.20 % of base) : 256053.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.96 % of base) : 226989.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.96 % of base) : 244627.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

Top method improvements (percentages):
          -7 (-0.90 % of base) : 288435.dasm - DefaultNamespace.GCVariant2:runTest(int,int):ubyte:this (Tier1-OSR)
          -1 (-0.12 % of base) : 243545.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.12 % of base) : 243548.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.11 % of base) : 243502.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
          -1 (-0.11 % of base) : 243499.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)

15 total methods with Code Size differences (5 improved, 10 regressed).


libraries_tests.run.linux.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 328359812 (overridden on cmd)
Total bytes of diff: 328359830 (overridden on cmd)
Total bytes of delta: 18 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          26 : 49361.dasm (1.11 % of base)
          16 : 700531.dasm (0.93 % of base)
           8 : 645245.dasm (1.85 % of base)
           5 : 275714.dasm (0.76 % of base)
           5 : 9266.dasm (0.56 % of base)
           5 : 154746.dasm (0.56 % of base)
           5 : 533368.dasm (0.56 % of base)
           5 : 79374.dasm (0.71 % of base)
           5 : 112453.dasm (0.57 % of base)
           5 : 461335.dasm (0.56 % of base)

Top file improvements (bytes):
         -31 : 466681.dasm (-1.57 % of base)
         -16 : 625934.dasm (-1.84 % of base)
         -12 : 631077.dasm (-1.32 % of base)
          -7 : 686255.dasm (-0.95 % of base)
          -1 : 681813.dasm (-0.17 % of base)

15 total files with Code Size differences (5 improved, 10 regressed), 0 unchanged.

Top method regressions (bytes):
          26 (1.11 % of base) : 49361.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
          16 (0.93 % of base) : 700531.dasm - System.Text.RegularExpressions.Tests.MonoTests+<ValidateRegex_MemberData>d__1:MoveNext():ubyte:this (Tier1)
           8 (1.85 % of base) : 645245.dasm - System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte (Tier1)
           5 (0.76 % of base) : 275714.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.56 % of base) : 9266.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.56 % of base) : 154746.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.56 % of base) : 533368.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.71 % of base) : 79374.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.57 % of base) : 112453.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.56 % of base) : 461335.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

Top method improvements (bytes):
         -31 (-1.57 % of base) : 466681.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
         -16 (-1.84 % of base) : 625934.dasm - System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[byte]:MoveNext():ubyte:this (Tier1)
         -12 (-1.32 % of base) : 631077.dasm - System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[System.UInt128]:MoveNext():ubyte:this (Tier1)
          -7 (-0.95 % of base) : 686255.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
          -1 (-0.17 % of base) : 681813.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:MakeSlot(Microsoft.CodeAnalysis.CSharp.BoundExpression):int:this (Tier1)

Top method regressions (percentages):
           8 (1.85 % of base) : 645245.dasm - System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte (Tier1)
          26 (1.11 % of base) : 49361.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
          16 (0.93 % of base) : 700531.dasm - System.Text.RegularExpressions.Tests.MonoTests+<ValidateRegex_MemberData>d__1:MoveNext():ubyte:this (Tier1)
           5 (0.76 % of base) : 275714.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.71 % of base) : 79374.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.57 % of base) : 112453.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.56 % of base) : 154746.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.56 % of base) : 533368.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.56 % of base) : 9266.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
           5 (0.56 % of base) : 461335.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)

Top method improvements (percentages):
         -16 (-1.84 % of base) : 625934.dasm - System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[byte]:MoveNext():ubyte:this (Tier1)
         -31 (-1.57 % of base) : 466681.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
         -12 (-1.32 % of base) : 631077.dasm - System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[System.UInt128]:MoveNext():ubyte:this (Tier1)
          -7 (-0.95 % of base) : 686255.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
          -1 (-0.17 % of base) : 681813.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:MakeSlot(Microsoft.CodeAnalysis.CSharp.BoundExpression):int:this (Tier1)

15 total methods with Code Size differences (5 improved, 10 regressed).