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.SymbolicRegexBuilder
1[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.SymbolicRegexBuilder
1[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.SymbolicRegexBuilder
1[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.SymbolicRegexBuilder
1[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).
osx arm64
Diffs are based on 2,308,638 contexts (937,510 MinOpts, 1,371,128 FullOpts).
MISSED contexts: 1,132 (0.05%)
Overall (-24 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.osx.arm64.checked.mch |
34,678,976 |
+8 |
coreclr_tests.run.osx.arm64.checked.mch |
500,389,076 |
+0 |
libraries_tests.run.osx.arm64.Release.mch |
313,296,132 |
-32 |
FullOpts (-24 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.osx.arm64.checked.mch |
18,148,984 |
+8 |
coreclr_tests.run.osx.arm64.checked.mch |
162,069,656 |
+0 |
libraries_tests.run.osx.arm64.Release.mch |
111,249,188 |
-32 |
Example diffs
benchmarks.run_pgo.osx.arm64.checked.mch
-4 (-0.53%) : 67681.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.21
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, #1 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.02, 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, #1 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, #1 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, #1 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, #1 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, #1 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, #1 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.02 PerfScore 0.12
-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, #24
@@ -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%) : 69409.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_IG22
+ beq G_M17183_IG10
;; 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_IG27
+ cbz w0, G_M17183_IG15
ldr w3, [x19, #0x28]
- tbnz w3, #6, G_M17183_IG28
+ tbnz w3, #6, G_M17183_IG16
;; 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.57, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
uxtb w3, w21
@@ -84,18 +84,12 @@ G_M17183_IG05: ; bbWeight=0.57, gcrefRegs=580000 {x19 x20 x22}, byrefRegs
ldr x4, [x4]
blr x4
; gcrRegs -[x0-x2 x19-x20 x22]
- ;; size=36 bbWeight=0.57 PerfScore 4.25
-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.43, gcVars=0000000000000000 {}, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, gcvars, byref, isz
+ b G_M17183_IG09
+ ;; size=40 bbWeight=0.57 PerfScore 4.81
+G_M17183_IG06: ; bbWeight=0.43, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x20 x22]
cmp w23, #43
- bhi G_M17183_IG06
+ bhi G_M17183_IG09
mov w2, w23
adr x0, [@RWD00]
ldr w0, [x0, x2, LSL #2]
@@ -103,7 +97,7 @@ G_M17183_IG07: ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=580
add x0, x0, x1
br x0
;; size=32 bbWeight=0.43 PerfScore 3.25
-G_M17183_IG08: ; bbWeight=0.43, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M17183_IG07: ; bbWeight=0.43, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
uxtb w2, w21
mov x0, x20
@@ -117,9 +111,9 @@ G_M17183_IG08: ; bbWeight=0.43, gcrefRegs=180000 {x19 x20}, byrefRegs=000
ldr x4, [x4]
blr x4
; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
+ b G_M17183_IG09
;; size=40 bbWeight=0.43 PerfScore 3.69
-G_M17183_IG09: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M17183_IG08: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs +[x19-x20]
mov x0, x20
; gcrRegs +[x0]
@@ -131,209 +125,44 @@ G_M17183_IG09: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=000
ldr x2, [x2]
blr x2
; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0.00 PerfScore 0.00
-G_M17183_IG10: ; 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, #1 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_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, #1 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 System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitAlternation|4(System.Text.RegularExpressions.RegexNode):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 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=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, #1 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_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 <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 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=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, #1 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_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 System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitExpressionConditional|7(System.Text.RegularExpressions.RegexNode):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 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=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, #1 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_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__EmitPositiveLookaroundAssertion|10(System.Text.RegularExpressions.RegexNode):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 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=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, #1 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_IG20: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x20]
- ldr x0, [x20, #0x08]
- ; gcrRegs +[x0]
- ldr w1, [x20, #0x40]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0 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__EmitUpdateBumpalong|14(System.Text.RegularExpressions.RegexNode):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 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_IG22: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=0.00 PerfScore 0.00
+G_M17183_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldr x23, [sp, #0x58]
+ ldp x21, x22, [sp, #0x48]
...
+0 (0.00%) : 74286.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder
1[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.57, gcrefRegs=180000 {x19 x20}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19]
- ;; size=36 bbWeight=0.57 PerfScore 7.06
-G_M417_IG04: ; bbWeight=0.69, 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.69 PerfScore 2.74
-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.57 PerfScore 7.63
+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.52
-G_M417_IG06: ; bbWeight=0.77, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.77, 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.77, 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.77 PerfScore 15.49
-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.84
-G_M417_IG08: ; bbWeight=0.43, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=0.10 PerfScore 0.73
+G_M417_IG07: ; bbWeight=0.69, 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.69 PerfScore 2.74
+G_M417_IG08: ; bbWeight=0.43, 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.21
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, #1 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, #1 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, #1 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, #1 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 42.64, 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.10, 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:
+4 (+0.52%) : 63917.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -52,11 +52,11 @@ 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_IG09
+ cbz w0, G_M35244_IG24
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG09
+ bne G_M35244_IG24
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=4.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
@@ -67,7 +67,7 @@ G_M35244_IG03: ; bbWeight=4.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG04: ; bbWeight=3.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG09
+ bhi G_M35244_IG24
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -78,7 +78,7 @@ G_M35244_IG04: ; bbWeight=3.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG05: ; bbWeight=3.01, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG08
+ cbz x20, G_M35244_IG12
;; size=8 bbWeight=3.01 PerfScore 12.02
G_M35244_IG06: ; bbWeight=2.48, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
@@ -89,43 +89,40 @@ G_M35244_IG06: ; bbWeight=2.48, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG10
+ cbz x0, G_M35244_IG08
;; size=24 bbWeight=2.48 PerfScore 9.93
G_M35244_IG07: ; bbWeight=0.89, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG11
+ b G_M35244_IG09
;; size=8 bbWeight=0.89 PerfScore 3.57
-G_M35244_IG08: ; bbWeight=0.52, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=1.59, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- mov w21, wzr
- b G_M35244_IG11
- ;; size=8 bbWeight=0.52 PerfScore 0.78
-G_M35244_IG09: ; bbWeight=0.00, 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.00 PerfScore 0.01
-G_M35244_IG10: ; bbWeight=1.59, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
mov w21, #1
;; size=4 bbWeight=1.59 PerfScore 0.80
-G_M35244_IG11: ; bbWeight=3.01, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=3.01, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
sub w21, w21, #1
mov x22, x20
; gcrRegs +[x22]
cbz x22, G_M35244_IG13
;; size=12 bbWeight=3.01 PerfScore 6.01
-G_M35244_IG12: ; bbWeight=1.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x1, x0
- bne G_M35244_IG14
+ beq G_M35244_IG13
;; size=24 bbWeight=1.50 PerfScore 9.02
+G_M35244_IG11: ; bbWeight=0.75, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
+ b G_M35244_IG14
+ ;; size=4 bbWeight=0.75 PerfScore 0.75
+G_M35244_IG12: ; bbWeight=0.52, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov w21, wzr
+ b G_M35244_IG09
+ ;; size=8 bbWeight=0.52 PerfScore 0.78
G_M35244_IG13: ; bbWeight=3.01, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x22]
cbnz x22, G_M35244_IG18
;; size=4 bbWeight=3.01 PerfScore 3.01
G_M35244_IG14: ; bbWeight=1.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
@@ -160,7 +157,7 @@ G_M35244_IG17: ; bbWeight=1.08, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcrRegs -[x0]
ldr w0, [x22, #0x10]
cmp w21, w0
- bhs G_M35244_IG32
+ bhs G_M35244_IG33
ldr x0, [x22, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
@@ -187,7 +184,7 @@ G_M35244_IG19: ; bbWeight=3.01, gcrefRegs=180000 {x19 x20}, byrefRegs=000
cmp w0, #24
ccmp w1, #1, z, ne
ccmp w2, #1, z, hi
- bls G_M35244_IG25
+ bls G_M35244_IG26
;; size=28 bbWeight=3.01 PerfScore 19.54
G_M35244_IG20: ; bbWeight=3.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -216,7 +213,13 @@ G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; 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_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -232,18 +235,18 @@ G_M35244_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x19]
b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] +[x20]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG26
+ cbz x0, G_M35244_IG27
ldr x0, [x19, #0x18]
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
beq G_M35244_IG20
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -291,7 +294,7 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
b G_M35244_IG20
;; size=124 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -304,9 +307,9 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
sxtw w20, w0
mov w21, #1
- b G_M35244_IG29
+ b G_M35244_IG30
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
mov w1, w21
@@ -326,22 +329,22 @@ G_M35244_IG28: ; 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_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG28
+ blt G_M35244_IG29
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG09
- b G_M35244_IG24
+ beq G_M35244_IG24
+ b G_M35244_IG25
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; 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_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
- beq G_M35244_IG24
+ beq G_M35244_IG25
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this
@@ -353,10 +356,10 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG09
+ cbz x19, G_M35244_IG24
b G_M35244_IG03
;; size=48 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
@@ -366,20 +369,20 @@ G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG27 - G_M35244_IG02
+RWD00 dd G_M35244_IG28 - 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_IG30 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG09 - G_M35244_IG02
dd G_M35244_IG24 - G_M35244_IG02
- dd G_M35244_IG24 - G_M35244_IG02
- dd G_M35244_IG24 - G_M35244_IG02
- dd G_M35244_IG27 - G_M35244_IG02
- dd G_M35244_IG27 - 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
-; Total bytes of code 764, prolog size 20, PerfScore 158.72, instruction count 191, allocated bytes for code 764 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 768, prolog size 20, PerfScore 159.47, instruction count 192, allocated bytes for code 768 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
@@ -390,7 +393,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 191 (0x000bf) Actual length = 764 (0x0002fc)
+ Function Length : 192 (0x000c0) Actual length = 768 (0x000300)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+0.52%) : 65968.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -52,11 +52,11 @@ 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_IG09
+ cbz w0, G_M35244_IG24
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG09
+ bne G_M35244_IG24
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=4.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
@@ -67,7 +67,7 @@ G_M35244_IG03: ; bbWeight=4.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG04: ; bbWeight=3.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG09
+ bhi G_M35244_IG24
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -78,7 +78,7 @@ G_M35244_IG04: ; bbWeight=3.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG05: ; bbWeight=3.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG08
+ cbz x20, G_M35244_IG12
;; size=8 bbWeight=3.03 PerfScore 12.11
G_M35244_IG06: ; bbWeight=2.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
@@ -89,43 +89,40 @@ G_M35244_IG06: ; bbWeight=2.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG10
+ cbz x0, G_M35244_IG08
;; size=24 bbWeight=2.50 PerfScore 9.99
G_M35244_IG07: ; bbWeight=0.90, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG11
+ b G_M35244_IG09
;; size=8 bbWeight=0.90 PerfScore 3.60
-G_M35244_IG08: ; bbWeight=0.53, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=1.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- mov w21, wzr
- b G_M35244_IG11
- ;; size=8 bbWeight=0.53 PerfScore 0.80
-G_M35244_IG09: ; bbWeight=0.00, 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.00 PerfScore 0.01
-G_M35244_IG10: ; bbWeight=1.60, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
mov w21, #1
;; size=4 bbWeight=1.60 PerfScore 0.80
-G_M35244_IG11: ; bbWeight=3.03, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=3.03, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
sub w21, w21, #1
mov x22, x20
; gcrRegs +[x22]
cbz x22, G_M35244_IG13
;; size=12 bbWeight=3.03 PerfScore 6.05
-G_M35244_IG12: ; bbWeight=1.51, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.51, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x1, x0
- bne G_M35244_IG14
+ beq G_M35244_IG13
;; size=24 bbWeight=1.51 PerfScore 9.08
+G_M35244_IG11: ; bbWeight=0.76, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
+ b G_M35244_IG14
+ ;; size=4 bbWeight=0.76 PerfScore 0.76
+G_M35244_IG12: ; bbWeight=0.53, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov w21, wzr
+ b G_M35244_IG09
+ ;; size=8 bbWeight=0.53 PerfScore 0.80
G_M35244_IG13: ; bbWeight=3.03, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x22]
cbnz x22, G_M35244_IG18
;; size=4 bbWeight=3.03 PerfScore 3.03
G_M35244_IG14: ; bbWeight=1.09, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
@@ -160,7 +157,7 @@ G_M35244_IG17: ; bbWeight=1.09, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcrRegs -[x0]
ldr w0, [x22, #0x10]
cmp w21, w0
- bhs G_M35244_IG32
+ bhs G_M35244_IG33
ldr x0, [x22, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
@@ -187,7 +184,7 @@ G_M35244_IG19: ; bbWeight=3.03, gcrefRegs=180000 {x19 x20}, byrefRegs=000
cmp w0, #24
ccmp w1, #1, z, ne
ccmp w2, #1, z, hi
- bls G_M35244_IG25
+ bls G_M35244_IG26
;; size=28 bbWeight=3.03 PerfScore 19.68
G_M35244_IG20: ; bbWeight=3.03, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -216,7 +213,13 @@ G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; 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_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -232,18 +235,18 @@ G_M35244_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x19]
b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] +[x20]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG26
+ cbz x0, G_M35244_IG27
ldr x0, [x19, #0x18]
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
beq G_M35244_IG20
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -291,7 +294,7 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
b G_M35244_IG20
;; size=124 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -304,9 +307,9 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
sxtw w20, w0
mov w21, #1
- b G_M35244_IG29
+ b G_M35244_IG30
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
mov w1, w21
@@ -326,22 +329,22 @@ G_M35244_IG28: ; 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_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG28
+ blt G_M35244_IG29
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG09
- b G_M35244_IG24
+ beq G_M35244_IG24
+ b G_M35244_IG25
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; 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_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
- beq G_M35244_IG24
+ beq G_M35244_IG25
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this
@@ -353,10 +356,10 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG09
+ cbz x19, G_M35244_IG24
b G_M35244_IG03
;; size=48 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
@@ -366,20 +369,20 @@ G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG27 - G_M35244_IG02
+RWD00 dd G_M35244_IG28 - 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_IG30 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG09 - G_M35244_IG02
dd G_M35244_IG24 - G_M35244_IG02
- dd G_M35244_IG24 - G_M35244_IG02
- dd G_M35244_IG24 - G_M35244_IG02
- dd G_M35244_IG27 - G_M35244_IG02
- dd G_M35244_IG27 - 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
-; Total bytes of code 764, prolog size 20, PerfScore 159.59, instruction count 191, allocated bytes for code 764 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 768, prolog size 20, PerfScore 160.34, instruction count 192, allocated bytes for code 768 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
@@ -390,7 +393,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 191 (0x000bf) Actual length = 764 (0x0002fc)
+ Function Length : 192 (0x000c0) Actual length = 768 (0x000300)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+4 (+0.53%) : 69387.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.76) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T11] ( 6, 5.97) ref -> x21 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T11] ( 6, 5.97) 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.96, 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.96, 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.96
G_M35244_IG06: ; bbWeight=0.99, 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, #1 LSL #32
cmp x1, x0
- beq G_M35244_IG11
+ beq G_M35244_IG12
;; size=24 bbWeight=0.99 PerfScore 5.97
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.02, 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.02 PerfScore 0.07
-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.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ mov x1, x20
+ ; gcrRegs +[x1]
+ movz x0, #24
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #1 LSL #32
+ bl CORINFO_HELP_ISINSTANCEOFCLASS
+ ; gcrRegs -[x1] +[x0]
+ ; gcr arg pop 0
+ cbz x0, G_M35244_IG14
+ ;; size=24 bbWeight=1.00 PerfScore 4.01
+G_M35244_IG11: ; bbWeight=0.75, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+ ldr w21, [x0, #0x10]
+ b G_M35244_IG07
+ ;; size=8 bbWeight=0.75 PerfScore 3.00
+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.44, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x20]
+ mov x20, x22
+ ; gcrRegs +[x20]
+ b G_M35244_IG15
+ ;; size=8 bbWeight=0.44 PerfScore 0.65
+G_M35244_IG14: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
+ mov w21, #1
+ b G_M35244_IG07
+ ;; size=8 bbWeight=0.25 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.93
+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, #24
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 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.64
+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.93
-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.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x21] +[x20]
- mov x1, x20
- ; gcrRegs +[x1]
- movz x0, #24
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 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, #1 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.00 PerfScore 4.01
-G_M35244_IG19: ; bbWeight=0.75, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- b G_M35244_IG21
- ;; size=4 bbWeight=0.75 PerfScore 0.75
-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.75, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x20]
- ldr w21, [x0, #0x10]
- b G_M35244_IG07
- ;; size=8 bbWeight=0.75 PerfScore 3.00
-G_M35244_IG22: ; bbWeight=0.44, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x20] +[x22]
...
coreclr_tests.run.osx.arm64.checked.mch
+0 (0.00%) : 264321.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, #1 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, #1 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, #1 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]
@@ -215,20 +207,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=32 bbWeight=0.32 PerfScore 2.40
-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, #1 LSL #32
@@ -274,9 +266,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]
@@ -289,9 +281,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
@@ -311,19 +303,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%) : 309385.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, #1 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, #1 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, #1 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%) : 247362.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, #1 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, #1 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, #1 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, #1 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%) : 294216.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, #1 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, #1 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, #1 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%) : 301232.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, #1 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, #1 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]
@@ -183,24 +175,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
@@ -210,14 +202,14 @@ G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #1 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
@@ -227,11 +219,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]
@@ -245,7 +243,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]
@@ -256,7 +254,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
@@ -304,7 +302,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%) : 315832.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, #1 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, #1 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, #1 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.osx.arm64.Release.mch
-12 (-0.46%) : 385985.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
@@ -97,13 +97,13 @@ G_M38617_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x19]
;; size=40 bbWeight=1 PerfScore 8.00
G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
- cbz x19, G_M38617_IG20
+ cbz x19, G_M38617_IG39
ldr x0, [x20]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #1 LSL #32
cmp x0, x21
- bne G_M38617_IG21
+ bne G_M38617_IG40
ldr x0, [x20, #0x10]
; gcrRegs +[x0]
ldr x1, [x0]
@@ -126,9 +126,9 @@ G_M38617_IG04: ; bbWeight=0.07, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=
;; size=20 bbWeight=0.07 PerfScore 0.73
G_M38617_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
cmp w22, #2
- bgt G_M38617_IG23
+ bgt G_M38617_IG14
cmp w22, #1
- bne G_M38617_IG22
+ bne G_M38617_IG13
mov x0, x19
; gcrRegs +[x0]
bl <unknown method>
@@ -145,7 +145,7 @@ G_M38617_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
ldr x1, [x0]
add x2, x21, #0xD1FFAB1E
cmp x1, x2
- bne G_M38617_IG17
+ bne G_M38617_IG12
;; size=64 bbWeight=1 PerfScore 15.50
G_M38617_IG06: ; bbWeight=0.93, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, byref
ldr w20, [x0, #0x0C]
@@ -153,11 +153,11 @@ G_M38617_IG06: ; bbWeight=0.93, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=
G_M38617_IG07: ; bbWeight=1, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
cmp w20, #1
- beq G_M38617_IG38
+ beq G_M38617_IG36
cmp w20, #2
- beq G_M38617_IG37
+ beq G_M38617_IG35
sub w20, w20, #12
- cbnz w20, G_M38617_IG31
+ cbnz w20, G_M38617_IG29
;; size=24 bbWeight=1 PerfScore 4.50
G_M38617_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V00}
@@ -165,7 +165,7 @@ G_M38617_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x23, x0
- beq G_M38617_IG34
+ beq G_M38617_IG32
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -181,7 +181,7 @@ G_M38617_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000
; gcrRegs +[x14]
ldr x15, [x14, #0x70]
; gcrRegs +[x15]
- cbz x15, G_M38617_IG35
+ cbz x15, G_M38617_IG33
add x14, x23, #8
; gcrRegs -[x14]
; byrRegs +[x14]
@@ -224,7 +224,7 @@ G_M38617_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000
ldr w0, [x0, #0x08]
; gcrRegs -[x0]
cmp w1, w0
- bge G_M38617_IG36
+ bge G_M38617_IG34
;; size=156 bbWeight=1 PerfScore 36.50
G_M38617_IG09: ; bbWeight=1, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x08]
@@ -238,95 +238,19 @@ G_M38617_IG09: ; bbWeight=1, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2 x23]
; gcr arg pop 0
- b G_M38617_IG18
- ;; size=32 bbWeight=1 PerfScore 10.50
-G_M38617_IG10: ; bbWeight=0, gcVars=0000000000280100 {V00 V06 V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x19]
- ; GC ptr vars +{V00 V06 V08 V09 V19 V21}
- b G_M38617_IG12
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M38617_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x18] // [V09 loc6]
+ ;; size=28 bbWeight=1 PerfScore 9.50
+G_M38617_IG10: ; 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, #1 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, #1 LSL #32
- ldr x1, [x1]
- blr x1
- ; gcr arg pop 0
- mov x1, x0
- ; gcrRegs +[x1]
- ldr x0, [fp, #0x20] // [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, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1]
- ; gcr arg pop 0
- ;; size=72 bbWeight=0 PerfScore 0.00
-G_M38617_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x18] // [V09 loc6]
- ; gcrRegs +[x0]
- movz x11, #0xD1FFAB1E // code for <unknown method>
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #1 LSL #32
- ldr x1, [x11]
- blr x1
- ; gcrRegs -[x0]
- ; gcr arg pop 0
- cbnz w0, G_M38617_IG11
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M38617_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x30] // [V67 PSPSym]
- bl G_M38617_IG41
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M38617_IG14: ; bbWeight=0, nogc, extend
- nop
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M38617_IG15: ; bbWeight=0, gcVars=0000000000080100 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars -{V08 V09 V19 V21}
- ldr x0, [fp, #0x20] // [V06 loc3]
- ; gcrRegs +[x0]
- mov x19, x0
- ; gcrRegs +[x19]
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M38617_IG16: ; 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, #1 LSL #32
- bl CORINFO_HELP_CHKCASTCLASS
- ; gcrRegs -[x1 x19] +[x0]
- ; gcr arg pop 0
- ldr x2, [fp, #0x28] // [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, #1 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_IG18
- ;; size=60 bbWeight=0 PerfScore 0.00
-G_M38617_IG17: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=4 bbWeight=1 PerfScore 0.50
+G_M38617_IG11: ; bbWeight=1, epilog, nogc, extend
+ 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_M38617_IG12: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x23]
; GC ptr vars +{V00 V08}
ldr x1, [x0]
@@ -338,87 +262,10 @@ G_M38617_IG17: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=
sxtw w20, w0
b G_M38617_IG07
;; size=24 bbWeight=0.07 PerfScore 0.80
-G_M38617_IG18: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x23]
- ; GC ptr vars -{V00 V08}
- mov x0, x19
- ; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 0.50
-G_M38617_IG19: ; bbWeight=1, epilog, nogc, extend
- 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_M38617_IG20: ; 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, #1 LSL #32
- ldr x0, [x0]
- blr x0
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- mov x22, x0
- ; gcrRegs +[x22]
- movz x0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- mov x1, #1
- bl CORINFO_HELP_NEWARR_1_OBJ
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- mov x21, x0
- ; gcrRegs +[x21]
- movz x0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- str x0, [x21, #0x10]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- mov x1, x22
- ; gcrRegs +[x1]
- mov x2, x21
- ; gcrRegs +[x2]
- movz x3, #0xD1FFAB1E // code for <unknown method>
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #1 LSL #32
- ldr x3, [x3]
- blr x3
- ; gcrRegs -[x0-x2 x21-x22]
- ; gcr arg pop 0
- mov x0, x19
...
-8 (-0.43%) : 592206.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArraySystem.Canon,System.Canon:System.Collections.Immutable.ImmutableArray`1System.__Canon
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; fp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 79597
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 79597
; 11 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -55,12 +55,12 @@
; V43 tmp36 [V43,T54] ( 3, 0.04) ref -> x25 "guarded devirt return temp"
; V44 tmp37 [V44,T46] ( 4, 0.09) ref -> x0 "guarded devirt arg temp"
;* V45 tmp38 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Binder+<>c>
-; V46 tmp39 [V46,T25] ( 3, 0.43) ref -> x22 "guarded devirt return temp"
+; V46 tmp39 [V46,T25] ( 3, 0.43) ref -> x26 "guarded devirt return temp"
;* V47 tmp40 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Binder+<>c>
;* V48 tmp41 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
; V49 tmp42 [V49,T42] ( 2, 0.09) ref -> x22 class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-; V50 tmp43 [V50,T05] ( 6, 2.59) ref -> x19 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-; V51 tmp44 [V51,T20] ( 3, 0.65) int -> x20 "Inline stloc first use temp"
+; V50 tmp43 [V50,T05] ( 6, 2.59) ref -> x22 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+; V51 tmp44 [V51,T20] ( 3, 0.65) int -> x19 "Inline stloc first use temp"
;* V52 tmp45 [V52 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V53 tmp46 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]>
;* V54 tmp47 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
@@ -92,16 +92,16 @@
; V80 rat15 [V80,T41] ( 3, 0.09) long -> x0 "runtime lookup"
; V81 rat16 [V81,T30] ( 3, 0.13) long -> x0 "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M57371_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- stp x23, x24, [sp, #0x38]
- str x25, [sp, #0x48]
+ stp fp, lr, [sp, #-0x60]!
+ stp x19, x20, [sp, #0x20]
+ stp x21, x22, [sp, #0x30]
+ stp x23, x24, [sp, #0x40]
+ stp x25, x26, [sp, #0x50]
mov fp, sp
- str x0, [fp, #0x10]
+ str x0, [fp, #0x18]
mov x19, x0
mov x20, x1
; gcrRegs +[x20]
@@ -113,100 +113,10 @@ G_M57371_IG02: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {
; gcrRegs +[x0]
ldr w22, [x0, #0x10]
cmp w22, #1
- beq G_M57371_IG08
+ bne G_M57371_IG10
;; size=16 bbWeight=1 PerfScore 7.50
-G_M57371_IG03: ; bbWeight=0.43, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG03: ; bbWeight=0.57, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- cmp w22, #4
- bhi G_M57371_IG26
- mov w0, w22
- adr x1, [@RWD00]
- ldr w1, [x1, x0, LSL #2]
- adr x2, [G_M57371_IG02]
- add x1, x1, x2
- br x1
- ;; size=32 bbWeight=0.43 PerfScore 3.24
-G_M57371_IG04: ; bbWeight=0.22, gcrefRegs=1E00000 {x21 x22 x23 x24}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x20] +[x22-x24]
- ldr x19, [x23, #0x08]
- ; gcrRegs +[x19]
- ldr w0, [x19, #0x10]
- add w20, w0, #1
- mov x0, x19
- ; gcrRegs +[x0]
- mov w1, w20
- movz x2, #0xD1FFAB1E // code for System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:EnsureCapacity(int):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0]
- ldrsw x1, [x19, #0x10]
- ldr x0, [x19, #0x08]
- ; gcrRegs +[x0]
- mov x2, x22
- ; gcrRegs +[x2]
- bl CORINFO_HELP_ARRADDR_ST
- ; gcrRegs -[x0 x2 x22]
- str w20, [x19, #0x10]
- add w25, w25, #1
- ldr x0, [x24, #0x08]
- ; gcrRegs +[x0]
- ldr w0, [x0, #0x10]
- ; gcrRegs -[x0]
- cmp w25, w0
- bge G_M57371_IG06
- ;; size=80 bbWeight=0.22 PerfScore 6.38
-G_M57371_IG05: ; bbWeight=0.22, gcrefRegs=1A00000 {x21 x23 x24}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19]
- mov x0, x24
- ; gcrRegs +[x0]
- mov w1, w25
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ldr x1, [x21, #0x18]
- movz x2, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Binder+<>c:<.cctor>b__1119_1(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- cmp x1, x2
- bne G_M57371_IG38
- mov x1, x0
- ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- bl CORINFO_HELP_CHKCASTCLASS
- ; gcrRegs -[x1] +[x0]
- mov x22, x0
- ; gcrRegs +[x22]
- b G_M57371_IG04
- ;; size=80 bbWeight=0.22 PerfScore 3.68
-G_M57371_IG06: ; bbWeight=0.02, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x21-x22 x24]
- mov x0, x23
- ; gcrRegs +[x0]
- movz x1, #0xD1FFAB1E // code for <unknown method>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- ldr wzr, [x0]
- blr x1
- ; gcrRegs -[x23]
- ;; size=28 bbWeight=0.02 PerfScore 0.20
-G_M57371_IG07: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ldr x25, [sp, #0x48]
- ldp x23, x24, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x50
- ret lr
- ;; size=24 bbWeight=1 PerfScore 7.00
-G_M57371_IG08: ; bbWeight=0.57, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0] +[x20-x21]
mov x0, x20
; gcrRegs +[x0]
mov w1, wzr
@@ -221,7 +131,7 @@ G_M57371_IG08: ; bbWeight=0.57, gcVars=0000000000000000 {}, gcrefRegs=300
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
cmp x1, x2
- bne G_M57371_IG39
+ bne G_M57371_IG41
mov x1, x0
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -233,18 +143,28 @@ G_M57371_IG08: ; bbWeight=0.57, gcVars=0000000000000000 {}, gcrefRegs=300
mov x23, x0
; gcrRegs +[x23]
;; size=76 bbWeight=0.57 PerfScore 9.09
-G_M57371_IG09: ; bbWeight=0.57, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG04: ; bbWeight=0.57, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr x0, [x19, #0x38]
ldr x1, [x0, #0x10]
cmp x1, #64
- ble G_M57371_IG16
+ ble G_M57371_IG07
;; size=16 bbWeight=0.57 PerfScore 4.26
-G_M57371_IG10: ; bbWeight=0.45, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG05: ; bbWeight=0.45, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
ldr x0, [x0, #0x40]
- cbz x0, G_M57371_IG16
+ cbz x0, G_M57371_IG07
;; size=8 bbWeight=0.45 PerfScore 1.82
-G_M57371_IG11: ; bbWeight=0.57, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
+G_M57371_IG06: ; bbWeight=0.36, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
+ b G_M57371_IG08
+ ;; size=4 bbWeight=0.36 PerfScore 0.36
+G_M57371_IG07: ; bbWeight=0.20, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
+ mov x0, x19
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #1 LSL #32
+ bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ ;; size=20 bbWeight=0.20 PerfScore 0.61
+G_M57371_IG08: ; bbWeight=0.57, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
mov x1, x23
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for System.Collections.Immutable.ImmutableArray:Create[System.__Canon](System.__Canon):System.Collections.Immutable.ImmutableArray`1[System.__Canon]
@@ -253,10 +173,27 @@ G_M57371_IG11: ; bbWeight=0.57, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
ldr x2, [x2]
blr x2
; gcrRegs -[x1 x23] +[x0]
- b G_M57371_IG07
- ;; size=28 bbWeight=0.57 PerfScore 3.98
-G_M57371_IG12: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=24 bbWeight=0.57 PerfScore 3.41
+G_M57371_IG09: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldp x25, x26, [sp, #0x50]
+ ldp x23, x24, [sp, #0x40]
+ ldp x21, x22, [sp, #0x30]
+ ldp x19, x20, [sp, #0x20]
+ ldp fp, lr, [sp], #0x60
+ ret lr
+ ;; size=24 bbWeight=1 PerfScore 6.00
+G_M57371_IG10: ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0] +[x20-x21]
+ cmp w22, #4
+ bhi G_M57371_IG24
+ mov w0, w22
+ adr x1, [@RWD00]
+ ldr w1, [x1, x0, LSL #2]
+ adr x2, [G_M57371_IG02]
+ add x1, x1, x2
+ br x1
+ ;; size=32 bbWeight=0.43 PerfScore 3.24
+G_M57371_IG11: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
mov x0, x20
; gcrRegs +[x0]
mov w1, wzr
@@ -270,7 +207,7 @@ G_M57371_IG12: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=000
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
cmp x1, x2
- bne G_M57371_IG40
+ bne G_M57371_IG42
mov x1, x0
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -300,18 +237,28 @@ G_M57371_IG12: ; bbWeight=0.27, gcrefRegs=300000 {x20 x21}, byrefRegs=000
mov x24, x0
; gcrRegs +[x24]
;; size=128 bbWeight=0.27 PerfScore 7.08
-G_M57371_IG13: ; bbWeight=0.27, gcrefRegs=1800000 {x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG12: ; bbWeight=0.27, gcrefRegs=1800000 {x23 x24}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr x0, [x19, #0x38]
ldr x1, [x0, #0x10]
cmp x1, #56
- ble G_M57371_IG17
+ ble G_M57371_IG15
;; size=16 bbWeight=0.27 PerfScore 2.04
-G_M57371_IG14: ; bbWeight=0.22, gcrefRegs=1800000 {x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG13: ; bbWeight=0.22, gcrefRegs=1800000 {x23 x24}, byrefRegs=0000 {}, byref, isz
...
-4 (-0.40%) : 592252.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 47162
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 47162
; 4 inlinees with PGO data; 11 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -80,13 +80,9 @@ G_M57106_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x20, x0
- bne G_M57106_IG04
+ beq G_M57106_IG11
;; size=24 bbWeight=1 PerfScore 6.00
-G_M57106_IG03: ; bbWeight=0.45, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- mov w21, #9
- b G_M57106_IG05
- ;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M57106_IG04: ; bbWeight=0.55, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M57106_IG03: ; bbWeight=0.55, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
ldr x1, [x20, #0x58]
@@ -96,12 +92,12 @@ G_M57106_IG04: ; bbWeight=0.55, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
; gcr arg pop 0
sxtw w21, w0
;; size=20 bbWeight=0.55 PerfScore 4.40
-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_IG16
+ bne G_M57106_IG14
;; size=12 bbWeight=1 PerfScore 2.00
-G_M57106_IG06: ; bbWeight=0.86, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG05: ; bbWeight=0.86, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov x22, x19
; gcrRegs +[x22]
ldr x1, [x22]
@@ -109,17 +105,63 @@ G_M57106_IG06: ; bbWeight=0.86, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x1, x0
- bne G_M57106_IG09
+ bne G_M57106_IG13
;; size=28 bbWeight=0.86 PerfScore 5.58
-G_M57106_IG07: ; bbWeight=0.86, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG06: ; bbWeight=0.86, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x20, x0
- bne G_M57106_IG10
+ beq G_M57106_IG12
;; size=20 bbWeight=0.86 PerfScore 2.57
-G_M57106_IG08: ; bbWeight=0.38, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
+G_M57106_IG07: ; bbWeight=0.48, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
+ mov x0, x22
+ ; gcrRegs +[x0]
+ ldr x1, [x20, #0xF0]
+ ldr x1, [x1, #0x18]
+ blr x1
+ ; gcrRegs -[x22]
+ ; gcr arg pop 0
+ mov x19, x0
+ ; gcrRegs +[x19]
+ ;; size=20 bbWeight=0.48 PerfScore 3.84
+G_M57106_IG08: ; bbWeight=0.86, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #2 LSL #32
+ ldr x20, [x1]
+ ; gcrRegs +[x20]
+ ldr w1, [x19, #0x08]
+ cbnz w1, G_M57106_IG18
+ ;; size=24 bbWeight=0.86 PerfScore 7.29
+G_M57106_IG09: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19-x20]
+ movz x1, #0xD1FFAB1E // box for <unknown class>:<unknown field>
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #2 LSL #32
+ ldr x1, [x1]
+ ; gcrRegs +[x1]
+ ldr x0, [x1, #0x08]
+ ; gcrRegs +[x0]
+ ;; size=20 bbWeight=0.80 PerfScore 5.96
+G_M57106_IG10: ; bbWeight=0.86, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; gcrRegs -[x1]
+ 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.86 PerfScore 6.01
+G_M57106_IG11: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[x0] +[x19]
+ mov w21, #9
+ b G_M57106_IG04
+ ;; size=8 bbWeight=0.45 PerfScore 0.68
+G_M57106_IG12: ; bbWeight=0.38, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19] +[x22]
mov x0, x22
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedMethodSymbol:EnsureMapAndTypeParameters():this
@@ -140,9 +182,9 @@ G_M57106_IG08: ; bbWeight=0.38, gcrefRegs=400000 {x22}, byrefRegs=0000 {}
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- b G_M57106_IG11
+ b G_M57106_IG08
;; size=56 bbWeight=0.38 PerfScore 6.04
-G_M57106_IG09: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M57106_IG13: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov x1, x19
; gcrRegs +[x1]
@@ -154,70 +196,12 @@ G_M57106_IG09: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
; gcr arg pop 0
mov x22, x0
; gcrRegs +[x22]
- b G_M57106_IG07
+ b G_M57106_IG06
;; size=28 bbWeight=0.17 PerfScore 0.77
-G_M57106_IG10: ; bbWeight=0.48, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- mov x0, x22
- ; gcrRegs +[x0]
- ldr x1, [x20, #0xF0]
- ldr x1, [x1, #0x18]
- blr x1
- ; gcrRegs -[x22]
- ; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- ;; size=20 bbWeight=0.48 PerfScore 3.84
-G_M57106_IG11: ; bbWeight=0.86, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #2 LSL #32
- ldr x20, [x1]
- ; gcrRegs +[x20]
- ldr w1, [x19, #0x08]
- cbnz w1, G_M57106_IG18
- ;; size=24 bbWeight=0.86 PerfScore 7.29
-G_M57106_IG12: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19-x20]
- movz x1, #0xD1FFAB1E // box for <unknown class>:<unknown field>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #2 LSL #32
- ldr x1, [x1]
- ; gcrRegs +[x1]
- ldr x0, [x1, #0x08]
- ; gcrRegs +[x0]
- ;; size=20 bbWeight=0.80 PerfScore 5.96
-G_M57106_IG13: ; bbWeight=0.86, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x1]
- 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.86 PerfScore 6.01
-G_M57106_IG14: ; bbWeight=0.14, 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, #2 LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldr x0, [x0, #0x08]
- ;; size=20 bbWeight=0.14 PerfScore 1.07
-G_M57106_IG15: ; bbWeight=0.14, 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.14 PerfScore 0.99
-G_M57106_IG16: ; bbWeight=0.14, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[x0] +[x19]
+G_M57106_IG14: ; bbWeight=0.14, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0 x22] +[x19]
cmp w22, #7
- bhi G_M57106_IG17
+ bhi G_M57106_IG15
mov w0, w22
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -225,13 +209,29 @@ G_M57106_IG16: ; bbWeight=0.14, gcVars=0000000000000000 {}, gcrefRegs=800
add x1, x1, x2
br x1
;; size=32 bbWeight=0.14 PerfScore 1.07
-G_M57106_IG17: ; bbWeight=0.14, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG15: ; bbWeight=0.14, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, #15
bne G_M57106_IG34
- b G_M57106_IG14
- ;; size=12 bbWeight=0.14 PerfScore 0.36
-G_M57106_IG18: ; bbWeight=0.06, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x20]
+ ;; size=8 bbWeight=0.14 PerfScore 0.21
+G_M57106_IG16: ; bbWeight=0.14, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19]
+ movz x0, #0xD1FFAB1E // box for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #2 LSL #32
+ ldr x0, [x0]
+ ; gcrRegs +[x0]
+ ldr x0, [x0, #0x08]
+ ;; size=20 bbWeight=0.14 PerfScore 1.07
+G_M57106_IG17: ; bbWeight=0.14, 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.14 PerfScore 0.99
+G_M57106_IG18: ; bbWeight=0.06, 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
@@ -244,13 +244,13 @@ G_M57106_IG18: ; bbWeight=0.06, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov w22, wzr
ldr w23, [x21, #0x08]
cmp w23, #0
- ble G_M57106_IG25
+ ble G_M57106_IG26
;; size=40 bbWeight=0.06 PerfScore 0.53
G_M57106_IG19: ; bbWeight=0.03, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w1, [x19, #0x08]
cmp w1, w23
- blt G_M57106_IG26
+ blt G_M57106_IG27
;; size=12 bbWeight=0.03 PerfScore 0.14
G_M57106_IG20: ; bbWeight=0.06, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
mov w1, #24
@@ -266,8 +266,8 @@ G_M57106_IG20: ; bbWeight=0.06, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movk x3, #0xD1FFAB1E LSL #16
movk x3, #1 LSL #32
...
+0 (0.00%) : 388101.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -61,30 +61,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_IG43
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- beq G_M35244_IG04
+ bne G_M35244_IG43
;; size=24 bbWeight=1 PerfScore 7.00
-G_M35244_IG03: ; bbWeight=1.12, 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=1.12 PerfScore 4.49
-G_M35244_IG04: ; bbWeight=2.83, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19]
+G_M35244_IG03: ; bbWeight=2.83, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
sub w1, w0, #3
cmp w1, #5
- bls G_M35244_IG28
+ bls G_M35244_IG27
;; size=16 bbWeight=2.83 PerfScore 14.17
-G_M35244_IG05: ; bbWeight=2.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG03
+ bhi G_M35244_IG43
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -92,12 +84,12 @@ G_M35244_IG05: ; bbWeight=2.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
add x0, x0, x2
br x0
;; size=36 bbWeight=2.67 PerfScore 21.33
-G_M35244_IG06: ; bbWeight=1.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG05: ; bbWeight=1.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG13
+ cbz x20, G_M35244_IG12
;; size=8 bbWeight=1.67 PerfScore 6.67
-G_M35244_IG07: ; bbWeight=1.33, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.33, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -106,57 +98,57 @@ G_M35244_IG07: ; bbWeight=1.33, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG09
+ cbz x0, G_M35244_IG08
;; size=24 bbWeight=1.33 PerfScore 5.33
-G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=0.50, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG10
+ b G_M35244_IG09
;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M35244_IG09: ; bbWeight=0.83, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=0.83, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov w21, #1
;; size=4 bbWeight=0.83 PerfScore 0.42
-G_M35244_IG10: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
sub w21, w21, #1
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG14
+ cbz x22, G_M35244_IG13
;; size=12 bbWeight=1.67 PerfScore 3.33
-G_M35244_IG11: ; bbWeight=0.83, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.83, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x1, x0
- beq G_M35244_IG14
+ beq G_M35244_IG13
;; size=24 bbWeight=0.83 PerfScore 5.00
-G_M35244_IG12: ; bbWeight=0.42, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.42, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- b G_M35244_IG15
+ b G_M35244_IG14
;; size=4 bbWeight=0.42 PerfScore 0.42
-G_M35244_IG13: ; bbWeight=0.33, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG12: ; bbWeight=0.33, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov w21, wzr
- b G_M35244_IG10
+ b G_M35244_IG09
;; size=8 bbWeight=0.33 PerfScore 0.50
-G_M35244_IG14: ; bbWeight=1.67, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.67, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x22]
- cbnz x22, G_M35244_IG21
+ cbnz x22, G_M35244_IG20
;; size=4 bbWeight=1.67 PerfScore 1.67
-G_M35244_IG15: ; bbWeight=1.19, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=1.19, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG18
+ cbz x22, G_M35244_IG17
;; size=8 bbWeight=1.19 PerfScore 1.79
-G_M35244_IG16: ; bbWeight=0.60, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=0.60, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x1, [x22]
cmp x1, x0
- beq G_M35244_IG18
+ beq G_M35244_IG17
;; size=24 bbWeight=0.60 PerfScore 3.57
-G_M35244_IG17: ; bbWeight=0.30, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=0.30, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
mov x1, x20
; gcrRegs +[x1]
@@ -166,23 +158,23 @@ G_M35244_IG17: ; bbWeight=0.30, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x22, x0
; gcrRegs +[x22]
;; size=12 bbWeight=0.30 PerfScore 0.60
-G_M35244_IG18: ; bbWeight=1.19, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.19, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w0, [x22, #0x10]
cmp w21, w0
- bhs G_M35244_IG42
+ bhs G_M35244_IG41
ldr x0, [x22, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
cmp w21, w1
- bhs G_M35244_IG43
+ bhs G_M35244_IG42
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
ldr x20, [x0, w21, UXTW #3]
; gcrRegs +[x20]
;; size=36 bbWeight=1.19 PerfScore 18.45
-G_M35244_IG19: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
; byrRegs -[x0]
ldrb w0, [x20, #0x2E]
@@ -191,45 +183,45 @@ G_M35244_IG19: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=000
cmp w0, #24
ccmp w1, #1, z, ne
ccmp w2, #1, z, hi
- bls G_M35244_IG25
+ bls G_M35244_IG24
;; size=28 bbWeight=1.67 PerfScore 10.83
-G_M35244_IG20: ; bbWeight=1.67, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=1.67, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x19, x20
; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=8 bbWeight=1.67 PerfScore 2.50
-G_M35244_IG21: ; bbWeight=0.48, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=0.48, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] +[x22]
mov x20, x22
; gcrRegs +[x20]
- b G_M35244_IG19
+ b G_M35244_IG18
;; size=8 bbWeight=0.48 PerfScore 0.71
-G_M35244_IG22: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG21: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20 x22]
ldr w1, [x19, #0x24]
cmp w1, #1
- bne G_M35244_IG41
+ bne G_M35244_IG40
;; size=12 bbWeight=0.17 PerfScore 0.75
-G_M35244_IG23: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
mov x19, x20
- cbz x19, G_M35244_IG30
+ cbz x19, G_M35244_IG29
;; size=12 bbWeight=0.17 PerfScore 0.75
-G_M35244_IG24: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- b G_M35244_IG33
+G_M35244_IG23: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ b G_M35244_IG32
;; size=4 bbWeight=0.08 PerfScore 0.08
-G_M35244_IG25: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG24: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG26
+ cbz x0, G_M35244_IG25
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
- beq G_M35244_IG20
+ beq G_M35244_IG19
;; size=20 bbWeight=0.08 PerfScore 0.71
-G_M35244_IG26: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -275,13 +267,13 @@ G_M35244_IG26: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=000
blr x3
; gcrRegs -[x0 x2 x19 x21]
; gcr arg pop 0
- b G_M35244_IG20
+ b G_M35244_IG19
;; size=124 bbWeight=0.08 PerfScore 2.42
-G_M35244_IG27: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=4 bbWeight=0.17 PerfScore 0.17
-G_M35244_IG28: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG27: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this
@@ -289,58 +281,58 @@ G_M35244_IG28: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x1, #1 LSL #32
ldr x1, [x1]
;; size=20 bbWeight=0.17 PerfScore 0.83
-G_M35244_IG29: ; bbWeight=0.17, epilog, nogc, extend
+G_M35244_IG28: ; bbWeight=0.17, 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=0.17 PerfScore 0.67
-G_M35244_IG30: ; bbWeight=0.17, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
...
+0 (0.00%) : 590486.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanEscapeSequence(byref):ushort:this (Tier1)
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; fp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 46128
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 46128
; 4 inlinees with PGO data; 14 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -165,9 +165,17 @@ G_M29172_IG14: ; bbWeight=0.31, gcVars=0000000000000000 {}, gcrefRegs=800
;; size=36 bbWeight=0.31 PerfScore 2.52
G_M29172_IG15: ; bbWeight=0.31, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
sub w24, w22, #110
- cbz w24, G_M29172_IG17
+ cbnz w24, G_M29172_IG17
;; size=8 bbWeight=0.31 PerfScore 0.46
-G_M29172_IG16: ; bbWeight=0.12, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+G_M29172_IG16: ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19]
+ ; byrRegs -[x20]
+ mov w22, #10
+ b G_M29172_IG12
+ ;; size=8 bbWeight=0.19 PerfScore 0.28
+G_M29172_IG17: ; bbWeight=0.12, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+ ; gcrRegs +[x19]
+ ; byrRegs +[x20]
cmp w24, #10
bhi G_M29172_IG33
mov w1, w24
@@ -177,15 +185,7 @@ G_M29172_IG16: ; bbWeight=0.12, gcrefRegs=80000 {x19}, byrefRegs=100000 {
add x0, x0, x2
br x0
;; size=32 bbWeight=0.12 PerfScore 0.93
-G_M29172_IG17: ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- ; byrRegs -[x20]
- mov w22, #10
- b G_M29172_IG12
- ;; size=8 bbWeight=0.19 PerfScore 0.28
G_M29172_IG18: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
- ; gcrRegs +[x19]
- ; byrRegs +[x20]
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
mov w1, w21
@@ -385,7 +385,7 @@ RWD00 dd G_M29172_IG26 - G_M29172_IG02
dd G_M29172_IG33 - G_M29172_IG02
dd G_M29172_IG31 - G_M29172_IG02
dd G_M29172_IG25 - G_M29172_IG02
-RWD24 dd G_M29172_IG17 - G_M29172_IG02
+RWD24 dd G_M29172_IG16 - G_M29172_IG02
dd G_M29172_IG33 - G_M29172_IG02
dd G_M29172_IG33 - G_M29172_IG02
dd G_M29172_IG33 - G_M29172_IG02
+0 (0.00%) : 582264.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 37648
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 37648
; 3 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
@@ -45,13 +45,22 @@ 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_IG05
+ 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_IG09
;; size=8 bbWeight=0.38 PerfScore 0.57
-G_M57613_IG04: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M57613_IG06: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w0, w19
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -59,22 +68,13 @@ G_M57613_IG04: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add x1, x1, x2
br x1
;; size=24 bbWeight=0.38 PerfScore 2.28
-G_M57613_IG05: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w0, wzr
- ;; size=4 bbWeight=0.62 PerfScore 0.31
-G_M57613_IG06: ; 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_IG07: ; bbWeight=0.30, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M57613_IG07: ; bbWeight=0.30, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #8
- b G_M57613_IG06
+ b G_M57613_IG04
;; size=8 bbWeight=0.30 PerfScore 0.45
G_M57613_IG08: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov w0, #0xD1FFAB1E
- b G_M57613_IG06
+ b G_M57613_IG04
;; size=8 bbWeight=0.08 PerfScore 0.12
G_M57613_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
add x0, fp, #16 // [V02 loc1]
@@ -174,7 +174,7 @@ G_M57613_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
brk_unix #0
;; size=112 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M57613_IG05 - G_M57613_IG02
+RWD00 dd G_M57613_IG03 - G_M57613_IG02
dd G_M57613_IG07 - G_M57613_IG02
dd G_M57613_IG08 - G_M57613_IG02
dd G_M57613_IG07 - G_M57613_IG02
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
benchmarks.run.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
benchmarks.run_pgo.osx.arm64.checked.mch |
7 |
1 |
3 |
3 |
-4 |
+12 |
benchmarks.run_tiered.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
coreclr_tests.run.osx.arm64.checked.mch |
14 |
0 |
0 |
14 |
-0 |
+0 |
libraries.crossgen2.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
libraries.pmi.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
libraries_tests.run.osx.arm64.Release.mch |
9 |
5 |
0 |
4 |
-32 |
+0 |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
realworld.run.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
30 |
6 |
3 |
21 |
-36 |
+12 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.osx.arm64.checked.mch |
25,027 |
4 |
25,023 |
30 (0.12%) |
30 (0.12%) |
benchmarks.run_pgo.osx.arm64.checked.mch |
84,586 |
48,648 |
35,938 |
2 (0.00%) |
2 (0.00%) |
benchmarks.run_tiered.osx.arm64.checked.mch |
48,599 |
37,785 |
10,814 |
5 (0.01%) |
5 (0.01%) |
coreclr_tests.run.osx.arm64.checked.mch |
599,306 |
365,137 |
234,169 |
32 (0.01%) |
32 (0.01%) |
libraries.crossgen2.osx.arm64.checked.mch |
266,093 |
15 |
266,078 |
8 (0.00%) |
8 (0.00%) |
libraries.pmi.osx.arm64.checked.mch |
321,328 |
18 |
321,310 |
344 (0.11%) |
344 (0.11%) |
libraries_tests.run.osx.arm64.Release.mch |
632,216 |
464,282 |
167,934 |
157 (0.02%) |
157 (0.02%) |
librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
299,979 |
21,618 |
278,361 |
458 (0.15%) |
458 (0.15%) |
realworld.run.osx.arm64.checked.mch |
31,504 |
3 |
31,501 |
96 (0.30%) |
96 (0.30%) |
|
2,308,638 |
937,510 |
1,371,128 |
1,132 (0.05%) |
1,132 (0.05%) |
jit-analyze output
benchmarks.run_pgo.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 34678976 (overridden on cmd)
Total bytes of diff: 34678984 (overridden on cmd)
Total bytes of delta: 8 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
4 : 65968.dasm (0.52 % of base)
4 : 63917.dasm (0.52 % of base)
4 : 69387.dasm (0.53 % of base)
Top file improvements (bytes):
-4 : 67681.dasm (-0.53 % of base)
4 total files with Code Size differences (1 improved, 3 regressed), 3 unchanged.
Top method regressions (bytes):
4 (0.52 % of base) : 65968.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
4 (0.52 % of base) : 63917.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
4 (0.53 % of base) : 69387.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (bytes):
-4 (-0.53 % of base) : 67681.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method regressions (percentages):
4 (0.53 % of base) : 69387.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
4 (0.52 % of base) : 65968.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
4 (0.52 % of base) : 63917.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (percentages):
-4 (-0.53 % of base) : 67681.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
4 total methods with Code Size differences (1 improved, 3 regressed).
coreclr_tests.run.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 500389076 (overridden on cmd)
Total bytes of diff: 500389076 (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), 14 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
libraries_tests.run.osx.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 313296132 (overridden on cmd)
Total bytes of diff: 313296100 (overridden on cmd)
Total bytes of delta: -32 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-12 : 385985.dasm (-0.46 % of base)
-8 : 592206.dasm (-0.43 % of base)
-4 : 86864.dasm (-0.12 % of base)
-4 : 592252.dasm (-0.40 % of base)
-4 : 587113.dasm (-0.21 % of base)
5 total files with Code Size differences (5 improved, 0 regressed), 4 unchanged.
Top method improvements (bytes):
-12 (-0.46 % of base) : 385985.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-8 (-0.43 % of base) : 592206.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
-4 (-0.40 % of base) : 592252.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
-4 (-0.12 % of base) : 86864.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
-4 (-0.21 % of base) : 587113.dasm - System.Text.RegularExpressions.Tests.MonoTests+<ValidateRegex_MemberData>d__1:MoveNext():ubyte:this (Tier1)
Top method improvements (percentages):
-12 (-0.46 % of base) : 385985.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-8 (-0.43 % of base) : 592206.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
-4 (-0.40 % of base) : 592252.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
-4 (-0.21 % of base) : 587113.dasm - System.Text.RegularExpressions.Tests.MonoTests+<ValidateRegex_MemberData>d__1:MoveNext():ubyte:this (Tier1)
-4 (-0.12 % of base) : 86864.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
5 total methods with Code Size differences (5 improved, 0 regressed).
windows arm64
Diffs are based on 2,387,065 contexts (950,047 MinOpts, 1,437,018 FullOpts).
MISSED contexts: 1,169 (0.05%)
Overall (-32 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.windows.arm64.checked.mch |
46,736,428 |
+4 |
coreclr_tests.run.windows.arm64.checked.mch |
511,499,484 |
+0 |
libraries_tests.run.windows.arm64.Release.mch |
320,238,700 |
-36 |
FullOpts (-32 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
benchmarks.run_pgo.windows.arm64.checked.mch |
30,452,180 |
+4 |
coreclr_tests.run.windows.arm64.checked.mch |
165,596,824 |
+0 |
libraries_tests.run.windows.arm64.Release.mch |
117,279,024 |
-36 |
Example diffs
benchmarks.run_pgo.windows.arm64.checked.mch
-4 (-0.53%) : 85516.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.21
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_windows #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%) : 87417.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_IG22
+ beq G_M17183_IG10
;; 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_IG27
+ cbz w0, G_M17183_IG15
ldr w3, [x19, #0x28]
- tbnz w3, #6, G_M17183_IG28
+ tbnz w3, #6, G_M17183_IG16
;; 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.17
-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_IG09
+ ;; size=40 bbWeight=0.56 PerfScore 4.72
+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_IG09
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.33
-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,9 +111,9 @@ 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
+ b G_M17183_IG09
;; size=40 bbWeight=0.44 PerfScore 3.78
-G_M17183_IG09: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M17183_IG08: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs +[x19-x20]
mov x0, x20
; gcrRegs +[x0]
@@ -131,209 +125,44 @@ G_M17183_IG09: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=000
ldr x2, [x2]
blr x2
; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0.00 PerfScore 0.00
-G_M17183_IG10: ; 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_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 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_IG13: ; 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_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 <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_IG15: ; 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_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 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_IG17: ; 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_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__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_IG19: ; 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]
- blr x2
- ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG20: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x20]
- ldr x0, [x20, #0x08]
- ; gcrRegs +[x0]
- ldr w1, [x20, #0x40]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0 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__EmitUpdateBumpalong|14(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_IG22: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=0.00 PerfScore 0.00
+G_M17183_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldr x23, [sp, #0x58]
+ ldp x21, x22, [sp, #0x48]
...
+0 (0.00%) : 91743.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder
1[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.53
-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.81
-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.13
+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 15.97
-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.81
+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.08, 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.59, 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%) : 94084.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder
1[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.33
-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.81
-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.91
+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.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.74
-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.41, 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.81
+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.22
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 42.99, 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.48, 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:
+4 (+0.53%) : 87354.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.70) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T11] ( 6, 5.97) ref -> x21 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T11] ( 6, 5.97) ref -> x20 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T01] ( 4, 13.94) 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.40) 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.96
G_M35244_IG04: ; bbWeight=2.96, 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.96, 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.96
G_M35244_IG06: ; bbWeight=1.01, 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=1.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22]
@@ -95,38 +95,68 @@ G_M35244_IG08: ; bbWeight=1.00, 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=1.00 PerfScore 5.97
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=0.98, 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=0.98 PerfScore 3.94
+G_M35244_IG11: ; bbWeight=0.73, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+ ldr w21, [x0, #0x10]
+ b G_M35244_IG07
+ ;; size=8 bbWeight=0.73 PerfScore 2.94
+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.58, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.42, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x20]
+ mov x20, x22
+ ; gcrRegs +[x20]
+ b G_M35244_IG15
+ ;; size=8 bbWeight=0.42 PerfScore 0.62
+G_M35244_IG14: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
+ mov w21, #1
+ b G_M35244_IG07
+ ;; size=8 bbWeight=0.25 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.94
+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.58, 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.58 PerfScore 2.36
-G_M35244_IG13: ; bbWeight=0.79, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.79, 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.79 PerfScore 4.73
-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.79
-G_M35244_IG15: ; bbWeight=1.58, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.58, 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.58 PerfScore 24.41
-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.58 PerfScore 25.99
+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.94
-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=0.98, 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.16
+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=0.98 PerfScore 3.94
-G_M35244_IG19: ; bbWeight=0.73, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- b G_M35244_IG21
- ;; size=4 bbWeight=0.73 PerfScore 0.73
-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.73, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x20]
- ldr w21, [x0, #0x10]
- b G_M35244_IG07
- ;; size=8 bbWeight=0.73 PerfScore 2.94
-G_M35244_IG22: ; bbWeight=0.42, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x20] +[x22]
...
+4 (+0.53%) : 83995.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -52,11 +52,11 @@ 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_IG09
+ cbz w0, G_M35244_IG24
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG09
+ bne G_M35244_IG24
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=4.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
@@ -67,7 +67,7 @@ G_M35244_IG03: ; bbWeight=4.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG04: ; bbWeight=3.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG09
+ bhi G_M35244_IG24
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -78,7 +78,7 @@ G_M35244_IG04: ; bbWeight=3.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG05: ; bbWeight=3.02, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG08
+ cbz x20, G_M35244_IG12
;; size=8 bbWeight=3.02 PerfScore 12.10
G_M35244_IG06: ; bbWeight=2.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
@@ -89,43 +89,40 @@ G_M35244_IG06: ; bbWeight=2.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG10
+ cbz x0, G_M35244_IG08
;; size=24 bbWeight=2.50 PerfScore 10.01
G_M35244_IG07: ; bbWeight=0.89, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG11
+ b G_M35244_IG09
;; size=8 bbWeight=0.89 PerfScore 3.55
-G_M35244_IG08: ; bbWeight=0.52, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=1.61, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- mov w21, wzr
- b G_M35244_IG11
- ;; size=8 bbWeight=0.52 PerfScore 0.78
-G_M35244_IG09: ; bbWeight=0.00, 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.00 PerfScore 0.01
-G_M35244_IG10: ; bbWeight=1.61, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
mov w21, #1
;; size=4 bbWeight=1.61 PerfScore 0.81
-G_M35244_IG11: ; bbWeight=3.02, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=3.02, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
sub w21, w21, #1
mov x22, x20
; gcrRegs +[x22]
cbz x22, G_M35244_IG13
;; size=12 bbWeight=3.02 PerfScore 6.05
-G_M35244_IG12: ; bbWeight=1.51, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.51, 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
- bne G_M35244_IG14
+ beq G_M35244_IG13
;; size=24 bbWeight=1.51 PerfScore 9.07
+G_M35244_IG11: ; bbWeight=0.76, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
+ b G_M35244_IG14
+ ;; size=4 bbWeight=0.76 PerfScore 0.76
+G_M35244_IG12: ; bbWeight=0.52, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov w21, wzr
+ b G_M35244_IG09
+ ;; size=8 bbWeight=0.52 PerfScore 0.78
G_M35244_IG13: ; bbWeight=3.02, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x22]
cbnz x22, G_M35244_IG18
;; size=4 bbWeight=3.02 PerfScore 3.02
G_M35244_IG14: ; bbWeight=1.10, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
@@ -156,7 +153,7 @@ G_M35244_IG17: ; bbWeight=1.10, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcrRegs -[x0]
ldr w0, [x22, #0x10]
cmp w21, w0
- bhs G_M35244_IG32
+ bhs G_M35244_IG33
ldr x0, [x22, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
@@ -183,7 +180,7 @@ G_M35244_IG19: ; bbWeight=3.02, gcrefRegs=180000 {x19 x20}, byrefRegs=000
cmp w0, #24
ccmp w1, #1, z, ne
ccmp w2, #1, z, hi
- bls G_M35244_IG25
+ bls G_M35244_IG26
;; size=28 bbWeight=3.02 PerfScore 19.65
G_M35244_IG20: ; bbWeight=3.02, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -212,7 +209,13 @@ G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; 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_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -228,18 +231,18 @@ G_M35244_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x19]
b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] +[x20]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG26
+ cbz x0, G_M35244_IG27
ldr x0, [x19, #0x18]
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
beq G_M35244_IG20
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -287,7 +290,7 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
b G_M35244_IG20
;; size=124 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -300,9 +303,9 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
sxtw w20, w0
mov w21, #1
- b G_M35244_IG29
+ b G_M35244_IG30
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
mov w1, w21
@@ -322,22 +325,22 @@ G_M35244_IG28: ; 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_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG28
+ blt G_M35244_IG29
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG09
- b G_M35244_IG24
+ beq G_M35244_IG24
+ b G_M35244_IG25
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; 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_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
- beq G_M35244_IG24
+ beq G_M35244_IG25
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this
@@ -349,10 +352,10 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG09
+ cbz x19, G_M35244_IG24
b G_M35244_IG03
;; size=48 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
@@ -362,20 +365,20 @@ G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG27 - G_M35244_IG02
+RWD00 dd G_M35244_IG28 - 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_IG30 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG09 - G_M35244_IG02
dd G_M35244_IG24 - G_M35244_IG02
- dd G_M35244_IG24 - G_M35244_IG02
- dd G_M35244_IG24 - G_M35244_IG02
- dd G_M35244_IG27 - G_M35244_IG02
- dd G_M35244_IG27 - 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
-; Total bytes of code 748, prolog size 20, PerfScore 158.45, instruction count 187, allocated bytes for code 748 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 752, prolog size 20, PerfScore 159.20, instruction count 188, allocated bytes for code 752 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
@@ -386,7 +389,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 187 (0x000bb) Actual length = 748 (0x0002ec)
+ Function Length : 188 (0x000bc) Actual length = 752 (0x0002f0)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
coreclr_tests.run.windows.arm64.checked.mch
+0 (0.00%) : 305829.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%) : 2898.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]
@@ -215,20 +207,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=32 bbWeight=0.32 PerfScore 2.40
-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
@@ -274,9 +266,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]
@@ -289,9 +281,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
@@ -311,19 +303,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
...
libraries_tests.run.windows.arm64.Release.mch
-16 (-1.53%) : 471767.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -28,7 +28,7 @@
; V16 tmp6 [V16,T28] ( 3, 0.40) ref -> x19 class-hnd "Inlining Arg" <<unknown class>>
; V17 tmp7 [V17,T13] ( 4, 4 ) int -> x21 "Inline return value spill temp"
; V18 tmp8 [V18,T14] ( 3, 3.49) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V19 tmp9 [V19,T10] ( 6, 6.22) ref -> x23 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V19 tmp9 [V19,T10] ( 6, 6.22) ref -> x21 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V20 tmp10 [V20,T01] ( 4, 14 ) ref -> x22 "CASTCLASS eval op1"
;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V22 tmp12 [V22,T12] ( 3, 4.81) ref -> x22 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
@@ -56,45 +56,35 @@
; V44 rat5 [V44,T31] ( 3, 0.33) long -> x0 "CSE for expectedClsNode"
; V45 rat6 [V45,T00] ( 3, 16.67) int -> x20 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x40]!
- stp x19, x20, [sp, #0x18]
- stp x21, x22, [sp, #0x28]
- str x23, [sp, #0x38]
+ stp fp, lr, [sp, #-0x30]!
+ stp x19, x20, [sp, #0x10]
+ stp x21, x22, [sp, #0x20]
mov fp, sp
mov x19, x0
; gcrRegs +[x19]
- ;; size=24 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 4.00
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_IG09
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- beq G_M35244_IG04
+ bne G_M35244_IG09
;; size=24 bbWeight=1 PerfScore 7.00
-G_M35244_IG03: ; bbWeight=1.04, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x19]
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x40
- ret lr
- ;; size=20 bbWeight=1.04 PerfScore 6.22
-G_M35244_IG04: ; bbWeight=3.22, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19]
+G_M35244_IG03: ; bbWeight=3.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
sub w1, w0, #3
cmp w1, #5
- bls G_M35244_IG35
+ bls G_M35244_IG33
;; size=16 bbWeight=3.22 PerfScore 16.11
-G_M35244_IG05: ; bbWeight=2.78, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.78, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG03
+ bhi G_M35244_IG09
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -102,12 +92,12 @@ G_M35244_IG05: ; bbWeight=2.78, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
add x0, x0, x2
br x0
;; size=36 bbWeight=2.78 PerfScore 22.22
-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_IG09
+ cbz x20, G_M35244_IG08
;; size=8 bbWeight=2 PerfScore 8.00
-G_M35244_IG07: ; bbWeight=1.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -116,90 +106,111 @@ G_M35244_IG07: ; bbWeight=1.40, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG13
+ cbz x0, G_M35244_IG10
;; size=24 bbWeight=1.40 PerfScore 5.62
-G_M35244_IG08: ; bbWeight=0.68, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=0.68, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG14
+ b G_M35244_IG11
;; size=8 bbWeight=0.68 PerfScore 2.72
-G_M35244_IG09: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov w21, wzr
- b G_M35244_IG14
+ b G_M35244_IG11
;; size=8 bbWeight=0.60 PerfScore 0.89
-G_M35244_IG10: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=0.13, 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.13 PerfScore 0.51
+G_M35244_IG10: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[x19-x20]
+ mov w21, #1
+ ;; size=4 bbWeight=0.72 PerfScore 0.36
+G_M35244_IG11: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ sub w21, w21, #1
+ mov x22, x20
+ ; gcrRegs +[x22]
+ cbz x22, G_M35244_IG17
+ ;; size=12 bbWeight=2 PerfScore 4.00
+G_M35244_IG12: ; 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_IG17
+ ;; size=24 bbWeight=1 PerfScore 6.00
+G_M35244_IG13: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
+ b G_M35244_IG26
+ ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M35244_IG14: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20]
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
mov x19, x20
- cbnz x19, G_M35244_IG27
+ cbnz x19, G_M35244_IG28
;; size=12 bbWeight=0.11 PerfScore 0.50
-G_M35244_IG11: ; bbWeight=0.11, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cbz x19, G_M35244_IG16
+G_M35244_IG15: ; bbWeight=0.11, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ cbz x19, G_M35244_IG19
;; size=4 bbWeight=0.11 PerfScore 0.11
-G_M35244_IG12: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=4 bbWeight=0.11 PerfScore 0.11
-G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x20]
- mov w21, #1
- ;; size=4 bbWeight=0.72 PerfScore 0.36
-G_M35244_IG14: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- sub w21, w21, #1
- mov x22, x20
- ; gcrRegs +[x22]
- cbz x22, G_M35244_IG24
- ;; size=12 bbWeight=2 PerfScore 4.00
-G_M35244_IG15: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
- b G_M35244_IG31
- ;; size=4 bbWeight=1 PerfScore 1.00
-G_M35244_IG16: ; bbWeight=0.07, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19 x22]
+G_M35244_IG17: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x20 x22]
+ cbz x22, G_M35244_IG26
+ ;; size=4 bbWeight=2 PerfScore 2.00
+G_M35244_IG18: ; bbWeight=0.81, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x20]
+ mov x21, x22
+ ; gcrRegs +[x21]
+ b G_M35244_IG21
+ ;; size=8 bbWeight=0.81 PerfScore 1.22
+G_M35244_IG19: ; bbWeight=0.07, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x19 x21-x22] +[x20]
mov x19, x20
; gcrRegs +[x19]
- cbnz x19, G_M35244_IG21
+ cbnz x19, G_M35244_IG23
;; size=8 bbWeight=0.07 PerfScore 0.10
-G_M35244_IG17: ; bbWeight=0.07, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=0.07, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20]
ldr w1, [x19, #0x10]
- cbz w1, G_M35244_IG55
+ cbz w1, G_M35244_IG53
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
ldr w0, [x1, #0x08]
cmp w0, #0
- bls G_M35244_IG56
+ bls G_M35244_IG54
ldr x19, [x1, #0x10]
- b G_M35244_IG12
+ b G_M35244_IG16
;; size=32 bbWeight=0.07 PerfScore 1.02
-G_M35244_IG18: ; bbWeight=0.81, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1] +[x22]
- mov x23, x22
- ; gcrRegs +[x23]
- ;; size=4 bbWeight=0.81 PerfScore 0.41
-G_M35244_IG19: ; bbWeight=2, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22]
- ldrb w1, [x23, #0x2E]
+G_M35244_IG21: ; bbWeight=2, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x1] +[x21]
+ ldrb w1, [x21, #0x2E]
sub w0, w1, #26
sub w2, w1, #33
cmp w1, #24
ccmp w0, #1, z, ne
ccmp w2, #1, z, hi
- bhi G_M35244_IG23
+ bhi G_M35244_IG25
;; size=28 bbWeight=2 PerfScore 13.00
-G_M35244_IG20: ; bbWeight=0.11, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
- b G_M35244_IG40
+G_M35244_IG22: ; bbWeight=0.11, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+ b G_M35244_IG38
;; size=4 bbWeight=0.11 PerfScore 0.11
-G_M35244_IG21: ; bbWeight=0.03, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x23] +[x20]
+G_M35244_IG23: ; bbWeight=0.03, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x21] +[x20]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x19]
cmp x1, x0
- beq G_M35244_IG17
+ beq G_M35244_IG20
;; size=24 bbWeight=0.03 PerfScore 0.20
-G_M35244_IG22: ; bbWeight=0.02, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0.02, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x1, x20
; gcrRegs +[x1]
@@ -208,67 +219,47 @@ G_M35244_IG22: ; bbWeight=0.02, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- b G_M35244_IG17
+ b G_M35244_IG20
;; size=16 bbWeight=0.02 PerfScore 0.05
-G_M35244_IG23: ; bbWeight=2, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19] +[x23]
- mov x19, x23
...
-4 (-0.74%) : 565260.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
; fp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 52742
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 52742
; 2 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -72,7 +72,7 @@ G_M35891_IG03: ; bbWeight=1.00, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0},
beq G_M35891_IG10
;; size=12 bbWeight=1.00 PerfScore 4.49
G_M35891_IG04: ; bbWeight=0.69, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
- cbnz x2, G_M35891_IG15
+ cbnz x2, G_M35891_IG14
;; size=4 bbWeight=0.69 PerfScore 0.69
G_M35891_IG05: ; bbWeight=0.54, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
; gcrRegs -[x2]
@@ -99,9 +99,39 @@ G_M35891_IG10: ; bbWeight=0.31, gcVars=0000000000000000 {}, gcrefRegs=000
; gcrRegs +[x2]
; byrRegs +[x0]
sub w19, w1, #3
- cbz w19, G_M35891_IG12
+ cbnz w19, G_M35891_IG15
;; size=8 bbWeight=0.31 PerfScore 0.47
-G_M35891_IG11: ; bbWeight=0.14, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+G_M35891_IG11: ; bbWeight=0.17, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+ cmp w1, #1
+ bls G_M35891_IG29
+ ldrb w3, [x0, #0x01]
+ cmp w3, #105
+ bne G_M35891_IG04
+ cmp w1, #2
+ bls G_M35891_IG29
+ ldrb w3, [x0, #0x02]
+ cmp w3, #100
+ bne G_M35891_IG04
+ ;; size=40 bbWeight=0.17 PerfScore 2.08
+G_M35891_IG12: ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x2]
+ ; byrRegs -[x0]
+ mov w0, #2
+ ;; size=4 bbWeight=0.17 PerfScore 0.09
+G_M35891_IG13: ; bbWeight=0.17, epilog, nogc, extend
+ ldr x19, [sp, #0x18]
+ ldp fp, lr, [sp], #0x20
+ ret lr
+ ;; size=12 bbWeight=0.17 PerfScore 0.69
+G_M35891_IG14: ; bbWeight=0.15, gcVars=0000000000000000 {}, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, gcvars, byref
+ ; gcrRegs +[x2]
+ ; byrRegs +[x0]
+ ldr x3, [x2, #0x28]
+ ; gcrRegs +[x3]
+ b G_M35891_IG06
+ ;; size=8 bbWeight=0.15 PerfScore 0.58
+G_M35891_IG15: ; bbWeight=0.14, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
+ ; gcrRegs -[x3]
cmp w19, #4
bhi G_M35891_IG04
mov w3, w19
@@ -111,37 +141,8 @@ G_M35891_IG11: ; bbWeight=0.14, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0},
add x4, x4, x5
br x4
;; size=32 bbWeight=0.14 PerfScore 1.04
-G_M35891_IG12: ; bbWeight=0.17, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
- cmp w1, #1
- bls G_M35891_IG30
- ldrb w3, [x0, #0x01]
- cmp w3, #105
- bne G_M35891_IG04
- cmp w1, #2
- bls G_M35891_IG30
- ldrb w3, [x0, #0x02]
- cmp w3, #100
- bne G_M35891_IG04
- ;; size=40 bbWeight=0.17 PerfScore 2.08
-G_M35891_IG13: ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x2]
- ; byrRegs -[x0]
- mov w0, #2
- ;; size=4 bbWeight=0.17 PerfScore 0.09
-G_M35891_IG14: ; bbWeight=0.17, epilog, nogc, extend
- ldr x19, [sp, #0x18]
- ldp fp, lr, [sp], #0x20
- ret lr
- ;; size=12 bbWeight=0.17 PerfScore 0.69
-G_M35891_IG15: ; bbWeight=0.15, gcVars=0000000000000000 {}, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, gcvars, byref
- ; gcrRegs +[x2]
- ; byrRegs +[x0]
- ldr x3, [x2, #0x28]
- ; gcrRegs +[x3]
- b G_M35891_IG06
- ;; size=8 bbWeight=0.15 PerfScore 0.58
G_M35891_IG16: ; bbWeight=0.07, gcrefRegs=0008 {x3}, byrefRegs=0001 {x0}, byref, isz
- ; gcrRegs -[x2]
+ ; gcrRegs -[x2] +[x3]
add x4, x3, #16
; byrRegs +[x4]
ldr w2, [x3, #0x08]
@@ -178,26 +179,26 @@ G_M35891_IG19: ; bbWeight=0.08, gcVars=0000000000000000 {}, gcrefRegs=000
G_M35891_IG20: ; bbWeight=0.08, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
; gcrRegs -[x3]
cmp w1, #1
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x01]
cmp w3, #116
bne G_M35891_IG04
;; size=20 bbWeight=0.08 PerfScore 0.46
G_M35891_IG21: ; bbWeight=0.08, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
cmp w1, #2
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x02]
cmp w3, #121
bne G_M35891_IG04
;; size=20 bbWeight=0.08 PerfScore 0.46
G_M35891_IG22: ; bbWeight=0.08, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
cmp w1, #3
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x03]
cmp w3, #112
bne G_M35891_IG04
cmp w1, #4
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x04]
cmp w3, #101
bne G_M35891_IG04
@@ -205,34 +206,34 @@ G_M35891_IG22: ; bbWeight=0.08, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0},
;; size=44 bbWeight=0.08 PerfScore 0.99
G_M35891_IG23: ; bbWeight=0.04, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
cmp w1, #1
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x01]
cmp w3, #118
bne G_M35891_IG04
;; size=20 bbWeight=0.04 PerfScore 0.24
G_M35891_IG24: ; bbWeight=0.04, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
cmp w1, #2
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x02]
cmp w3, #97
bne G_M35891_IG04
cmp w1, #3
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x03]
cmp w3, #108
bne G_M35891_IG04
cmp w1, #4
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x04]
cmp w3, #117
bne G_M35891_IG04
cmp w1, #5
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x05]
cmp w3, #101
bne G_M35891_IG04
cmp w1, #6
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x06]
cmp w3, #115
bne G_M35891_IG04
@@ -240,23 +241,24 @@ G_M35891_IG24: ; bbWeight=0.04, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0},
G_M35891_IG25: ; bbWeight=0.04, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
; byrRegs -[x0]
- b G_M35891_IG29
- ;; size=4 bbWeight=0.04 PerfScore 0.04
+ mov w1, #1
+ b G_M35891_IG08
+ ;; size=8 bbWeight=0.04 PerfScore 0.06
G_M35891_IG26: ; bbWeight=0.02, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref, isz
; gcrRegs +[x2]
; byrRegs +[x0]
cmp w1, #1
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x01]
cmp w3, #114
bne G_M35891_IG04
cmp w1, #2
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x02]
cmp w3, #101
bne G_M35891_IG04
cmp w1, #3
- bls G_M35891_IG30
+ bls G_M35891_IG29
ldrb w3, [x0, #0x03]
cmp w3, #102
bne G_M35891_IG04
@@ -271,22 +273,18 @@ G_M35891_IG28: ; bbWeight=0.02, epilog, nogc, extend
ldp fp, lr, [sp], #0x20
ret lr
;; size=12 bbWeight=0.02 PerfScore 0.09
-G_M35891_IG29: ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- mov w1, #1
- b G_M35891_IG08
- ;; size=8 bbWeight=0.04 PerfScore 0.06
-G_M35891_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35891_IG29: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
bl CORINFO_HELP_RNGCHKFAIL
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35891_IG12 - G_M35891_IG02
+RWD00 dd G_M35891_IG11 - G_M35891_IG02
dd G_M35891_IG26 - G_M35891_IG02
dd G_M35891_IG19 - G_M35891_IG02
dd G_M35891_IG04 - G_M35891_IG02
dd G_M35891_IG23 - G_M35891_IG02
-; Total bytes of code 544, prolog size 12, PerfScore 24.20, instruction count 136, allocated bytes for code 544 (MethodHash=1fe073cc) for method System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte (Tier1)
+; Total bytes of code 540, prolog size 12, PerfScore 24.16, instruction count 135, allocated bytes for code 540 (MethodHash=1fe073cc) for method System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -297,7 +295,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 136 (0x00088) Actual length = 544 (0x000220)
+ Function Length : 135 (0x00087) Actual length = 540 (0x00021c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-0.46%) : 394067.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
@@ -97,27 +97,27 @@ G_M38617_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x19]
;; size=40 bbWeight=1 PerfScore 8.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_IG37
ldr x0, [x20]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #0xD1FFAB1E LSL #32
cmp x0, x21
- bne G_M38617_IG20
+ bne G_M38617_IG39
ldr x0, [x20, #0x10]
; gcrRegs +[x0]
ldr x1, [x0]
add x2, x21, #0xD1FFAB1E
cmp x1, x2
- bne G_M38617_IG19
+ bne G_M38617_IG38
ldr w22, [x0, #0x0C]
;; size=52 bbWeight=1 PerfScore 18.00
G_M38617_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
cmp w22, #2
- bgt G_M38617_IG22
+ bgt G_M38617_IG12
cmp w22, #1
- bne G_M38617_IG21
+ bne G_M38617_IG11
mov x0, x19
; gcrRegs +[x0]
bl <unknown method>
@@ -134,7 +134,7 @@ G_M38617_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
ldr x1, [x0]
add x2, x21, #0xD1FFAB1E
cmp x1, x2
- bne G_M38617_IG15
+ bne G_M38617_IG10
;; size=64 bbWeight=1 PerfScore 15.50
G_M38617_IG04: ; bbWeight=0.96, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, byref
ldr w20, [x0, #0x0C]
@@ -142,11 +142,11 @@ G_M38617_IG04: ; bbWeight=0.96, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=
G_M38617_IG05: ; bbWeight=1, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
cmp w20, #1
- beq G_M38617_IG37
+ beq G_M38617_IG34
cmp w20, #2
- beq G_M38617_IG36
+ beq G_M38617_IG33
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=880000 {x19 x23}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V00}
@@ -154,7 +154,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x23, x0
- beq G_M38617_IG33
+ beq G_M38617_IG30
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -170,7 +170,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000
; gcrRegs +[x14]
ldr x15, [x14, #0x70]
; gcrRegs +[x15]
- cbz x15, G_M38617_IG34
+ cbz x15, G_M38617_IG31
add x14, x23, #8
; gcrRegs -[x14]
; byrRegs +[x14]
@@ -213,7 +213,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000
ldr w0, [x0, #0x08]
; gcrRegs -[x0]
cmp w1, w0
- bge G_M38617_IG35
+ bge G_M38617_IG32
;; size=156 bbWeight=1 PerfScore 36.50
G_M38617_IG07: ; bbWeight=1, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x08]
@@ -227,95 +227,19 @@ G_M38617_IG07: ; bbWeight=1, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2 x23]
; gcr arg pop 0
- b G_M38617_IG16
- ;; size=32 bbWeight=1 PerfScore 10.50
-G_M38617_IG08: ; bbWeight=0, gcVars=0000000000280100 {V00 V06 V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x19]
- ; GC ptr vars +{V00 V06 V08 V09 V19 V21}
- b G_M38617_IG10
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M38617_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x18] // [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, #0x20] // [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, #0x18] // [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, #0x30] // [V67 PSPSym]
- bl G_M38617_IG40
- ;; 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=0000000000080100 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars -{V08 V09 V19 V21}
- ldr x0, [fp, #0x20] // [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, #0x28] // [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.04, gcVars=0000000000000100 {V00}, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=4 bbWeight=1 PerfScore 0.50
+G_M38617_IG09: ; bbWeight=1, epilog, nogc, extend
+ 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_M38617_IG10: ; bbWeight=0.04, gcVars=0000000000000100 {V00}, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x23]
; GC ptr vars +{V00 V08}
ldr x1, [x0]
@@ -327,97 +251,10 @@ G_M38617_IG15: ; bbWeight=0.04, gcVars=0000000000000100 {V00}, gcrefRegs=
sxtw w20, w0
b G_M38617_IG05
;; size=24 bbWeight=0.04 PerfScore 0.46
-G_M38617_IG16: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x23]
- ; 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
- 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_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 x22, x0
- ; gcrRegs +[x22]
- 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 x21, x0
- ; gcrRegs +[x21]
- movz x0, #8
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- str x0, [x21, #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 x19, x0
- ; gcrRegs +[x19]
- mov x1, x22
- ; gcrRegs +[x1]
- mov x2, x21
- ; gcrRegs +[x2]
- movz x3, #0xD1FFAB1E // code for <unknown method>
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
...
+0 (0.00%) : 392734.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:VisitNodeProperty(System.Xml.Xsl.Qil.QilUnary):System.Xml.Xsl.Qil.QilUnary:this (Tier1)
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; fp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 330
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 330
; 6 inlinees with PGO data; 26 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -171,7 +171,7 @@ G_M41811_IG10: ; bbWeight=0.15, gcrefRegs=780000 {x19 x20 x21 x22}, byref
;; size=24 bbWeight=0.15 PerfScore 1.65
G_M41811_IG11: ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
tst w24, #0xD1FFAB1E
- bne G_M41811_IG29
+ bne G_M41811_IG30
movz x24, #0xD1FFAB1E
movk x24, #0xD1FFAB1E LSL #16
movk x24, #0xD1FFAB1E LSL #32
@@ -179,10 +179,10 @@ G_M41811_IG11: ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefReg
; gcrRegs +[x25]
ldr x0, [x22]
cmp x0, x23
- bne G_M41811_IG27
+ bne G_M41811_IG28
ldr w0, [x22, #0x0C]
cmp w0, #55
- bhs G_M41811_IG26
+ bhs G_M41811_IG27
add x1, x25, #16
; byrRegs +[x1]
ldr x26, [x1, w0, UXTW #3]
@@ -199,7 +199,7 @@ G_M41811_IG13: ; bbWeight=0.60, gcrefRegs=4380000 {x19 x20 x21 x26}, byre
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x26, x0
- bne G_M41811_IG28
+ bne G_M41811_IG29
;; size=20 bbWeight=0.60 PerfScore 1.80
G_M41811_IG14: ; bbWeight=1, gcrefRegs=4380000 {x19 x20 x21 x26}, byrefRegs=0000 {}, byref, isz
ldr x0, [x21]
@@ -269,19 +269,9 @@ G_M41811_IG20: ; bbWeight=1, gcrefRegs=4380000 {x19 x20 x21 x26}, byrefRe
ldr w0, [x20, #0x20]
sub w25, w0, #90
cmp w25, #1
- beq G_M41811_IG22
+ bne G_M41811_IG25
;; size=84 bbWeight=1 PerfScore 24.50
-G_M41811_IG21: ; bbWeight=0.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cmp w25, #3
- bhi G_M41811_IG23
- mov w0, w25
- adr x1, [@RWD00]
- ldr w1, [x1, x0, LSL #2]
- adr x2, [G_M41811_IG02]
- add x1, x1, x2
- br x1
- ;; size=32 bbWeight=0.40 PerfScore 3.00
-G_M41811_IG22: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M41811_IG21: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x10]
; gcrRegs +[x0]
ldr x1, [x24, #0xD1FFAB1E]
@@ -304,12 +294,12 @@ G_M41811_IG22: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=000
str w1, [x0, #0x40]
strb wzr, [x0, #0x44]
;; size=68 bbWeight=0.60 PerfScore 14.10
-G_M41811_IG23: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M41811_IG22: ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
mov x0, x20
; gcrRegs +[x0]
;; size=4 bbWeight=1 PerfScore 0.50
-G_M41811_IG24: ; bbWeight=1, epilog, nogc, extend
+G_M41811_IG23: ; bbWeight=1, epilog, nogc, extend
ldr x27, [sp, #0x88]
ldp x25, x26, [sp, #0x78]
ldp x23, x24, [sp, #0x68]
@@ -318,7 +308,7 @@ G_M41811_IG24: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x90
ret lr
;; size=28 bbWeight=1 PerfScore 8.00
-G_M41811_IG25: ; bbWeight=0.40, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
+G_M41811_IG24: ; bbWeight=0.40, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x19]
ldr x0, [x19, #0x10]
; gcrRegs +[x0]
@@ -341,86 +331,20 @@ G_M41811_IG25: ; bbWeight=0.40, gcVars=0000000000000000 {}, gcrefRegs=180
mov w1, #1
str w1, [x0, #0x40]
strb wzr, [x0, #0x44]
- b G_M41811_IG23
+ b G_M41811_IG22
;; size=72 bbWeight=0.40 PerfScore 9.80
-G_M41811_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19-x20]
- bl CORINFO_HELP_RNGCHKFAIL
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M41811_IG27: ; bbWeight=0, gcrefRegs=2780000 {x19 x20 x21 x22 x25}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x19-x22 x25]
- mov x0, x22
- ; gcrRegs +[x0]
- ldr x1, [x22]
- ldr x1, [x1, #0x60]
- ldr x1, [x1, #0x38]
- blr x1
+G_M41811_IG25: ; bbWeight=0.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
- cmp w0, #55
- bhs G_M41811_IG26
- add x1, x25, #16
- ; byrRegs +[x1]
- ldr x26, [x1, w0, UXTW #3]
- ; gcrRegs +[x26]
- mov x0, x22
- ; gcrRegs +[x0]
- ldr x1, [x22]
- ; byrRegs -[x1]
- ldr x1, [x1, #0x68]
- ldr x1, [x1, #0x20]
- blr x1
- ; gcrRegs -[x0 x22 x25]
- sxtw w27, w0
- b G_M41811_IG12
- ;; size=64 bbWeight=0 PerfScore 0.00
-G_M41811_IG28: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x26]
- movz x26, #0xD1FFAB1E
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #0xD1FFAB1E LSL #32
- b G_M41811_IG14
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M41811_IG29: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x22]
- movz x24, #0xD1FFAB1E
- movk x24, #0xD1FFAB1E LSL #16
- movk x24, #0xD1FFAB1E LSL #32
- ldr x26, [x24, #0xD1FFAB1E]
- ; gcrRegs +[x26]
- mov x0, x22
- ; gcrRegs +[x0]
- ldr x1, [x22]
- ldr x1, [x1, #0x60]
- ldr x1, [x1, #0x38]
- blr x1
- ; gcrRegs -[x0]
- cmp w0, #55
- bhs G_M41811_IG26
- add x1, x26, #16
- ; byrRegs +[x1]
- ldr x26, [x1, w0, UXTW #3]
- mov x0, x22
- ; gcrRegs +[x0]
- ldr x1, [x22]
- ; byrRegs -[x1]
- ldr x1, [x1, #0x68]
- ldr x1, [x1, #0x20]
- blr x1
- ; gcrRegs -[x0 x22]
- cbnz w0, G_M41811_IG14
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- cmp x26, x0
- beq G_M41811_IG14
- movz x26, #0xD1FFAB1E
- ; gcrRegs -[x26]
- movk x26, #0xD1FFAB1E LSL #16
- movk x26, #0xD1FFAB1E LSL #32
- b G_M41811_IG14
- ;; size=112 bbWeight=0 PerfScore 0.00
-G_M41811_IG30: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x21]
+ cmp w25, #3
+ bhi G_M41811_IG22
+ mov w0, w25
+ adr x1, [@RWD00]
+ ldr w1, [x1, x0, LSL #2]
+ adr x2, [G_M41811_IG02]
+ add x1, x1, x2
+ br x1
+ ;; size=32 bbWeight=0.40 PerfScore 3.00
+G_M41811_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x10]
; gcrRegs +[x0]
ldr x0, [x0, #0x10]
@@ -485,11 +409,87 @@ G_M41811_IG30: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
bl CORINFO_HELP_ASSIGN_BYREF
ldr x12, [x13], #0x08
str x12, [x14], #0x08
- b G_M41811_IG23
+ b G_M41811_IG22
;; size=204 bbWeight=0 PerfScore 0.00
-G_M41811_IG31: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19]
+G_M41811_IG27: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x20]
; byrRegs -[x13-x14]
+ bl CORINFO_HELP_RNGCHKFAIL
+ ;; size=4 bbWeight=0 PerfScore 0.00
+G_M41811_IG28: ; bbWeight=0, gcrefRegs=2780000 {x19 x20 x21 x22 x25}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x19-x22 x25]
+ mov x0, x22
+ ; gcrRegs +[x0]
+ ldr x1, [x22]
+ ldr x1, [x1, #0x60]
+ ldr x1, [x1, #0x38]
+ blr x1
+ ; gcrRegs -[x0]
+ cmp w0, #55
+ bhs G_M41811_IG27
+ add x1, x25, #16
+ ; byrRegs +[x1]
+ ldr x26, [x1, w0, UXTW #3]
+ ; gcrRegs +[x26]
+ mov x0, x22
+ ; gcrRegs +[x0]
+ ldr x1, [x22]
+ ; byrRegs -[x1]
+ ldr x1, [x1, #0x68]
+ ldr x1, [x1, #0x20]
+ blr x1
+ ; gcrRegs -[x0 x22 x25]
+ sxtw w27, w0
+ b G_M41811_IG12
+ ;; size=64 bbWeight=0 PerfScore 0.00
+G_M41811_IG29: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x26]
+ movz x26, #0xD1FFAB1E
+ movk x26, #0xD1FFAB1E LSL #16
+ movk x26, #0xD1FFAB1E LSL #32
+ b G_M41811_IG14
+ ;; size=16 bbWeight=0 PerfScore 0.00
+G_M41811_IG30: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[x22]
+ movz x24, #0xD1FFAB1E
+ movk x24, #0xD1FFAB1E LSL #16
+ movk x24, #0xD1FFAB1E LSL #32
+ ldr x26, [x24, #0xD1FFAB1E]
+ ; gcrRegs +[x26]
+ mov x0, x22
+ ; gcrRegs +[x0]
+ ldr x1, [x22]
+ ldr x1, [x1, #0x60]
+ ldr x1, [x1, #0x38]
+ blr x1
+ ; gcrRegs -[x0]
+ cmp w0, #55
+ bhs G_M41811_IG27
+ add x1, x26, #16
+ ; byrRegs +[x1]
...
+0 (0.00%) : 396239.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -61,30 +61,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_IG43
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- beq G_M35244_IG04
+ bne G_M35244_IG43
;; size=24 bbWeight=1 PerfScore 7.00
-G_M35244_IG03: ; bbWeight=1.12, 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=1.12 PerfScore 4.49
-G_M35244_IG04: ; bbWeight=2.83, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19]
+G_M35244_IG03: ; bbWeight=2.83, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
sub w1, w0, #3
cmp w1, #5
- bls G_M35244_IG28
+ bls G_M35244_IG27
;; size=16 bbWeight=2.83 PerfScore 14.17
-G_M35244_IG05: ; bbWeight=2.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG03
+ bhi G_M35244_IG43
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -92,12 +84,12 @@ G_M35244_IG05: ; bbWeight=2.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
add x0, x0, x2
br x0
;; size=36 bbWeight=2.67 PerfScore 21.33
-G_M35244_IG06: ; bbWeight=1.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG05: ; bbWeight=1.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG13
+ cbz x20, G_M35244_IG12
;; size=8 bbWeight=1.67 PerfScore 6.67
-G_M35244_IG07: ; bbWeight=1.17, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.17, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -106,57 +98,57 @@ G_M35244_IG07: ; bbWeight=1.17, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG09
+ cbz x0, G_M35244_IG08
;; size=24 bbWeight=1.17 PerfScore 4.68
-G_M35244_IG08: ; bbWeight=0.57, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=0.57, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG10
+ b G_M35244_IG09
;; size=8 bbWeight=0.57 PerfScore 2.27
-G_M35244_IG09: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
mov w21, #1
;; size=4 bbWeight=0.60 PerfScore 0.30
-G_M35244_IG10: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
sub w21, w21, #1
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG14
+ cbz x22, G_M35244_IG13
;; size=12 bbWeight=1.67 PerfScore 3.33
-G_M35244_IG11: ; bbWeight=0.83, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.83, 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_IG14
+ beq G_M35244_IG13
;; size=24 bbWeight=0.83 PerfScore 5.00
-G_M35244_IG12: ; bbWeight=0.42, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.42, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- b G_M35244_IG15
+ b G_M35244_IG14
;; size=4 bbWeight=0.42 PerfScore 0.42
-G_M35244_IG13: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG12: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov w21, wzr
- b G_M35244_IG10
+ b G_M35244_IG09
;; size=8 bbWeight=0.50 PerfScore 0.74
-G_M35244_IG14: ; bbWeight=1.67, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.67, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x22]
- cbnz x22, G_M35244_IG21
+ cbnz x22, G_M35244_IG20
;; size=4 bbWeight=1.67 PerfScore 1.67
-G_M35244_IG15: ; bbWeight=0.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG18
+ cbz x22, G_M35244_IG17
;; size=8 bbWeight=0.99 PerfScore 1.48
-G_M35244_IG16: ; bbWeight=0.49, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=0.49, 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_IG18
+ beq G_M35244_IG17
;; size=24 bbWeight=0.49 PerfScore 2.96
-G_M35244_IG17: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
mov x1, x20
; gcrRegs +[x1]
@@ -166,23 +158,23 @@ G_M35244_IG17: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x22, x0
; gcrRegs +[x22]
;; size=12 bbWeight=0.25 PerfScore 0.49
-G_M35244_IG18: ; bbWeight=0.99, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=0.99, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w0, [x22, #0x10]
cmp w21, w0
- bhs G_M35244_IG42
+ bhs G_M35244_IG41
ldr x0, [x22, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
cmp w21, w1
- bhs G_M35244_IG43
+ bhs G_M35244_IG42
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
ldr x20, [x0, w21, UXTW #3]
; gcrRegs +[x20]
;; size=36 bbWeight=0.99 PerfScore 15.31
-G_M35244_IG19: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
; byrRegs -[x0]
ldrb w0, [x20, #0x2E]
@@ -191,45 +183,45 @@ G_M35244_IG19: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=000
cmp w0, #24
ccmp w1, #1, z, ne
ccmp w2, #1, z, hi
- bls G_M35244_IG25
+ bls G_M35244_IG24
;; size=28 bbWeight=1.67 PerfScore 10.83
-G_M35244_IG20: ; bbWeight=1.67, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=1.67, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x19, x20
; gcrRegs +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=8 bbWeight=1.67 PerfScore 2.50
-G_M35244_IG21: ; bbWeight=0.68, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=0.68, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] +[x22]
mov x20, x22
; gcrRegs +[x20]
- b G_M35244_IG19
+ b G_M35244_IG18
;; size=8 bbWeight=0.68 PerfScore 1.02
-G_M35244_IG22: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG21: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20 x22]
ldr w1, [x19, #0x24]
cmp w1, #1
- bne G_M35244_IG41
+ bne G_M35244_IG40
;; size=12 bbWeight=0.17 PerfScore 0.75
-G_M35244_IG23: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
mov x19, x20
- cbz x19, G_M35244_IG30
+ cbz x19, G_M35244_IG29
;; size=12 bbWeight=0.17 PerfScore 0.75
-G_M35244_IG24: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- b G_M35244_IG33
+G_M35244_IG23: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ b G_M35244_IG32
;; size=4 bbWeight=0.08 PerfScore 0.08
-G_M35244_IG25: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG24: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG26
+ cbz x0, G_M35244_IG25
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
- beq G_M35244_IG20
+ beq G_M35244_IG19
;; size=20 bbWeight=0.08 PerfScore 0.71
-G_M35244_IG26: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -275,13 +267,13 @@ G_M35244_IG26: ; bbWeight=0.08, gcrefRegs=180000 {x19 x20}, byrefRegs=000
blr x3
; gcrRegs -[x0 x2 x19 x21]
; gcr arg pop 0
- b G_M35244_IG20
+ b G_M35244_IG19
;; size=124 bbWeight=0.08 PerfScore 2.42
-G_M35244_IG27: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] +[x19]
- b G_M35244_IG04
+ b G_M35244_IG03
;; size=4 bbWeight=0.17 PerfScore 0.17
-G_M35244_IG28: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG27: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this
@@ -289,58 +281,58 @@ G_M35244_IG28: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
;; size=20 bbWeight=0.17 PerfScore 0.83
-G_M35244_IG29: ; bbWeight=0.17, epilog, nogc, extend
+G_M35244_IG28: ; bbWeight=0.17, 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=0.17 PerfScore 0.67
-G_M35244_IG30: ; bbWeight=0.17, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
...
+0 (0.00%) : 578351.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 262200
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 262200
; 8 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -91,19 +91,9 @@ G_M30761_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=44 bbWeight=1 PerfScore 9.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.37, 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.37 PerfScore 2.76
-G_M30761_IG04: ; bbWeight=0.63, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M30761_IG03: ; bbWeight=0.63, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w1, #0
bls G_M30761_IG19
ldrh w20, [x19]
@@ -112,7 +102,7 @@ G_M30761_IG04: ; bbWeight=0.63, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
cmp w0, #25
bhi G_M30761_IG11
;; size=28 bbWeight=0.63 PerfScore 4.43
-G_M30761_IG05: ; bbWeight=0.63, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M30761_IG04: ; bbWeight=0.63, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w1, #1
bls G_M30761_IG19
ldrh w2, [x19, #0x02]
@@ -120,7 +110,7 @@ G_M30761_IG05: ; bbWeight=0.63, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
cmp w21, w2
bne G_M30761_IG11
;; size=24 bbWeight=0.63 PerfScore 4.09
-G_M30761_IG06: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M30761_IG05: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x19]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -139,7 +129,7 @@ G_M30761_IG06: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcrRegs +[x0]
cbz x0, G_M30761_IG17
;; size=44 bbWeight=0.62 PerfScore 7.50
-G_M30761_IG07: ; bbWeight=0.62, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M30761_IG06: ; bbWeight=0.62, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[x1 x22]
ldr x23, [sp, #0x68]
ldp x21, x22, [sp, #0x58]
@@ -147,9 +137,19 @@ G_M30761_IG07: ; bbWeight=0.62, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldp fp, lr, [sp], #0x70
ret lr
;; size=20 bbWeight=0.62 PerfScore 3.75
-G_M30761_IG08: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
+G_M30761_IG07: ; bbWeight=0.37, 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.37 PerfScore 2.76
+G_M30761_IG08: ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w1, #0
bls G_M30761_IG19
ldrh w20, [x19]
@@ -239,7 +239,7 @@ G_M30761_IG15: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=000
ldr w0, [fp, #0x20] // [V07 loc6+0x10]
ldr w1, [fp, #0x30] // [V07 loc6+0x20]
cmp w0, w1
- bhi G_M30761_IG25
+ bhi G_M30761_IG22
ldr x2, [fp, #0x28] // [V07 loc6+0x18]
; byrRegs +[x2]
ubfiz x3, x0, #1, #32
@@ -255,7 +255,7 @@ G_M30761_IG15: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=000
blr x1
; byrRegs -[x2]
cmp w23, #3
- blo G_M30761_IG24
+ blo G_M30761_IG25
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -316,7 +316,7 @@ G_M30761_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=400000 {x22}
ldr w0, [fp, #0x20] // [V07 loc6+0x10]
ldr w1, [fp, #0x30] // [V07 loc6+0x20]
cmp w0, w1
- bhi G_M30761_IG25
+ bhi G_M30761_IG22
ldr x2, [fp, #0x28] // [V07 loc6+0x18]
; byrRegs +[x2]
ubfiz x3, x0, #1, #32
@@ -391,7 +391,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.00
G_M30761_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
@@ -439,18 +439,26 @@ G_M30761_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=100 bbWeight=0 PerfScore 0.00
G_M30761_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2 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_windows #0
+ ;; size=24 bbWeight=0 PerfScore 0.00
+G_M30761_IG23: ; 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_IG24: ; bbWeight=0, epilog, nogc, extend
ldr x23, [sp, #0x68]
ldp x21, x22, [sp, #0x58]
ldp x19, x20, [sp, #0x48]
ldp fp, lr, [sp], #0x70
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-G_M30761_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=480000 {x19 x22}, gcvars, byref
+G_M30761_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=480000 {x19 x22}, gcvars, byref
; byrRegs +[x19 x22]
add x0, fp, #16 // [V07 loc6]
movz x1, #0xD1FFAB1E
@@ -463,17 +471,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_windows #0
- ;; size=24 bbWeight=0 PerfScore 0.00
G_M30761_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref
- ; byrRegs +[x22]
+ ; byrRegs -[x19]
add x0, fp, #16 // [V07 loc6]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -485,9 +484,9 @@ 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
+RWD00 dd G_M30761_IG23 - 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 1196, prolog size 40, PerfScore 42.86, instruction count 299, allocated bytes for code 1196 (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.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
benchmarks.run_pgo.windows.arm64.checked.mch |
6 |
1 |
2 |
3 |
-4 |
+8 |
benchmarks.run_tiered.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
coreclr_tests.run.windows.arm64.checked.mch |
2 |
0 |
0 |
2 |
-0 |
+0 |
libraries.crossgen2.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
libraries.pmi.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
libraries_tests.run.windows.arm64.Release.mch |
7 |
4 |
0 |
3 |
-36 |
+0 |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
realworld.run.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
smoke_tests.nativeaot.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
15 |
5 |
2 |
8 |
-40 |
+8 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
benchmarks.run.windows.arm64.checked.mch |
24,621 |
4 |
24,617 |
31 (0.13%) |
31 (0.13%) |
benchmarks.run_pgo.windows.arm64.checked.mch |
96,277 |
48,766 |
47,511 |
3 (0.00%) |
3 (0.00%) |
benchmarks.run_tiered.windows.arm64.checked.mch |
48,749 |
37,119 |
11,630 |
7 (0.01%) |
7 (0.01%) |
coreclr_tests.run.windows.arm64.checked.mch |
615,369 |
377,106 |
238,263 |
71 (0.01%) |
71 (0.01%) |
libraries.crossgen2.windows.arm64.checked.mch |
276,148 |
15 |
276,133 |
8 (0.00%) |
8 (0.00%) |
libraries.pmi.windows.arm64.checked.mch |
310,521 |
6 |
310,515 |
335 (0.11%) |
335 (0.11%) |
libraries_tests.run.windows.arm64.Release.mch |
641,071 |
465,402 |
175,669 |
143 (0.02%) |
143 (0.02%) |
librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
316,905 |
21,618 |
295,287 |
470 (0.15%) |
470 (0.15%) |
realworld.run.windows.arm64.checked.mch |
33,214 |
3 |
33,211 |
96 (0.29%) |
96 (0.29%) |
smoke_tests.nativeaot.windows.arm64.checked.mch |
24,190 |
8 |
24,182 |
5 (0.02%) |
5 (0.02%) |
|
2,387,065 |
950,047 |
1,437,018 |
1,169 (0.05%) |
1,169 (0.05%) |
jit-analyze output
benchmarks.run_pgo.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 46736428 (overridden on cmd)
Total bytes of diff: 46736432 (overridden on cmd)
Total bytes of delta: 4 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
4 : 87354.dasm (0.53 % of base)
4 : 83995.dasm (0.53 % of base)
Top file improvements (bytes):
-4 : 85516.dasm (-0.53 % of base)
3 total files with Code Size differences (1 improved, 2 regressed), 3 unchanged.
Top method regressions (bytes):
4 (0.53 % of base) : 87354.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
4 (0.53 % of base) : 83995.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (bytes):
-4 (-0.53 % of base) : 85516.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method regressions (percentages):
4 (0.53 % of base) : 83995.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
4 (0.53 % of base) : 87354.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (percentages):
-4 (-0.53 % of base) : 85516.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
3 total methods with Code Size differences (1 improved, 2 regressed).
coreclr_tests.run.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 511499484 (overridden on cmd)
Total bytes of diff: 511499484 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 2 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
libraries_tests.run.windows.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 320238700 (overridden on cmd)
Total bytes of diff: 320238664 (overridden on cmd)
Total bytes of delta: -36 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-16 : 471767.dasm (-1.53 % of base)
-12 : 394067.dasm (-0.46 % of base)
-4 : 588835.dasm (-0.45 % of base)
-4 : 565260.dasm (-0.74 % of base)
4 total files with Code Size differences (4 improved, 0 regressed), 3 unchanged.
Top method improvements (bytes):
-16 (-1.53 % of base) : 471767.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-12 (-0.46 % of base) : 394067.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-4 (-0.45 % of base) : 588835.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
-4 (-0.74 % of base) : 565260.dasm - System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte (Tier1)
Top method improvements (percentages):
-16 (-1.53 % of base) : 471767.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-4 (-0.74 % of base) : 565260.dasm - System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte (Tier1)
-12 (-0.46 % of base) : 394067.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-4 (-0.45 % of base) : 588835.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
4 total methods with Code Size differences (4 improved, 0 regressed).
windows x64
Diffs are based on 2,558,349 contexts (1,011,639 MinOpts, 1,546,710 FullOpts).
MISSED contexts: 3,924 (0.15%)
Overall (+80 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
aspnet.run.windows.x64.checked.mch |
38,879,813 |
+2 |
benchmarks.run_pgo.windows.x64.checked.mch |
36,663,291 |
+40 |
coreclr_tests.run.windows.x64.checked.mch |
407,274,585 |
+69 |
libraries_tests.run.windows.x64.Release.mch |
284,562,984 |
-31 |
FullOpts (+80 bytes)
Collection |
Base size (bytes) |
Diff size (bytes) |
aspnet.run.windows.x64.checked.mch |
18,449,122 |
+2 |
benchmarks.run_pgo.windows.x64.checked.mch |
22,106,522 |
+40 |
coreclr_tests.run.windows.x64.checked.mch |
126,759,692 |
+69 |
libraries_tests.run.windows.x64.Release.mch |
108,640,954 |
-31 |
Example diffs
aspnet.run.windows.x64.checked.mch
-1 (-0.13%) : 88044.dasm - System.Text.Json.JsonDocument:WriteElementTo(int,System.Text.Json.Utf8JsonWriter):this (Tier1)
@@ -152,20 +152,20 @@ G_M42373_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=42 bbWeight=1 PerfScore 11.58
G_M42373_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
cmp dword ptr [rdi+0x2C], 0
- je G_M42373_IG29
+ je G_M42373_IG16
mov rcx, gword ptr [rdi+0x30]
; gcrRegs +[rcx]
test rcx, rcx
- je G_M42373_IG30
+ je G_M42373_IG17
mov eax, dword ptr [rcx+0x08]
cmp eax, esi
- jb G_M42373_IG22
+ jb G_M42373_IG28
mov edx, esi
lea r8, bword ptr [rcx+rdx+0x10]
; byrRegs +[r8]
sub eax, esi
cmp eax, 12
- jl G_M42373_IG31
+ jl G_M42373_IG18
;; size=52 bbWeight=1 PerfScore 13.25
G_M42373_IG03: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0100 {r8}, byref
; gcrRegs -[rcx]
@@ -177,18 +177,18 @@ G_M42373_IG03: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0100 {r8
shr ecx, 28
movzx r10, cl
dec r10d
- jne G_M42373_IG32
+ jne G_M42373_IG19
;; size=36 bbWeight=1 PerfScore 9.00
G_M42373_IG04: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
; byrRegs -[r8]
mov ecx, dword ptr [rbx+0x28]
and ecx, 0xD1FFAB1E
cmp ecx, dword ptr [rbx+0x68]
- jge G_M42373_IG33
+ jge G_M42373_IG20
mov ecx, dword ptr [rbx+0x6C]
and ecx, 3
cmp ecx, 2
- jne G_M42373_IG15
+ jne G_M42373_IG13
;; size=33 bbWeight=1 PerfScore 9.75
G_M42373_IG05: ; bbWeight=0.99, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov ecx, dword ptr [rbx+0x44]
@@ -217,7 +217,7 @@ G_M42373_IG07: ; bbWeight=0.98, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0
; byrRegs -[r14]
mov rdx, qword ptr [rcx]
test dword ptr [rdx], 0xD1FFAB1E
- je G_M42373_IG34
+ je G_M42373_IG21
lea r14, bword ptr [rcx+0x10]
; byrRegs +[r14]
mov r15d, dword ptr [rcx+0x08]
@@ -231,7 +231,7 @@ G_M42373_IG08: ; bbWeight=0.98, gcrefRegs=0088 {rbx rdi}, byrefRegs=4020
add r8, rcx
mov eax, r15d
cmp r8, rax
- ja G_M42373_IG22
+ ja G_M42373_IG28
add r14, rcx
mov r15d, edx
;; size=36 bbWeight=0.98 PerfScore 6.62
@@ -243,17 +243,17 @@ G_M42373_IG09: ; bbWeight=0.99, gcrefRegs=0088 {rbx rdi}, byrefRegs=4000
lea edx, [rcx+0x01]
mov dword ptr [rbx+0x30], edx
cmp ecx, r15d
- jae G_M42373_IG28
+ jae SHORT G_M42373_IG15
mov byte ptr [r14+rcx], 44
- ;; size=29 bbWeight=0.99 PerfScore 9.70
-G_M42373_IG10: ; bbWeight=0.99, gcrefRegs=0088 {rbx rdi}, byrefRegs=4000 {r14}, byref
+ ;; size=25 bbWeight=0.99 PerfScore 9.70
+G_M42373_IG10: ; bbWeight=0.99, gcrefRegs=0088 {rbx rdi}, byrefRegs=4000 {r14}, byref, isz
mov ecx, dword ptr [rbx+0x30]
lea edx, [rcx+0x01]
mov dword ptr [rbx+0x30], edx
cmp ecx, r15d
- jae G_M42373_IG28
+ jae SHORT G_M42373_IG15
mov byte ptr [r14+rcx], 123
- ;; size=23 bbWeight=0.99 PerfScore 5.72
+ ;; size=19 bbWeight=0.99 PerfScore 5.72
G_M42373_IG11: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
; byrRegs -[r14]
mov ecx, dword ptr [rbx+0x28]
@@ -263,7 +263,7 @@ G_M42373_IG11: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
mov dword ptr [rbx+0x28], ecx
mov byte ptr [rbx+0x36], 1
;; size=21 bbWeight=1 PerfScore 5.50
-G_M42373_IG12: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M42373_IG12: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, rdi
; gcrRegs +[rcx]
mov edx, esi
@@ -272,21 +272,9 @@ G_M42373_IG12: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
call [<unknown method>]
; gcrRegs -[rcx rbx rdi r8]
; gcr arg pop 0
- ;; size=14 bbWeight=1 PerfScore 3.75
-G_M42373_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- nop
- ;; size=1 bbWeight=1 PerfScore 0.25
-G_M42373_IG14: ; bbWeight=1, epilog, nogc, extend
- add rsp, 104
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- pop r14
- pop r15
- ret
- ;; size=13 bbWeight=1 PerfScore 4.25
-G_M42373_IG15: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M42373_IG14
+ ;; size=16 bbWeight=1 PerfScore 5.75
+G_M42373_IG13: ; bbWeight=0.01, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -296,168 +284,37 @@ G_M42373_IG15: ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=008
; gcr arg pop 0
jmp SHORT G_M42373_IG11
;; size=16 bbWeight=0.01 PerfScore 0.03
-G_M42373_IG16: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
- cmp byte ptr [rbx], bl
- mov rcx, rbx
- ; gcrRegs +[rcx]
- mov edx, 91
- call [System.Text.Json.Utf8JsonWriter:WriteStart(ubyte):this]
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- mov byte ptr [rbx+0x36], 3
- jmp SHORT G_M42373_IG12
- ;; size=22 bbWeight=0 PerfScore 0.00
-G_M42373_IG17: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
- lea rdx, [rsp+0x58]
- mov rcx, rdi
- ; gcrRegs +[rcx]
- mov r8, rbx
- ; gcrRegs +[r8]
- call [<unknown method>]
- ; gcrRegs -[rcx rbx rdi r8]
- ; gcr arg pop 0
- jmp SHORT G_M42373_IG13
- ;; size=19 bbWeight=0 PerfScore 0.00
-G_M42373_IG18: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rbx rdi]
- add rdi, 32
- ; gcrRegs -[rdi]
- ; byrRegs +[rdi]
- mov esi, dword ptr [rsp+0x58]
- mov ebp, dword ptr [rsp+0x5C]
- and ebp, 0xD1FFAB1E
- mov ecx, esi
- mov eax, ebp
- add rcx, rax
- mov eax, dword ptr [rdi+0x0C]
- cmp rcx, rax
- jbe SHORT G_M42373_IG19
- mov ecx, 33
- call [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
- ; gcrRegs -[rbx]
- ; byrRegs -[rdi]
- ; gcr arg pop 0
- int3
- ;; size=45 bbWeight=0 PerfScore 0.00
-G_M42373_IG19: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz
- ; gcrRegs +[rbx]
- ; byrRegs +[rdi]
- mov rcx, gword ptr [rdi]
- ; gcrRegs +[rcx]
- add esi, dword ptr [rdi+0x08]
- xor rdi, rdi
- xor r14d, r14d
- test rcx, rcx
- je SHORT G_M42373_IG24
- mov rdx, qword ptr [rcx]
- test dword ptr [rdx], 0xD1FFAB1E
- je SHORT G_M42373_IG20
- lea rdi, bword ptr [rcx+0x10]
- mov r14d, dword ptr [rcx+0x08]
- jmp SHORT G_M42373_IG21
- ;; size=37 bbWeight=0 PerfScore 0.00
-G_M42373_IG20: ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
- ; byrRegs -[rdi]
- lea rdx, [rsp+0x38]
- mov rax, qword ptr [rcx]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x28]<unknown method>
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- mov rdi, bword ptr [rsp+0x38]
- ; byrRegs +[rdi]
- mov r14d, dword ptr [rsp+0x40]
- ;; size=25 bbWeight=0 PerfScore 0.00
-G_M42373_IG21: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz
- and esi, 0xD1FFAB1E
- mov edx, esi
- mov ecx, ebp
- add rcx, rdx
- mov eax, r14d
- cmp rcx, rax
- jbe SHORT G_M42373_IG23
- ;; size=21 bbWeight=0 PerfScore 0.00
-G_M42373_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
- ; byrRegs -[rdi]
- call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
- ; gcr arg pop 0
- int3
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M42373_IG23: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref
- ; gcrRegs +[rbx]
- ; byrRegs +[rdi]
- add rdi, rdx
- mov r14d, ebp
- ;; size=6 bbWeight=0 PerfScore 0.00
-G_M42373_IG24: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref
- mov rdx, rdi
- ; byrRegs +[rdx]
- mov bword ptr [rsp+0x28], rdx
- mov dword ptr [rsp+0x30], r14d
- lea rdx, [rsp+0x28]
- ; byrRegs -[rdx]
- mov rcx, rbx
- ; gcrRegs +[rcx]
- cmp dword ptr [rcx], ecx
- call [System.Text.Json.Utf8JsonWriter:WriteNumberValue(System.ReadOnlySpan`1[ubyte]):this]
- ; gcrRegs -[rcx rbx]
- ; byrRegs -[rdi]
- ; gcr arg pop 0
- jmp G_M42373_IG13
- ;; size=34 bbWeight=0 PerfScore 0.00
-G_M42373_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx]
- mov rcx, rbx
- ; gcrRegs +[rcx]
- mov edx, 1
- cmp dword ptr [rcx], ecx
- call [System.Text.Json.Utf8JsonWriter:WriteBooleanValue(ubyte):this]
- ; gcrRegs -[rcx rbx]
- ; gcr arg pop 0
- jmp G_M42373_IG13
- ;; size=21 bbWeight=0 PerfScore 0.00
-G_M42373_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx]
- mov rcx, rbx
...
+3 (+0.26%) : 123784.dasm - System.Text.Json.JsonDocument:WriteElementTo(int,System.Text.Json.Utf8JsonWriter):this (Tier1)
@@ -175,20 +175,20 @@ G_M42373_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=46 bbWeight=1 PerfScore 13.58
G_M42373_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
cmp dword ptr [rdi+0x2C], 0
- je G_M42373_IG31
+ je G_M42373_IG18
mov rcx, gword ptr [rdi+0x30]
; gcrRegs +[rcx]
test rcx, rcx
- je G_M42373_IG32
+ je G_M42373_IG19
mov eax, dword ptr [rcx+0x08]
cmp eax, esi
- jb G_M42373_IG24
+ jb G_M42373_IG38
mov edx, esi
lea r8, bword ptr [rcx+rdx+0x10]
; byrRegs +[r8]
sub eax, esi
cmp eax, 12
- jl G_M42373_IG33
+ jl G_M42373_IG20
;; size=52 bbWeight=1 PerfScore 13.25
G_M42373_IG03: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0100 {r8}, byref
; gcrRegs -[rcx]
@@ -200,18 +200,18 @@ G_M42373_IG03: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0100 {r8
shr ecx, 28
movzx r10, cl
dec r10d
- jne G_M42373_IG34
+ jne G_M42373_IG21
;; size=36 bbWeight=1 PerfScore 9.00
G_M42373_IG04: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
; byrRegs -[r8]
mov ecx, dword ptr [rbx+0x28]
and ecx, 0xD1FFAB1E
cmp ecx, dword ptr [rbx+0x68]
- jge G_M42373_IG35
+ jge G_M42373_IG22
mov ecx, dword ptr [rbx+0x6C]
and ecx, 3
cmp ecx, 2
- jne G_M42373_IG17
+ jne G_M42373_IG15
;; size=33 bbWeight=1 PerfScore 9.75
G_M42373_IG05: ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x44]
@@ -221,16 +221,16 @@ G_M42373_IG05: ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
;; size=15 bbWeight=1.00 PerfScore 6.23
G_M42373_IG06: ; bbWeight=0.59, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
cmp dword ptr [rbx+0x44], 0
- jne G_M42373_IG39
+ jne G_M42373_IG26
cmp gword ptr [rbx+0x10], 0
- jne G_M42373_IG36
+ jne G_M42373_IG23
mov rbp, gword ptr [rbx+0x08]
; gcrRegs +[rbp]
lea r14, bword ptr [rbx+0x38]
; byrRegs +[r14]
mov rcx, 0xD1FFAB1E ; System.Text.Json.PooledByteBufferWriter
cmp qword ptr [rbp], rcx
- jne G_M42373_IG38
+ jne G_M42373_IG25
mov rcx, rbp
; gcrRegs +[rcx]
mov edx, 256
@@ -242,10 +242,10 @@ G_M42373_IG06: ; bbWeight=0.59, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov ebp, dword ptr [rbp+0x10]
; gcrRegs -[rbp]
test rdx, rdx
- je G_M42373_IG37
+ je G_M42373_IG24
mov r15d, dword ptr [rdx+0x08]
cmp r15d, ebp
- jb G_M42373_IG24
+ jb G_M42373_IG38
sub r15d, ebp
;; size=95 bbWeight=0.59 PerfScore 16.02
G_M42373_IG07: ; bbWeight=0.59, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=4000 {r14}, byref
@@ -257,7 +257,7 @@ G_M42373_IG07: ; bbWeight=0.59, gcrefRegs=008C {rdx rbx rdi}, byrefRegs=4
mov dword ptr [r14+0x08], ebp
mov dword ptr [r14+0x0C], r15d
cmp dword ptr [rbx+0x44], 256
- jl G_M42373_IG42
+ jl G_M42373_IG29
;; size=29 bbWeight=0.59 PerfScore 4.30
G_M42373_IG08: ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
; byrRegs -[r14]
@@ -275,7 +275,7 @@ G_M42373_IG09: ; bbWeight=0.95, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=2
; byrRegs -[r12]
mov rax, qword ptr [rcx]
test dword ptr [rax], 0xD1FFAB1E
- je G_M42373_IG43
+ je G_M42373_IG30
lea r12, bword ptr [rcx+0x10]
; byrRegs +[r12]
mov eax, dword ptr [rcx+0x08]
@@ -289,24 +289,24 @@ G_M42373_IG10: ; bbWeight=0.95, gcrefRegs=0088 {rbx rdi}, byrefRegs=3000
add r8, rcx
mov eax, eax
cmp r8, rax
- ja G_M42373_IG24
+ ja G_M42373_IG38
add r12, rcx
mov eax, edx
;; size=36 bbWeight=0.95 PerfScore 6.44
G_M42373_IG11: ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=1000 {r12}, byref
; byrRegs -[r13]
cmp dword ptr [rbx+0x28], 0
- jl G_M42373_IG44
+ jl G_M42373_IG31
;; size=10 bbWeight=1.00 PerfScore 3.99
-G_M42373_IG12: ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=1000 {r12}, byref
+G_M42373_IG12: ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=1000 {r12}, byref, isz
mov r10d, dword ptr [rbx+0x30]
lea ecx, [r10+0x01]
mov dword ptr [rbx+0x30], ecx
cmp r10d, eax
- jae G_M42373_IG30
+ jae SHORT G_M42373_IG17
mov ecx, r10d
mov byte ptr [r12+rcx], 123
- ;; size=28 bbWeight=1.00 PerfScore 5.98
+ ;; size=24 bbWeight=1.00 PerfScore 5.98
G_M42373_IG13: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
; byrRegs -[r12]
mov ecx, dword ptr [rbx+0x28]
@@ -316,7 +316,7 @@ G_M42373_IG13: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
mov dword ptr [rbx+0x28], ecx
mov byte ptr [rbx+0x36], 1
;; size=21 bbWeight=1 PerfScore 5.50
-G_M42373_IG14: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M42373_IG14: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, rdi
; gcrRegs +[rcx]
mov edx, esi
@@ -325,11 +325,20 @@ G_M42373_IG14: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
call [System.Text.Json.JsonDocument:WriteComplexElement(int,System.Text.Json.Utf8JsonWriter):this]
; gcrRegs -[rcx rbx rdi r8]
; gcr arg pop 0
- ;; size=14 bbWeight=1 PerfScore 3.75
-G_M42373_IG15: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- nop
- ;; size=1 bbWeight=1 PerfScore 0.25
-G_M42373_IG16: ; bbWeight=1, epilog, nogc, extend
+ jmp SHORT G_M42373_IG16
+ ;; size=16 bbWeight=1 PerfScore 5.75
+G_M42373_IG15: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rbx rdi]
+ mov rcx, rbx
+ ; gcrRegs +[rcx]
+ mov edx, 123
+ call [System.Text.Json.Utf8JsonWriter:WriteStartSlow(ubyte):this]
+ ; gcrRegs -[rcx]
+ ; gcr arg pop 0
+ jmp SHORT G_M42373_IG13
+ ;; size=16 bbWeight=0.00 PerfScore 0.02
+G_M42373_IG16: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; gcrRegs -[rbx rdi]
add rsp, 104
pop rbx
pop rbp
@@ -341,178 +350,26 @@ G_M42373_IG16: ; bbWeight=1, epilog, nogc, extend
pop r15
ret
;; size=17 bbWeight=1 PerfScore 5.25
-G_M42373_IG17: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx rdi]
- mov rcx, rbx
- ; gcrRegs +[rcx]
- mov edx, 123
- call [System.Text.Json.Utf8JsonWriter:WriteStartSlow(ubyte):this]
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- jmp SHORT G_M42373_IG13
- ;; size=16 bbWeight=0.00 PerfScore 0.02
-G_M42373_IG18: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
- cmp byte ptr [rbx], bl
- mov rcx, rbx
- ; gcrRegs +[rcx]
- mov edx, 91
- call [System.Text.Json.Utf8JsonWriter:WriteStart(ubyte):this]
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- mov byte ptr [rbx+0x36], 3
- jmp SHORT G_M42373_IG14
- ;; size=22 bbWeight=0 PerfScore 0.00
-G_M42373_IG19: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
- lea rdx, [rsp+0x58]
- mov rcx, rdi
- ; gcrRegs +[rcx]
- mov r8, rbx
- ; gcrRegs +[r8]
- call [<unknown method>]
- ; gcrRegs -[rcx rbx rdi r8]
- ; gcr arg pop 0
- jmp SHORT G_M42373_IG15
- ;; size=19 bbWeight=0 PerfScore 0.00
-G_M42373_IG20: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rbx rdi]
- add rdi, 32
- ; gcrRegs -[rdi]
- ; byrRegs +[rdi]
- mov esi, dword ptr [rsp+0x58]
- mov ebp, dword ptr [rsp+0x5C]
- and ebp, 0xD1FFAB1E
- mov ecx, esi
- mov eax, ebp
- add rcx, rax
- mov eax, dword ptr [rdi+0x0C]
- cmp rcx, rax
- jbe SHORT G_M42373_IG21
- mov ecx, 33
- call [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
- ; gcrRegs -[rbx]
- ; byrRegs -[rdi]
- ; gcr arg pop 0
- int3
- ;; size=45 bbWeight=0 PerfScore 0.00
-G_M42373_IG21: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz
- ; gcrRegs +[rbx]
- ; byrRegs +[rdi]
- mov rcx, gword ptr [rdi]
- ; gcrRegs +[rcx]
- add esi, dword ptr [rdi+0x08]
- xor rdi, rdi
- xor r14d, r14d
- test rcx, rcx
- je SHORT G_M42373_IG26
- mov rdx, qword ptr [rcx]
- test dword ptr [rdx], 0xD1FFAB1E
- je SHORT G_M42373_IG22
- lea rdi, bword ptr [rcx+0x10]
- mov r14d, dword ptr [rcx+0x08]
- jmp SHORT G_M42373_IG23
- ;; size=37 bbWeight=0 PerfScore 0.00
-G_M42373_IG22: ; bbWeight=0, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
- ; byrRegs -[rdi]
- lea rdx, [rsp+0x38]
- mov rax, qword ptr [rcx]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x28]<unknown method>
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- mov rdi, bword ptr [rsp+0x38]
- ; byrRegs +[rdi]
- mov r14d, dword ptr [rsp+0x40]
- ;; size=25 bbWeight=0 PerfScore 0.00
-G_M42373_IG23: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz
...
benchmarks.run_pgo.windows.x64.checked.mch
-18 (-3.49%) : 27503.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -48,31 +48,31 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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_IG20
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG08
- ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG20
+ ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
- jbe G_M35244_IG20
+ jbe G_M35244_IG17
;; size=16 bbWeight=3.00 PerfScore 11.26
-G_M35244_IG04: ; bbWeight=2.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG08
+ ja G_M35244_IG20
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=2.00 PerfScore 15.01
+ ;; size=36 bbWeight=2.00 PerfScore 15.01
G_M35244_IG05: ; bbWeight=1.71, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi]
mov edi, 1
@@ -82,56 +82,18 @@ G_M35244_IG06: ; bbWeight=2.00, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG09
+ je SHORT G_M35244_IG13
;; size=10 bbWeight=2.00 PerfScore 3.50
G_M35244_IG07: ; bbWeight=1.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M35244_IG18
- ;; size=2 bbWeight=1.00 PerfScore 2.00
-G_M35244_IG08: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rbp rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.00 PerfScore 0.00
-G_M35244_IG09: ; bbWeight=2.00, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rbp rsi]
- test rbp, rbp
- je G_M35244_IG24
- ;; size=9 bbWeight=2.00 PerfScore 2.50
-G_M35244_IG10: ; bbWeight=2.00, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rsi]
- movzx rcx, byte ptr [rbp+0x2E]
- cmp ecx, 24
- je G_M35244_IG25
- ;; size=13 bbWeight=2.00 PerfScore 6.51
-G_M35244_IG11: ; bbWeight=1.98, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
- lea edx, [rcx-0x1A]
- cmp edx, 1
- jbe G_M35244_IG25
- add ecx, -33
- cmp ecx, 1
- jbe G_M35244_IG25
- ;; size=24 bbWeight=1.98 PerfScore 6.44
-G_M35244_IG12: ; bbWeight=2.00, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rbx]
- mov rbx, rbp
- ; gcrRegs +[rbx]
- jmp SHORT G_M35244_IG03
- ;; size=5 bbWeight=2.00 PerfScore 4.50
-G_M35244_IG13: ; bbWeight=2.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
+ cmp qword ptr [rbp], rcx
+ je SHORT G_M35244_IG13
+ ;; size=16 bbWeight=1.00 PerfScore 4.25
+G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
- mov rsi, gword ptr [rbx+0x08]
- ; gcrRegs +[rsi]
- test rsi, rsi
- jne SHORT G_M35244_IG17
- ;; size=9 bbWeight=2.00 PerfScore 6.51
-G_M35244_IG14: ; bbWeight=0.29, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M35244_IG16
- ;; size=2 bbWeight=0.29 PerfScore 0.58
-G_M35244_IG15: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ jmp G_M35244_IG23
+ ;; size=5 bbWeight=0.50 PerfScore 1.00
+G_M35244_IG09: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -141,14 +103,16 @@ G_M35244_IG15: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov rbx, rax
; gcrRegs +[rbx]
- jmp G_M35244_IG03
- ;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG16: ; bbWeight=0.29, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax] +[rsi]
- xor edi, edi
- jmp SHORT G_M35244_IG06
- ;; size=4 bbWeight=0.29 PerfScore 0.65
-G_M35244_IG17: ; bbWeight=1.71, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M35244_IG03
+ ;; size=16 bbWeight=0 PerfScore 0.00
+G_M35244_IG10: ; bbWeight=2.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rax]
+ mov rsi, gword ptr [rbx+0x08]
+ ; gcrRegs +[rsi]
+ test rsi, rsi
+ je SHORT G_M35244_IG12
+ ;; size=9 bbWeight=2.00 PerfScore 6.51
+G_M35244_IG11: ; bbWeight=1.71, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -156,25 +120,45 @@ G_M35244_IG17: ; bbWeight=1.71, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- jne SHORT G_M35244_IG23
- jmp G_M35244_IG05
- ;; size=28 bbWeight=1.71 PerfScore 8.14
-G_M35244_IG18: ; bbWeight=1.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax] +[rbp]
- mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
- cmp qword ptr [rbp], rcx
- je G_M35244_IG09
- ;; size=20 bbWeight=1.00 PerfScore 4.25
-G_M35244_IG19: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rbp]
- jmp SHORT G_M35244_IG24
- ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG20: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ jne SHORT G_M35244_IG22
+ jmp SHORT G_M35244_IG05
+ ;; size=25 bbWeight=1.71 PerfScore 8.14
+G_M35244_IG12: ; bbWeight=0.29, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rax]
+ xor edi, edi
+ jmp SHORT G_M35244_IG06
+ ;; size=4 bbWeight=0.29 PerfScore 0.65
+G_M35244_IG13: ; bbWeight=2.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rbp]
+ test rbp, rbp
+ je SHORT G_M35244_IG23
+ ;; size=5 bbWeight=2.00 PerfScore 2.50
+G_M35244_IG14: ; bbWeight=2.00, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
+ movzx rcx, byte ptr [rbp+0x2E]
+ cmp ecx, 24
+ je SHORT G_M35244_IG24
+ ;; size=9 bbWeight=2.00 PerfScore 6.51
+G_M35244_IG15: ; bbWeight=1.98, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+ lea edx, [rcx-0x1A]
+ cmp edx, 1
+ jbe SHORT G_M35244_IG24
+ add ecx, -33
+ cmp ecx, 1
+ jbe SHORT G_M35244_IG24
+ ;; size=16 bbWeight=1.98 PerfScore 6.44
+G_M35244_IG16: ; bbWeight=2.00, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbx]
+ mov rbx, rbp
+ ; gcrRegs +[rbx]
+ jmp G_M35244_IG03
+ ;; size=8 bbWeight=2.00 PerfScore 4.50
+G_M35244_IG17: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbp]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG21: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG18: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -183,17 +167,28 @@ G_M35244_IG21: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
;; size=14 bbWeight=1 PerfScore 4.25
-G_M35244_IG22: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG19: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rbx]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG23: ; bbWeight=0, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG21: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG22: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rax rbx rsi]
mov edi, dword ptr [rax+0x10]
jmp G_M35244_IG06
;; size=8 bbWeight=0 PerfScore 0.00
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -202,27 +197,27 @@ G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rdx rsi] +[rax]
; gcr arg pop 0
cmp edi, dword ptr [rax+0x10]
- jae G_M35244_IG32
+ jae G_M35244_IG31
mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae SHORT G_M35244_IG22
+ jae SHORT G_M35244_IG19
mov eax, edi
; gcrRegs -[rax]
mov rbp, gword ptr [rcx+8*rax+0x10]
; gcrRegs +[rbp]
- jmp G_M35244_IG10
- ;; size=48 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M35244_IG14
+ ;; size=45 bbWeight=0 PerfScore 0.00
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG26
+ je SHORT G_M35244_IG25
mov rcx, gword ptr [rbx+0x18]
...
-8 (-1.52%) : 103836.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -20,10 +20,10 @@
; V08 loc7 [V08,T18] ( 5, 0 ) int -> rdi
; V09 loc8 [V09,T19] ( 3, 0 ) ref -> rbx class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V10 OutArgs [V10 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T17] ( 5, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T17] ( 5, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T13] ( 4, 5.98) int -> rdi "Inline return value spill temp"
; V13 tmp3 [V13,T14] ( 3, 5.82) ref -> rax class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T07] ( 6, 8.98) ref -> rbp class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T07] ( 6, 8.98) ref -> rsi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T00] ( 4, 20.94) ref -> rbp "CASTCLASS eval op1"
;* V16 tmp6 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V17 tmp7 [V17,T08] ( 3, 7.89) ref -> rbp class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
@@ -50,31 +50,31 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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_IG28
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG08
- ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG28
+ ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
- jbe G_M35244_IG25
+ jbe G_M35244_IG24
;; size=16 bbWeight=3.99 PerfScore 14.97
-G_M35244_IG04: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG08
+ ja G_M35244_IG28
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=2.99 PerfScore 22.44
+ ;; size=36 bbWeight=2.99 PerfScore 22.44
G_M35244_IG05: ; bbWeight=1.57, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi]
mov edi, 1
@@ -84,38 +84,74 @@ G_M35244_IG06: ; bbWeight=2.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG09
+ je SHORT G_M35244_IG12
;; size=10 bbWeight=2.99 PerfScore 5.24
-G_M35244_IG07: ; bbWeight=1.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
- jmp G_M35244_IG23
- ;; size=5 bbWeight=1.50 PerfScore 2.99
-G_M35244_IG08: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rbp rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.00 PerfScore 0.01
-G_M35244_IG09: ; bbWeight=2.99, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx rbp rsi]
- test rbp, rbp
- jne SHORT G_M35244_IG17
- ;; size=5 bbWeight=2.99 PerfScore 3.74
-G_M35244_IG10: ; bbWeight=1.08, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG07: ; bbWeight=1.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+ mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
+ cmp qword ptr [rbp], rdx
+ je SHORT G_M35244_IG12
+ ;; size=16 bbWeight=1.50 PerfScore 6.36
+G_M35244_IG08: ; bbWeight=0.75, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
+ jmp SHORT G_M35244_IG17
+ ;; size=2 bbWeight=0.75 PerfScore 1.50
+G_M35244_IG09: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rsi]
+ mov rsi, gword ptr [rbx+0x08]
+ ; gcrRegs +[rsi]
+ test rsi, rsi
+ je SHORT G_M35244_IG14
+ ;; size=9 bbWeight=2.99 PerfScore 9.72
+G_M35244_IG10: ; bbWeight=2.46, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ mov rdx, rsi
+ ; gcrRegs +[rdx]
+ mov rcx, 0xD1FFAB1E ; <unknown class>
+ call CORINFO_HELP_ISINSTANCEOFCLASS
+ ; gcrRegs -[rdx] +[rax]
+ ; gcr arg pop 0
+ test rax, rax
+ je SHORT G_M35244_IG05
+ ;; size=23 bbWeight=2.46 PerfScore 6.77
+G_M35244_IG11: ; bbWeight=0.90, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
+ mov edi, dword ptr [rax+0x10]
+ jmp SHORT G_M35244_IG06
+ ;; size=5 bbWeight=0.90 PerfScore 3.58
+G_M35244_IG12: ; bbWeight=2.99, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rax] +[rbp]
+ test rbp, rbp
+ je SHORT G_M35244_IG17
+ ;; size=5 bbWeight=2.99 PerfScore 3.74
+G_M35244_IG13: ; bbWeight=1.91, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rsi]
+ mov rsi, rbp
+ ; gcrRegs +[rsi]
+ jmp SHORT G_M35244_IG15
+ ;; size=5 bbWeight=1.91 PerfScore 4.29
+G_M35244_IG14: ; bbWeight=0.53, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rbp]
+ xor edi, edi
+ jmp SHORT G_M35244_IG06
+ ;; size=4 bbWeight=0.53 PerfScore 1.19
+G_M35244_IG15: ; bbWeight=2.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ movzx rcx, byte ptr [rsi+0x2E]
+ cmp ecx, 24
+ je G_M35244_IG31
+ ;; size=13 bbWeight=2.99 PerfScore 9.72
+G_M35244_IG16: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M35244_IG22
+ ;; size=2 bbWeight=2.97 PerfScore 5.94
+G_M35244_IG17: ; bbWeight=1.08, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG20
;; size=8 bbWeight=1.08 PerfScore 1.63
-G_M35244_IG11: ; bbWeight=0.54, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.54, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG20
;; size=16 bbWeight=0.54 PerfScore 2.30
-G_M35244_IG12: ; bbWeight=0.27, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.27, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -125,87 +161,42 @@ G_M35244_IG12: ; bbWeight=0.27, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rax
; gcrRegs +[rbp]
;; size=11 bbWeight=0.27 PerfScore 0.41
-G_M35244_IG13: ; bbWeight=1.08, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.08, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG36
+ jae SHORT G_M35244_IG26
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG27
+ jae SHORT G_M35244_IG27
mov edx, edi
- mov rbp, gword ptr [rcx+8*rdx+0x10]
- jmp SHORT G_M35244_IG17
- ;; size=31 bbWeight=1.08 PerfScore 15.45
-G_M35244_IG14: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx rbp]
- mov rsi, gword ptr [rbx+0x08]
+ mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
- test rsi, rsi
- je SHORT G_M35244_IG19
- ;; size=9 bbWeight=2.99 PerfScore 9.72
-G_M35244_IG15: ; bbWeight=2.46, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- mov rdx, rsi
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[rdx] +[rax]
- ; gcr arg pop 0
- test rax, rax
- je G_M35244_IG05
- ;; size=27 bbWeight=2.46 PerfScore 6.77
-G_M35244_IG16: ; bbWeight=0.90, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
- mov edi, dword ptr [rax+0x10]
- jmp G_M35244_IG06
- ;; size=8 bbWeight=0.90 PerfScore 3.58
-G_M35244_IG17: ; bbWeight=2.99, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax rsi] +[rbp]
- movzx rcx, byte ptr [rbp+0x2E]
- cmp ecx, 24
- je SHORT G_M35244_IG29
- ;; size=9 bbWeight=2.99 PerfScore 9.72
-G_M35244_IG18: ; bbWeight=2.97, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M35244_IG21
- ;; size=2 bbWeight=2.97 PerfScore 5.94
-G_M35244_IG19: ; bbWeight=0.53, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbp] +[rsi]
- xor edi, edi
- jmp G_M35244_IG06
- ;; size=7 bbWeight=0.53 PerfScore 1.19
-G_M35244_IG20: ; bbWeight=2.99, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx rsi] +[rbp]
- mov rbx, rbp
+ jmp SHORT G_M35244_IG15
+ ;; size=23 bbWeight=1.08 PerfScore 15.45
+G_M35244_IG21: ; bbWeight=2.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rcx rbx rbp]
+ mov rbx, rsi
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=8 bbWeight=2.99 PerfScore 6.73
-G_M35244_IG21: ; bbWeight=2.97, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG29
+ jbe SHORT G_M35244_IG31
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG29
+ ja SHORT G_M35244_IG21
;; size=16 bbWeight=2.97 PerfScore 9.66
-G_M35244_IG22: ; bbWeight=2.99, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rbx]
- jmp SHORT G_M35244_IG20
- ;; size=2 bbWeight=2.99 PerfScore 5.98
-G_M35244_IG23: ; bbWeight=1.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rsi]
- mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
- cmp qword ptr [rbp], rcx
- je G_M35244_IG09
- ;; size=20 bbWeight=1.50 PerfScore 6.36
-G_M35244_IG24: ; bbWeight=0.75, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbp]
- jmp G_M35244_IG10
- ;; size=5 bbWeight=0.75 PerfScore 1.50
-G_M35244_IG25: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG23: ; bbWeight=0.02, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M35244_IG31
+ ;; size=2 bbWeight=0.02 PerfScore 0.04
+G_M35244_IG24: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
mov rcx, rbx
; gcrRegs +[rcx]
...
-6 (-1.47%) : 100166.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder
1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)
@@ -53,12 +53,12 @@ G_M417_IG02: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M417_IG14
+ je G_M417_IG13
mov ebp, dword ptr [rsi+0x28]
cmp ebp, 1
jne SHORT G_M417_IG09
;; size=21 bbWeight=1 PerfScore 5.50
-G_M417_IG03: ; bbWeight=0.57, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M417_IG03: ; bbWeight=0.57, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
mov rdx, gword ptr [rsi+0x08]
; gcrRegs +[rdx]
@@ -69,26 +69,16 @@ G_M417_IG03: ; bbWeight=0.57, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}
call [<unknown method>]
; gcrRegs -[rcx rdx rbx]
; gcr arg pop 0
- ;; size=20 bbWeight=0.57 PerfScore 4.97
-G_M417_IG04: ; bbWeight=0.69, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- nop
- ;; size=1 bbWeight=0.69 PerfScore 0.17
-G_M417_IG05: ; bbWeight=0.69, epilog, nogc, extend
- add rsp, 72
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.69 PerfScore 2.24
-G_M417_IG06: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M417_IG07
+ ;; size=22 bbWeight=0.57 PerfScore 6.11
+G_M417_IG04: ; bbWeight=0.10, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi]
mov rbp, rsi
; gcrRegs +[rbp]
cmp dword ptr [rsi+0x28], 2
- jne SHORT G_M417_IG08
+ jne SHORT G_M417_IG06
;; size=9 bbWeight=0.10 PerfScore 0.44
-G_M417_IG07: ; bbWeight=0.78, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.78, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov rdx, rdi
@@ -101,9 +91,9 @@ G_M417_IG07: ; bbWeight=0.78, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs
; gcr arg pop 0
mov rbp, gword ptr [rbp+0x18]
cmp dword ptr [rbp+0x28], 2
- je SHORT G_M417_IG07
+ je SHORT G_M417_IG05
;; size=28 bbWeight=0.78 PerfScore 11.25
-G_M417_IG08: ; bbWeight=0.10, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M417_IG06: ; bbWeight=0.10, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
mov rcx, rbp
; gcrRegs +[rcx]
mov rdx, rdi
@@ -113,12 +103,22 @@ G_M417_IG08: ; bbWeight=0.10, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs
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 -[rcx rdx rbx rbp rdi r8]
; gcr arg pop 0
- jmp SHORT G_M417_IG04
- ;; size=17 bbWeight=0.10 PerfScore 0.60
-G_M417_IG09: ; bbWeight=0.43, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+ ;; size=15 bbWeight=0.10 PerfScore 0.39
+G_M417_IG07: ; bbWeight=0.69, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0.69 PerfScore 0.17
+G_M417_IG08: ; bbWeight=0.69, epilog, nogc, extend
+ add rsp, 72
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0.69 PerfScore 2.24
+G_M417_IG09: ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx rdi]
cmp ebp, 17
- ja SHORT G_M417_IG04
+ ja SHORT G_M417_IG07
mov ecx, ebp
lea rdx, [reloc @RWD00]
mov edx, dword ptr [rdx+4*rcx]
@@ -137,9 +137,9 @@ G_M417_IG10: ; bbWeight=0.02, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=000
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 -[rcx rdx rbx rdi r8]
; gcr arg pop 0
- jmp SHORT G_M417_IG04
+ jmp SHORT G_M417_IG07
;; size=20 bbWeight=0.02 PerfScore 0.17
-G_M417_IG11: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M417_IG11: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi]
mov rcx, gword ptr [rsi+0x10]
; gcrRegs +[rcx]
@@ -161,22 +161,9 @@ G_M417_IG11: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {
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 -[rcx rdx rbx rdi r8]
; gcr arg pop 0
- jmp G_M417_IG04
- ;; size=41 bbWeight=0 PerfScore 0.00
-G_M417_IG12: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rdi]
- mov rdx, gword ptr [rdi+0x80]
- ; gcrRegs +[rdx]
- cmp byte ptr [rbx], bl
- lea r8, [rsp+0x28]
- mov rcx, rbx
- ; gcrRegs +[rcx]
- call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rdi]
- ; gcr arg pop 0
- jmp G_M417_IG04
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M417_IG13: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M417_IG07
+ ;; size=38 bbWeight=0 PerfScore 0.00
+G_M417_IG12: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi]
mov rdx, gword ptr [rdi+0x88]
; gcrRegs +[rdx]
@@ -187,25 +174,25 @@ G_M417_IG13: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {
call [<unknown method>]
; gcrRegs -[rcx rdx rbx rdi]
; gcr arg pop 0
- jmp G_M417_IG04
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M417_IG14: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M417_IG07
+ ;; size=25 bbWeight=0 PerfScore 0.00
+G_M417_IG13: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi]
mov rcx, qword ptr [rsi]
mov rdx, qword ptr [rcx+0x38]
mov rdx, qword ptr [rdx]
mov rdx, qword ptr [rdx+0x40]
test rdx, rdx
- 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=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M417_IG14: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
mov rdx, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rdx, rax
;; size=18 bbWeight=0 PerfScore 0.00
-G_M417_IG16: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M417_IG15: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, rdx
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -225,17 +212,17 @@ G_M417_IG16: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {
mov rdx, qword ptr [rdx]
mov rax, qword ptr [rdx+0x48]
test rax, rax
- je SHORT G_M417_IG17
+ je SHORT G_M417_IG16
mov rcx, rax
- jmp SHORT G_M417_IG18
+ jmp SHORT G_M417_IG17
;; size=57 bbWeight=0 PerfScore 0.00
-G_M417_IG17: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M417_IG16: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
mov rdx, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=18 bbWeight=0 PerfScore 0.00
-G_M417_IG18: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M417_IG17: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
mov rdx, rbp
; gcrRegs +[rdx]
mov r8, rdi
@@ -245,29 +232,42 @@ G_M417_IG18: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=00
call [System.Threading.StackHelper:CallOnEmptyStack[System.__Canon,System.__Canon](System.Action`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon)]
; gcrRegs -[rdx rbx rbp rdi r8-r9]
; gcr arg pop 0
- 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=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[rbx rdi]
+ mov rdx, gword ptr [rdi+0x80]
+ ; gcrRegs +[rdx]
+ cmp byte ptr [rbx], bl
+ lea r8, [rsp+0x28]
+ mov rcx, rbx
+ ; gcrRegs +[rcx]
+ call [<unknown method>]
+ ; gcrRegs -[rcx rdx rbx rdi]
+ ; gcr arg pop 0
+ jmp G_M417_IG07
+ ;; size=28 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 407, prolog size 13, PerfScore 34.47, instruction count 113, allocated bytes for code 407 (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 401, prolog size 13, PerfScore 35.40, instruction count 113, allocated bytes for code 401 (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:
+15 (+3.01%) : 89243.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -50,36 +50,36 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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=3.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
jbe G_M35244_IG22
;; size=16 bbWeight=3.99 PerfScore 14.97
-G_M35244_IG04: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG25
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=2.99 PerfScore 22.44
+ ;; size=36 bbWeight=2.99 PerfScore 22.44
G_M35244_IG05: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG08
+ je SHORT G_M35244_IG12
;; size=9 bbWeight=2.99 PerfScore 9.73
G_M35244_IG06: ; bbWeight=2.48, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
@@ -89,43 +89,38 @@ G_M35244_IG06: ; bbWeight=2.48, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG10
+ je SHORT G_M35244_IG08
;; size=23 bbWeight=2.48 PerfScore 6.81
G_M35244_IG07: ; bbWeight=0.89, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG11
+ jmp SHORT G_M35244_IG09
;; size=5 bbWeight=0.89 PerfScore 3.57
-G_M35244_IG08: ; bbWeight=0.52, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=1.58, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- xor edi, edi
- jmp SHORT G_M35244_IG11
- ;; size=4 bbWeight=0.52 PerfScore 1.16
-G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.00 PerfScore 0.01
-G_M35244_IG10: ; bbWeight=1.58, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
mov edi, 1
;; size=5 bbWeight=1.58 PerfScore 0.40
-G_M35244_IG11: ; bbWeight=2.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=2.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
dec edi
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
je SHORT G_M35244_IG13
;; size=10 bbWeight=2.99 PerfScore 5.24
-G_M35244_IG12: ; bbWeight=1.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- jne SHORT G_M35244_IG14
+ je SHORT G_M35244_IG13
;; size=16 bbWeight=1.50 PerfScore 6.36
+G_M35244_IG11: ; bbWeight=0.75, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rbp]
+ jmp SHORT G_M35244_IG14
+ ;; size=2 bbWeight=0.75 PerfScore 1.50
+G_M35244_IG12: ; bbWeight=0.52, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ xor edi, edi
+ jmp SHORT G_M35244_IG09
+ ;; size=4 bbWeight=0.52 PerfScore 1.16
G_M35244_IG13: ; bbWeight=2.99, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rbp]
test rbp, rbp
jne SHORT G_M35244_IG18
;; size=5 bbWeight=2.99 PerfScore 3.74
@@ -154,7 +149,7 @@ G_M35244_IG16: ; bbWeight=0.27, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
G_M35244_IG17: ; bbWeight=1.09, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG33
+ jae G_M35244_IG35
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
@@ -173,15 +168,15 @@ G_M35244_IG19: ; bbWeight=2.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rbp]
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG26
+ je SHORT G_M35244_IG28
;; size=9 bbWeight=2.99 PerfScore 9.73
G_M35244_IG20: ; bbWeight=2.98, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG26
+ jbe SHORT G_M35244_IG28
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG26
+ jbe SHORT G_M35244_IG28
;; size=16 bbWeight=2.98 PerfScore 9.67
G_M35244_IG21: ; bbWeight=2.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
@@ -208,7 +203,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
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ 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 rcx, rbx
; gcrRegs +[rcx]
@@ -220,16 +226,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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rsi]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG27
+ je SHORT G_M35244_IG29
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
je SHORT G_M35244_IG21
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -262,7 +268,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M35244_IG21
;; size=69 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 -[rsi] +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -271,9 +277,9 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov esi, eax
mov edi, 1
- jmp SHORT G_M35244_IG30
+ jmp SHORT G_M35244_IG32
;; size=18 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 rcx, rbx
; gcrRegs +[rcx]
mov edx, edi
@@ -288,20 +294,20 @@ G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc edi
;; size=24 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 edi, esi
- 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=19 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 ecx, dword ptr [rbx+0x20]
mov dword ptr [rbx+0x24], ecx
;; 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 rcx, rbx
; gcrRegs +[rcx]
call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this]
@@ -310,29 +316,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 (+3.01%) : 101887.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -50,36 +50,36 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
jbe G_M35244_IG22
;; size=16 bbWeight=4.05 PerfScore 15.18
-G_M35244_IG04: ; bbWeight=3.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=3.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG25
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=3.05 PerfScore 22.86
+ ;; size=36 bbWeight=3.05 PerfScore 22.86
G_M35244_IG05: ; bbWeight=3.05, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG08
+ je SHORT G_M35244_IG12
;; size=9 bbWeight=3.05 PerfScore 9.90
G_M35244_IG06: ; bbWeight=2.52, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
@@ -89,43 +89,38 @@ G_M35244_IG06: ; bbWeight=2.52, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG10
+ je SHORT G_M35244_IG08
;; size=23 bbWeight=2.52 PerfScore 6.94
G_M35244_IG07: ; bbWeight=0.89, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG11
+ jmp SHORT G_M35244_IG09
;; size=5 bbWeight=0.89 PerfScore 3.57
-G_M35244_IG08: ; bbWeight=0.52, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=1.63, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- xor edi, edi
- jmp SHORT G_M35244_IG11
- ;; size=4 bbWeight=0.52 PerfScore 1.18
-G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.00 PerfScore 0.00
-G_M35244_IG10: ; bbWeight=1.63, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
mov edi, 1
;; size=5 bbWeight=1.63 PerfScore 0.41
-G_M35244_IG11: ; bbWeight=3.05, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=3.05, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
dec edi
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
je SHORT G_M35244_IG13
;; size=10 bbWeight=3.05 PerfScore 5.33
-G_M35244_IG12: ; bbWeight=1.52, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.52, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- jne SHORT G_M35244_IG14
+ je SHORT G_M35244_IG13
;; size=16 bbWeight=1.52 PerfScore 6.48
+G_M35244_IG11: ; bbWeight=0.76, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rbp]
+ jmp SHORT G_M35244_IG14
+ ;; size=2 bbWeight=0.76 PerfScore 1.52
+G_M35244_IG12: ; bbWeight=0.52, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ xor edi, edi
+ jmp SHORT G_M35244_IG09
+ ;; size=4 bbWeight=0.52 PerfScore 1.18
G_M35244_IG13: ; bbWeight=3.05, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rbp]
test rbp, rbp
jne SHORT G_M35244_IG18
;; size=5 bbWeight=3.05 PerfScore 3.81
@@ -154,7 +149,7 @@ G_M35244_IG16: ; bbWeight=0.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
G_M35244_IG17: ; bbWeight=1.11, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG33
+ jae G_M35244_IG35
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
@@ -173,15 +168,15 @@ G_M35244_IG19: ; bbWeight=3.05, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rbp]
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG26
+ je SHORT G_M35244_IG28
;; size=9 bbWeight=3.05 PerfScore 9.90
G_M35244_IG20: ; bbWeight=2.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG26
+ jbe SHORT G_M35244_IG28
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG26
+ jbe SHORT G_M35244_IG28
;; size=16 bbWeight=2.99 PerfScore 9.71
G_M35244_IG21: ; bbWeight=3.05, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
@@ -208,7 +203,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
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ 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 rcx, rbx
; gcrRegs +[rcx]
@@ -220,16 +226,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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rsi]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG27
+ je SHORT G_M35244_IG29
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
je SHORT G_M35244_IG21
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -262,7 +268,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M35244_IG21
;; size=69 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 -[rsi] +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -271,9 +277,9 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov esi, eax
mov edi, 1
- jmp SHORT G_M35244_IG30
+ jmp SHORT G_M35244_IG32
;; size=18 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 rcx, rbx
; gcrRegs +[rcx]
mov edx, edi
@@ -288,20 +294,20 @@ G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc edi
;; size=24 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 edi, esi
- 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=19 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 ecx, dword ptr [rbx+0x20]
mov dword ptr [rbx+0x24], ecx
;; 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 rcx, rbx
; gcrRegs +[rcx]
call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this]
@@ -310,29 +316,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
...
+21 (+4.15%) : 93947.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -50,37 +50,37 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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_IG10
+ je G_M35244_IG25
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG10
- ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG25
+ ;; 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 ecx, [rax-0x03]
cmp ecx, 5
- jbe G_M35244_IG22
+ jbe G_M35244_IG21
;; size=16 bbWeight=2.99 PerfScore 11.20
-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_IG10
+ ja G_M35244_IG25
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=2.95 PerfScore 22.14
-G_M35244_IG05: ; bbWeight=1.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ ;; size=36 bbWeight=2.95 PerfScore 22.14
+G_M35244_IG05: ; bbWeight=1.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- jne G_M35244_IG18
- ;; size=13 bbWeight=1.99 PerfScore 6.46
+ jne SHORT G_M35244_IG10
+ ;; size=9 bbWeight=1.99 PerfScore 6.46
G_M35244_IG06: ; bbWeight=0.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
xor edi, edi
;; size=2 bbWeight=0.97 PerfScore 0.24
@@ -89,44 +89,76 @@ G_M35244_IG07: ; bbWeight=1.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG11
+ je SHORT G_M35244_IG12
;; size=10 bbWeight=1.99 PerfScore 3.48
G_M35244_IG08: ; bbWeight=0.99, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- je SHORT G_M35244_IG11
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=0.99 PerfScore 4.22
G_M35244_IG09: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
- jmp SHORT G_M35244_IG12
+ jmp SHORT G_M35244_IG17
;; size=2 bbWeight=0.50 PerfScore 0.99
-G_M35244_IG10: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.02 PerfScore 0.06
-G_M35244_IG11: ; bbWeight=1.99, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rbx rbp rsi]
+G_M35244_IG10: ; bbWeight=1.02, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ mov rdx, rsi
+ ; gcrRegs +[rdx]
+ mov rcx, 0xD1FFAB1E ; <unknown class>
+ call CORINFO_HELP_ISINSTANCEOFCLASS
+ ; gcrRegs -[rdx] +[rax]
+ ; gcr arg pop 0
+ test rax, rax
+ je SHORT G_M35244_IG14
+ ;; size=23 bbWeight=1.02 PerfScore 2.80
+G_M35244_IG11: ; bbWeight=0.76, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
+ mov edi, dword ptr [rax+0x10]
+ jmp SHORT G_M35244_IG07
+ ;; size=5 bbWeight=0.76 PerfScore 3.05
+G_M35244_IG12: ; bbWeight=1.99, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rax] +[rbp]
test rbp, rbp
- jne SHORT G_M35244_IG20
+ je SHORT G_M35244_IG17
;; size=5 bbWeight=1.99 PerfScore 2.48
-G_M35244_IG12: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rsi]
+ mov rsi, rbp
+ ; gcrRegs +[rsi]
+ jmp SHORT G_M35244_IG15
+ ;; size=5 bbWeight=0.44 PerfScore 0.99
+G_M35244_IG14: ; bbWeight=0.26, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
+ mov edi, 1
+ jmp SHORT G_M35244_IG07
+ ;; size=7 bbWeight=0.26 PerfScore 0.58
+G_M35244_IG15: ; bbWeight=1.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ movzx rcx, byte ptr [rsi+0x2E]
+ cmp ecx, 24
+ je G_M35244_IG28
+ lea edx, [rcx-0x1A]
+ cmp edx, 1
+ jbe G_M35244_IG28
+ add ecx, -33
+ cmp ecx, 1
+ jbe G_M35244_IG28
+ ;; size=37 bbWeight=1.99 PerfScore 12.92
+G_M35244_IG16: ; bbWeight=1.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbx]
+ mov rbx, rsi
+ ; gcrRegs +[rbx]
+ jmp G_M35244_IG03
+ ;; size=8 bbWeight=1.99 PerfScore 4.47
+G_M35244_IG17: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG20
;; size=8 bbWeight=1.55 PerfScore 2.32
-G_M35244_IG13: ; bbWeight=0.77, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.77, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG20
;; size=16 bbWeight=0.77 PerfScore 3.29
-G_M35244_IG14: ; bbWeight=0.39, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.39, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -136,67 +168,25 @@ G_M35244_IG14: ; bbWeight=0.39, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rax
; gcrRegs +[rbp]
;; size=11 bbWeight=0.39 PerfScore 0.58
-G_M35244_IG15: ; bbWeight=1.55, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.55, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae SHORT G_M35244_IG24
+ jae SHORT G_M35244_IG23
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae SHORT G_M35244_IG25
+ jae SHORT G_M35244_IG24
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
- ;; size=21 bbWeight=1.55 PerfScore 18.96
-G_M35244_IG16: ; bbWeight=1.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx rbp]
- movzx rcx, byte ptr [rsi+0x2E]
- cmp ecx, 24
- je SHORT G_M35244_IG27
- lea edx, [rcx-0x1A]
- cmp edx, 1
- jbe SHORT G_M35244_IG27
- add ecx, -33
- cmp ecx, 1
- jbe SHORT G_M35244_IG27
- ;; size=25 bbWeight=1.99 PerfScore 12.92
-G_M35244_IG17: ; bbWeight=1.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
- mov rbx, rsi
- ; gcrRegs +[rbx]
- jmp G_M35244_IG03
- ;; size=8 bbWeight=1.99 PerfScore 4.47
-G_M35244_IG18: ; bbWeight=1.02, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- mov rdx, rsi
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_ISINSTANCEOFCLASS
- ; gcrRegs -[rdx] +[rax]
- ; gcr arg pop 0
- test rax, rax
- je SHORT G_M35244_IG21
- ;; size=23 bbWeight=1.02 PerfScore 2.80
-G_M35244_IG19: ; bbWeight=0.76, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
- mov edi, dword ptr [rax+0x10]
- jmp G_M35244_IG07
- ;; size=8 bbWeight=0.76 PerfScore 3.05
-G_M35244_IG20: ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax rsi] +[rbp]
- mov rsi, rbp
- ; gcrRegs +[rsi]
- jmp SHORT G_M35244_IG16
- ;; size=5 bbWeight=0.44 PerfScore 0.99
-G_M35244_IG21: ; bbWeight=0.26, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbp]
- mov edi, 1
- jmp G_M35244_IG07
- ;; size=10 bbWeight=0.26 PerfScore 0.58
-G_M35244_IG22: ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rsi]
+ jmp SHORT G_M35244_IG15
+ ;; size=23 bbWeight=1.55 PerfScore 22.06
+G_M35244_IG21: ; bbWeight=0.04, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rcx rbp rsi]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=0.04 PerfScore 0.01
-G_M35244_IG23: ; bbWeight=0.04, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=0.04, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -205,17 +195,28 @@ G_M35244_IG23: ; bbWeight=0.04, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
;; size=14 bbWeight=0.04 PerfScore 0.15
-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 -[rcx rbx]
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
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
...
coreclr_tests.run.windows.x64.checked.mch
-4 (-0.51%) : 449054.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
@@ -102,7 +102,7 @@ G_M19663_IG06: ; bbWeight=98.96, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
mov eax, ecx
movzx r12, byte ptr [r15+rax+0x10]
cmp r12d, 3
- ja SHORT G_M19663_IG09
+ ja SHORT G_M19663_IG08
mov edx, r12d
lea r8, [reloc @RWD00]
mov r8d, dword ptr [r8+4*rdx]
@@ -110,7 +110,7 @@ G_M19663_IG06: ; bbWeight=98.96, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
add r8, r9
jmp r8
;; size=71 bbWeight=98.96 PerfScore 1533.89
-G_M19663_IG07: ; bbWeight=30.80, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M19663_IG07: ; bbWeight=30.80, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
mov eax, r14d
shl rax, 4
lea rcx, bword ptr [rbx+rax+0x10]
@@ -122,9 +122,16 @@ G_M19663_IG07: ; bbWeight=30.80, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
call [EMFloat:MultiplyInternalFPF(byref,byref,byref)]
; byrRegs -[rcx rdx r8]
; gcr arg pop 0
- jmp SHORT G_M19663_IG09
- ;; size=30 bbWeight=30.80 PerfScore 269.51
-G_M19663_IG08: ; bbWeight=18.48, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=30.80 PerfScore 207.91
+G_M19663_IG08: ; bbWeight=98.96, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+ inc r14d
+ cmp r14d, ebp
+ jl SHORT G_M19663_IG06
+ ;; size=8 bbWeight=98.96 PerfScore 148.44
+G_M19663_IG09: ; bbWeight=0.04, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
+ jmp G_M19663_IG18
+ ;; size=5 bbWeight=0.04 PerfScore 0.08
+G_M19663_IG10: ; bbWeight=18.48, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
mov eax, r14d
shl rax, 4
lea rcx, bword ptr [rbx+rax+0x10]
@@ -136,15 +143,8 @@ G_M19663_IG08: ; bbWeight=18.48, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
call [EMFloat:DivideInternalFPF(byref,byref,byref)]
; byrRegs -[rcx rdx r8]
; gcr arg pop 0
- ;; size=28 bbWeight=18.48 PerfScore 124.75
-G_M19663_IG09: ; bbWeight=98.96, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
- inc r14d
- cmp r14d, ebp
- jl G_M19663_IG06
- ;; size=12 bbWeight=98.96 PerfScore 148.44
-G_M19663_IG10: ; bbWeight=0.04, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
- jmp G_M19663_IG18
- ;; size=5 bbWeight=0.04 PerfScore 0.08
+ jmp SHORT G_M19663_IG08
+ ;; size=30 bbWeight=18.48 PerfScore 161.71
G_M19663_IG11: ; bbWeight=24.90, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
mov eax, r14d
shl rax, 4
@@ -158,7 +158,7 @@ G_M19663_IG11: ; bbWeight=24.90, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
call [EMFloat:AddSubInternalFPF(ubyte,byref,byref,byref)]
; byrRegs -[rdx r8-r9]
; gcr arg pop 0
- jmp SHORT G_M19663_IG09
+ jmp SHORT G_M19663_IG08
;; size=32 bbWeight=24.90 PerfScore 224.08
G_M19663_IG12: ; bbWeight=24.78, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
mov eax, r14d
@@ -173,7 +173,7 @@ G_M19663_IG12: ; bbWeight=24.78, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
call [EMFloat:AddSubInternalFPF(ubyte,byref,byref,byref)]
; byrRegs -[rdx r8-r9]
; gcr arg pop 0
- jmp SHORT G_M19663_IG09
+ jmp SHORT G_M19663_IG08
;; size=35 bbWeight=24.78 PerfScore 223.02
G_M19663_IG13: ; bbWeight=1.00, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
mov eax, r14d
@@ -320,14 +320,14 @@ G_M19663_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
RWD00 dd G_M19663_IG11 - G_M19663_IG02
dd G_M19663_IG12 - G_M19663_IG02
dd G_M19663_IG07 - G_M19663_IG02
- dd G_M19663_IG08 - G_M19663_IG02
+ dd G_M19663_IG10 - G_M19663_IG02
RWD16 dd G_M19663_IG21 - G_M19663_IG02
dd G_M19663_IG22 - G_M19663_IG02
dd G_M19663_IG15 - G_M19663_IG02
dd G_M19663_IG16 - G_M19663_IG02
-; Total bytes of code 784, prolog size 115, PerfScore 2585.71, instruction count 182, allocated bytes for code 784 (MethodHash=0767b330) for method EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
+; Total bytes of code 780, prolog size 115, PerfScore 2561.06, instruction count 182, allocated bytes for code 780 (MethodHash=0767b330) for method EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
; ============================================================
Unwind Info:
+5 (+1.00%) : 314215.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -50,48 +50,38 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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_IG33
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]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.17
-G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx]
+ jne G_M35244_IG33
+ ;; 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 ecx, [rax-0x03]
cmp ecx, 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_IG33
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; 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 rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG14
;; size=9 bbWeight=2 PerfScore 6.50
-G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -99,97 +89,97 @@ G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[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=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rax+0x10]
;; size=3 bbWeight=1.09 PerfScore 2.18
-G_M35244_IG09: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
dec edi
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=10 bbWeight=2 PerfScore 3.50
-G_M35244_IG10: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1 PerfScore 4.25
-G_M35244_IG11: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, 1
- jmp SHORT G_M35244_IG09
+ jmp SHORT G_M35244_IG08
;; size=7 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG17
;; size=5 bbWeight=2 PerfScore 2.50
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
mov rsi, rbp
; gcrRegs +[rsi]
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
xor edi, edi
- jmp SHORT G_M35244_IG09
+ jmp SHORT G_M35244_IG08
;; size=4 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG24
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG25
+ jbe SHORT G_M35244_IG24
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG25
+ jbe SHORT G_M35244_IG24
;; size=25 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, rsi
; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 4.50
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG20
+ je SHORT G_M35244_IG19
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- jne SHORT G_M35244_IG24
+ jne SHORT G_M35244_IG23
;; size=16 bbWeight=0.64 PerfScore 2.72
-G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG32
+ jae G_M35244_IG31
;; size=9 bbWeight=1.28 PerfScore 5.12
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG33
+ jae G_M35244_IG32
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=22 bbWeight=1.28 PerfScore 13.12
-G_M35244_IG22: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx rbp rsi]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -198,7 +188,7 @@ 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.25
-G_M35244_IG24: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG23: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rcx] +[rsi]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -207,18 +197,18 @@ G_M35244_IG24: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=004
; gcr arg pop 0
mov rbp, rax
; gcrRegs +[rbp]
- jmp SHORT G_M35244_IG20
+ jmp SHORT G_M35244_IG19
;; size=14 bbWeight=0.32 PerfScore 1.76
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax rbp] +[rsi]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG26
+ je SHORT G_M35244_IG25
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
- je SHORT G_M35244_IG17
+ je SHORT G_M35244_IG16
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -249,9 +239,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
call [System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this]
; gcrRegs -[rcx rbx rdi r8]
; gcr arg pop 0
- jmp G_M35244_IG17
+ jmp G_M35244_IG16
;; size=69 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -260,9 +250,9 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov esi, eax
mov edi, 1
- jmp SHORT G_M35244_IG29
+ jmp SHORT G_M35244_IG28
;; size=18 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
mov edx, edi
@@ -277,20 +267,20 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
...
+5 (+1.00%) : 437997.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -50,48 +50,38 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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_IG32
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]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.17
-G_M35244_IG04: ; bbWeight=3, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx]
+ jne G_M35244_IG32
+ ;; 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 ecx, [rax-0x03]
cmp ecx, 5
- jbe G_M35244_IG21
+ jbe G_M35244_IG20
;; 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_IG32
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; 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 rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG14
;; size=9 bbWeight=2 PerfScore 6.50
-G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -99,95 +89,95 @@ G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[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=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rax+0x10]
;; size=3 bbWeight=1.09 PerfScore 2.18
-G_M35244_IG09: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
dec edi
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=10 bbWeight=2 PerfScore 3.50
-G_M35244_IG10: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1 PerfScore 4.25
-G_M35244_IG11: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, 1
- jmp SHORT G_M35244_IG09
+ jmp SHORT G_M35244_IG08
;; size=7 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG17
;; size=5 bbWeight=2 PerfScore 2.50
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
mov rsi, rbp
; gcrRegs +[rsi]
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
xor edi, edi
- jmp SHORT G_M35244_IG09
+ jmp SHORT G_M35244_IG08
;; size=4 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG24
+ je SHORT G_M35244_IG23
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
;; size=25 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, rsi
; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 4.50
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG20
+ je SHORT G_M35244_IG19
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG19: ; bbWeight=0.64, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- jne SHORT G_M35244_IG23
+ jne SHORT G_M35244_IG22
;; size=16 bbWeight=0.64 PerfScore 2.72
-G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG31
+ jae G_M35244_IG30
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG32
+ jae G_M35244_IG31
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=31 bbWeight=1.28 PerfScore 18.24
-G_M35244_IG21: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx rbp rsi]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG21: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -196,7 +186,7 @@ G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
;; size=14 bbWeight=1 PerfScore 4.25
-G_M35244_IG23: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG22: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rcx] +[rsi]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -205,18 +195,18 @@ G_M35244_IG23: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=004
; gcr arg pop 0
mov rbp, rax
; gcrRegs +[rbp]
- jmp SHORT G_M35244_IG20
+ jmp SHORT G_M35244_IG19
;; size=13 bbWeight=0.32 PerfScore 1.12
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax rbp] +[rsi]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG24
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
- je SHORT G_M35244_IG17
+ je SHORT G_M35244_IG16
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -247,9 +237,9 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
call [System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this]
; gcrRegs -[rcx rbx rdi r8]
; gcr arg pop 0
- jmp G_M35244_IG17
+ jmp G_M35244_IG16
;; size=69 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -258,9 +248,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov esi, eax
mov edi, 1
- jmp SHORT G_M35244_IG28
+ jmp SHORT G_M35244_IG27
;; size=18 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
mov edx, edi
@@ -275,20 +265,20 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc edi
;; size=24 bbWeight=0 PerfScore 0.00
...
+21 (+4.14%) : 583925.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -50,69 +50,59 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.17
-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 ecx, [rax-0x03]
cmp ecx, 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 edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=2 PerfScore 15.00
-G_M35244_IG06: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ;; size=36 bbWeight=2 PerfScore 15.00
+G_M35244_IG05: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi]
mov edi, 1
;; size=5 bbWeight=0.45 PerfScore 0.11
-G_M35244_IG07: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
dec edi
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=10 bbWeight=2 PerfScore 3.50
-G_M35244_IG08: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG07: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1 PerfScore 4.25
-G_M35244_IG09: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
- jmp SHORT G_M35244_IG18
+ jmp SHORT G_M35244_IG17
;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG10: ; bbWeight=2.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=2.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG14
;; size=9 bbWeight=2.00 PerfScore 6.50
-G_M35244_IG11: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -120,57 +110,57 @@ G_M35244_IG11: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[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=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG07
+ jmp SHORT G_M35244_IG06
;; size=5 bbWeight=1.09 PerfScore 4.36
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG17
;; size=5 bbWeight=2 PerfScore 2.50
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
mov rsi, rbp
; gcrRegs +[rsi]
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
xor edi, edi
- jmp SHORT G_M35244_IG07
+ jmp SHORT G_M35244_IG06
;; size=4 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je G_M35244_IG27
+ je G_M35244_IG28
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG27
+ jbe G_M35244_IG28
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG27
- ;; size=29 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ jbe G_M35244_IG28
+ ;; size=37 bbWeight=2 PerfScore 13.00
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, rsi
; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 4.50
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- 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=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -180,25 +170,25 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rax
; gcrRegs +[rbp]
;; size=12 bbWeight=0.32 PerfScore 1.12
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae SHORT G_M35244_IG24
+ jae SHORT G_M35244_IG23
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae SHORT G_M35244_IG25
+ jae SHORT G_M35244_IG24
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=23 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 -[rcx rbp rsi]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -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.25
-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 -[rcx rbx]
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
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ 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 rcx, rbx
; gcrRegs +[rcx]
@@ -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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rsi]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG28
+ je SHORT G_M35244_IG29
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
- je G_M35244_IG17
+ je G_M35244_IG16
...
+21 (+4.14%) : 463039.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -50,69 +50,59 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.17
-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 ecx, [rax-0x03]
cmp ecx, 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 edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=2 PerfScore 15.00
-G_M35244_IG06: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ;; size=36 bbWeight=2 PerfScore 15.00
+G_M35244_IG05: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi]
mov edi, 1
;; size=5 bbWeight=0.45 PerfScore 0.11
-G_M35244_IG07: ; bbWeight=2.00, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=2.00, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
dec edi
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=10 bbWeight=2.00 PerfScore 3.50
-G_M35244_IG08: ; bbWeight=1.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG07: ; bbWeight=1.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
- 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 -[rsi]
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG14
;; size=9 bbWeight=2 PerfScore 6.50
-G_M35244_IG11: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -120,57 +110,57 @@ G_M35244_IG11: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[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=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG07
+ jmp SHORT G_M35244_IG06
;; size=5 bbWeight=1.09 PerfScore 4.36
-G_M35244_IG13: ; bbWeight=2.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rbp]
test rbp, rbp
- 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=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
mov rsi, rbp
; gcrRegs +[rsi]
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
xor edi, edi
- jmp SHORT G_M35244_IG07
+ jmp SHORT G_M35244_IG06
;; size=4 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je G_M35244_IG27
+ je G_M35244_IG28
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG27
+ jbe G_M35244_IG28
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG27
- ;; size=29 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ jbe G_M35244_IG28
+ ;; size=37 bbWeight=2 PerfScore 13.00
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, rsi
; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 4.50
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- 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=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -180,25 +170,25 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rax
; gcrRegs +[rbp]
;; size=12 bbWeight=0.32 PerfScore 1.12
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae SHORT G_M35244_IG24
+ jae SHORT G_M35244_IG23
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae SHORT G_M35244_IG25
+ jae SHORT G_M35244_IG24
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=23 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 -[rcx rbp rsi]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -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.25
-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 -[rcx rbx]
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
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ 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 rcx, rbx
; gcrRegs +[rcx]
@@ -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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rsi]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG28
+ je SHORT G_M35244_IG29
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
- je G_M35244_IG17
+ je G_M35244_IG16
...
+21 (+4.14%) : 463732.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -50,48 +50,38 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.17
-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 ecx, [rax-0x03]
cmp ecx, 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 edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; 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 rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG14
;; size=9 bbWeight=2 PerfScore 6.50
-G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -99,77 +89,77 @@ G_M35244_IG07: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[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=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rax+0x10]
;; size=3 bbWeight=1.09 PerfScore 2.18
-G_M35244_IG09: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
dec edi
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=10 bbWeight=2 PerfScore 3.50
-G_M35244_IG10: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1 PerfScore 4.25
-G_M35244_IG11: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, 1
- jmp SHORT G_M35244_IG09
+ jmp SHORT G_M35244_IG08
;; size=7 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG13: ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG17
;; size=5 bbWeight=2 PerfScore 2.50
-G_M35244_IG14: ; bbWeight=0.72, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
mov rsi, rbp
; gcrRegs +[rsi]
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
xor edi, edi
- jmp SHORT G_M35244_IG09
+ jmp SHORT G_M35244_IG08
;; size=4 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je G_M35244_IG27
+ je G_M35244_IG28
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG27
+ jbe G_M35244_IG28
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG27
- ;; size=29 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ jbe G_M35244_IG28
+ ;; size=37 bbWeight=2 PerfScore 13.00
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, rsi
; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 4.50
-G_M35244_IG18: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- 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=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0.64, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- 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=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -179,25 +169,25 @@ G_M35244_IG20: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rax
; gcrRegs +[rbp]
;; size=12 bbWeight=0.32 PerfScore 1.12
-G_M35244_IG21: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae SHORT G_M35244_IG24
+ jae SHORT G_M35244_IG23
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae SHORT G_M35244_IG25
+ jae SHORT G_M35244_IG24
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=23 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 -[rcx rbp rsi]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -206,17 +196,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.25
-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 -[rcx rbx]
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
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ 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 rcx, rbx
; gcrRegs +[rcx]
@@ -226,18 +227,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=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rsi]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG28
+ je SHORT G_M35244_IG29
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
- je G_M35244_IG17
+ je G_M35244_IG16
;; size=21 bbWeight=0 PerfScore 0.00
...
libraries_tests.run.windows.x64.Release.mch
-27 (-1.38%) : 428623.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
@@ -101,10 +101,10 @@ G_M38617_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=37 bbWeight=1 PerfScore 10.50
G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
test rbx, rbx
- je G_M38617_IG20
+ je G_M38617_IG38
mov rcx, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+SequenceType
cmp qword ptr [rsi], rcx
- jne G_M38617_IG21
+ jne G_M38617_IG39
mov rcx, gword ptr [rsi+0x10]
; gcrRegs +[rcx]
mov rax, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+ItemType
@@ -125,9 +125,9 @@ G_M38617_IG04: ; bbWeight=0.10, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0
;; size=12 bbWeight=0.10 PerfScore 0.73
G_M38617_IG05: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
cmp edi, 2
- jg G_M38617_IG23
+ jg G_M38617_IG14
cmp edi, 1
- jne G_M38617_IG22
+ jne G_M38617_IG13
mov rcx, rbx
; gcrRegs +[rcx]
call <unknown method>
@@ -142,7 +142,7 @@ G_M38617_IG05: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcr arg pop 0
mov rcx, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+ItemType
cmp qword ptr [rax], rcx
- jne G_M38617_IG17
+ jne G_M38617_IG12
;; size=57 bbWeight=1 PerfScore 11.50
G_M38617_IG06: ; bbWeight=0.90, gcrefRegs=4009 {rax rbx r14}, byrefRegs=0000 {}, byref
mov r15d, dword ptr [rax+0x0C]
@@ -150,18 +150,18 @@ G_M38617_IG06: ; bbWeight=0.90, gcrefRegs=4009 {rax rbx r14}, byrefRegs=0
G_M38617_IG07: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r15d, 1
- je G_M38617_IG37
+ je G_M38617_IG35
cmp r15d, 2
- je G_M38617_IG36
+ je G_M38617_IG34
add r15d, -12
- jne G_M38617_IG31
+ jne G_M38617_IG29
;; size=30 bbWeight=1 PerfScore 3.75
G_M38617_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V00}
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
cmp r14, rcx
- je G_M38617_IG34
+ je G_M38617_IG32
mov rcx, 0xD1FFAB1E ; System.Xml.Schema.XmlAtomicValue
; gcrRegs -[rcx]
call CORINFO_HELP_NEWSFAST
@@ -222,7 +222,7 @@ G_M38617_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=4008 {
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
cmp edx, dword ptr [rcx+0x08]
- jge G_M38617_IG35
+ jge G_M38617_IG33
;; size=182 bbWeight=1 PerfScore 30.50
G_M38617_IG09: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
@@ -237,81 +237,22 @@ G_M38617_IG09: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[rcx r8 r14]
; gcr arg pop 0
- jmp G_M38617_IG18
- ;; size=31 bbWeight=1 PerfScore 9.00
-G_M38617_IG10: ; 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_IG12
- ;; size=2 bbWeight=0 PerfScore 0.00
-G_M38617_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, gword ptr [rbp-0x38]
- ; gcrRegs +[rcx]
- mov r11, 0xD1FFAB1E ; code for <unknown method>
- call [r11]<unknown method>
- ; gcrRegs -[rcx] +[rax]
- ; gcr arg pop 0
- mov rcx, rax
- ; gcrRegs +[rcx]
- call [System.Xml.Xsl.Runtime.XmlQueryRuntime:EnsureNavigator(System.Object):System.Xml.XPath.XPathNavigator]
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- mov rdx, rax
- ; gcrRegs +[rdx]
- mov rcx, gword ptr [rbp-0x30]
- ; gcrRegs +[rcx]
- call [System.Xml.Xsl.Runtime.XmlQuerySequence`1[System.__Canon]:Add(System.__Canon):this]
- ; gcrRegs -[rax rcx rdx]
- ; gcr arg pop 0
- ;; size=39 bbWeight=0 PerfScore 0.00
-G_M38617_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, gword ptr [rbp-0x38]
- ; gcrRegs +[rcx]
- mov r11, 0xD1FFAB1E ; code for <unknown method>
- call [r11]<unknown method>
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- test eax, eax
- jne SHORT G_M38617_IG11
- ;; size=21 bbWeight=0 PerfScore 0.00
-G_M38617_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, rsp
- call G_M38617_IG40
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M38617_IG14: ; bbWeight=0, nogc, extend
- nop
- ;; size=1 bbWeight=0 PerfScore 0.00
-G_M38617_IG15: ; bbWeight=0, gcVars=0000000000040100 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars -{V08 V09 V18 V20}
- mov rcx, gword ptr [rbp-0x30]
- ; gcrRegs +[rcx]
- mov rbx, rcx
- ; gcrRegs +[rbx]
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M38617_IG16: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rcx]
- ; GC ptr vars -{V06}
- mov rdx, rbx
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; System.Xml.Xsl.Runtime.XmlQueryNodeSequence
- call CORINFO_HELP_CHKCASTCLASS
- ; gcrRegs -[rdx rbx] +[rax]
- ; gcr arg pop 0
- mov rcx, rax
- ; gcrRegs +[rcx]
- mov rax, gword ptr [rbp+0x10]
- mov rdx, gword ptr [rax+0x68]
- ; gcrRegs +[rdx]
- cmp dword ptr [rcx], ecx
- ; 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 -[rcx rdx]
- ; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- jmp SHORT G_M38617_IG18
- ;; size=42 bbWeight=0 PerfScore 0.00
-G_M38617_IG17: ; bbWeight=0.10, gcVars=0000000000000100 {V00}, gcrefRegs=4009 {rax rbx r14}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=26 bbWeight=1 PerfScore 7.00
+G_M38617_IG10: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ mov rax, rbx
+ ; gcrRegs +[rax]
+ ;; size=3 bbWeight=1 PerfScore 0.25
+G_M38617_IG11: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 56
+ pop rbx
+ pop rsi
+ pop rdi
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=13 bbWeight=1 PerfScore 4.25
+G_M38617_IG12: ; bbWeight=0.10, gcVars=0000000000000100 {V00}, gcrefRegs=4009 {rax rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r14]
; GC ptr vars +{V00 V08}
mov rcx, rax
@@ -325,99 +266,34 @@ G_M38617_IG17: ; bbWeight=0.10, gcVars=0000000000000100 {V00}, gcrefRegs=
mov r15d, eax
jmp G_M38617_IG07
;; size=21 bbWeight=0.10 PerfScore 0.95
-G_M38617_IG18: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[r14]
- ; GC ptr vars -{V00 V08}
- mov rax, rbx
- ; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 0.25
-G_M38617_IG19: ; bbWeight=1, epilog, nogc, extend
- add rsp, 56
- pop rbx
- pop rsi
- pop rdi
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=13 bbWeight=1 PerfScore 4.25
-G_M38617_IG20: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rbx]
- call [<unknown method>]
- ; gcrRegs +[rax]
- ; gcr arg pop 0
- mov rdi, rax
- ; gcrRegs +[rdi]
- mov rcx, 0xD1FFAB1E ; <unknown class>
- mov edx, 1
- call CORINFO_HELP_NEWARR_1_OBJ
- ; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- mov rcx, 0xD1FFAB1E
- ; gcrRegs +[rcx]
- mov gword ptr [rbx+0x10], rcx
- mov rcx, 0xD1FFAB1E ; <unknown class>
- ; gcrRegs -[rcx]
- call CORINFO_HELP_NEWSFAST
- ; gcr arg pop 0
- mov r15, rax
- ; gcrRegs +[r15]
- mov rcx, r15
- ; gcrRegs +[rcx]
- mov rdx, rdi
- ; gcrRegs +[rdx]
- mov r8, rbx
- ; gcrRegs +[r8]
- call [<unknown method>]
- ; gcrRegs -[rax rcx rdx rbx rdi r8]
- ; gcr arg pop 0
- mov rcx, r15
- ; gcrRegs +[rcx]
- call CORINFO_HELP_THROW
- ; gcrRegs -[rcx r15]
- ; gcr arg pop 0
- ;; size=87 bbWeight=0 PerfScore 0.00
-G_M38617_IG21: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
- ; GC ptr vars +{V00 V08}
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rax, qword ptr [rsi]
- mov rax, qword ptr [rax+0x60]
- call [rax+0x38]<unknown method>
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- mov edi, eax
- jmp G_M38617_IG05
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M38617_IG22: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M38617_IG13: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r14] +[rsi]
cmp edi, 2
- jne SHORT G_M38617_IG18
+ jne SHORT G_M38617_IG10
mov rcx, rsi
; gcrRegs +[rcx]
call [System.Xml.Xsl.XmlQueryType:get_IsSingleton():ubyte:this]
; gcrRegs -[rcx rsi]
; gcr arg pop 0
test eax, eax
- jne G_M38617_IG18
- jmp G_M38617_IG26
- ;; size=27 bbWeight=0 PerfScore 0.00
-G_M38617_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
...
-6 (-0.79%) : 505412.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -13,7 +13,7 @@
; V01 loc0 [V01,T04] ( 23, 9.78) ref -> rbx class-hnd <System.Text.RegularExpressions.RegexNode>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V03 loc2 [V03,T05] ( 3, 9.22) ubyte -> rax
-; V04 loc3 [V04,T07] ( 4, 7.89) ubyte -> rbp
+; V04 loc3 [V04,T07] ( 4, 7.89) ubyte -> rdi
;* V05 loc4 [V05,T16] ( 0, 0 ) ubyte -> zero-ref
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V07 loc6 [V07,T37] ( 2, 0 ) int -> rsi
@@ -47,7 +47,7 @@
; V35 tmp25 [V35,T27] ( 2, 0.44) int -> rdx "argument with side effect"
; V36 tmp26 [V36,T21] ( 3, 0.79) ref -> rcx "arr expr"
; V37 cse0 [V37,T03] ( 14, 9.80) ref -> rsi multi-def "CSE - aggressive"
-; V38 cse1 [V38,T30] ( 3, 0.33) ref -> r14 "CSE - conservative"
+; V38 cse1 [V38,T30] ( 3, 0.33) ref -> rbp "CSE - conservative"
; V39 rat0 [V39,T24] ( 5, 0.49) ref -> rbx "replacement local"
; V40 rat1 [V40,T34] ( 3, 0.16) long -> rcx "CSE for expectedClsNode"
; V41 rat2 [V41,T06] ( 5, 8.89) ref -> rbp "replacement local"
@@ -56,47 +56,35 @@
; V44 rat5 [V44,T31] ( 3, 0.33) long -> rcx "CSE for expectedClsNode"
; V45 rat6 [V45,T00] ( 3, 16.67) int -> rax "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r14
push rdi
push rsi
push rbp
push rbx
- sub rsp, 32
+ sub rsp, 40
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=13 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.50
G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
call <unknown method>
; gcr arg pop 0
test eax, eax
- je SHORT G_M35244_IG03
+ je SHORT G_M35244_IG09
test dword ptr [rbx+0x28], 0x440
- je SHORT G_M35244_IG04
+ jne SHORT G_M35244_IG09
;; size=18 bbWeight=1 PerfScore 6.25
-G_M35244_IG03: ; bbWeight=1.04, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx]
- add rsp, 32
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- pop r14
- ret
- ;; size=11 bbWeight=1.04 PerfScore 3.89
-G_M35244_IG04: ; bbWeight=3.22, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx]
+G_M35244_IG03: ; bbWeight=3.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
jbe G_M35244_IG38
;; size=16 bbWeight=3.22 PerfScore 12.08
-G_M35244_IG05: ; bbWeight=2.78, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.78, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG03
+ ja SHORT G_M35244_IG09
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
@@ -104,13 +92,13 @@ G_M35244_IG05: ; bbWeight=2.78, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
add rcx, rax
jmp rcx
;; size=32 bbWeight=2.78 PerfScore 20.83
-G_M35244_IG06: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG05: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG09
+ je SHORT G_M35244_IG08
;; size=9 bbWeight=2 PerfScore 6.50
-G_M35244_IG07: ; bbWeight=1.40, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.40, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -118,55 +106,81 @@ G_M35244_IG07: ; bbWeight=1.40, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG10
;; size=23 bbWeight=1.40 PerfScore 3.86
-G_M35244_IG08: ; bbWeight=0.68, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG07: ; bbWeight=0.68, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG14
+ jmp SHORT G_M35244_IG11
;; size=5 bbWeight=0.68 PerfScore 2.72
-G_M35244_IG09: ; bbWeight=0.60, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=0.60, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
xor edi, edi
- jmp SHORT G_M35244_IG14
+ jmp SHORT G_M35244_IG11
;; size=4 bbWeight=0.60 PerfScore 1.34
-G_M35244_IG10: ; bbWeight=0.11, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG09: ; bbWeight=0.13, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; gcrRegs -[rbx rsi]
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0.13 PerfScore 0.41
+G_M35244_IG10: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[rbx rsi]
+ mov edi, 1
+ ;; size=5 bbWeight=0.72 PerfScore 0.18
+G_M35244_IG11: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ dec edi
+ mov rbp, rsi
+ ; gcrRegs +[rbp]
+ test rbp, rbp
+ je SHORT G_M35244_IG17
+ ;; size=10 bbWeight=2 PerfScore 3.50
+G_M35244_IG12: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+ mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
+ cmp qword ptr [rbp], rdx
+ je SHORT G_M35244_IG17
+ ;; size=16 bbWeight=1 PerfScore 4.25
+G_M35244_IG13: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbp]
+ jmp G_M35244_IG29
+ ;; size=5 bbWeight=0.50 PerfScore 1.00
+G_M35244_IG14: ; bbWeight=0.11, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
mov rbx, rsi
test rbx, rbx
- jne G_M35244_IG24
+ jne G_M35244_IG26
;; size=16 bbWeight=0.11 PerfScore 0.39
-G_M35244_IG11: ; bbWeight=0.11, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=0.11, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
test rbx, rbx
- je SHORT G_M35244_IG16
+ je SHORT G_M35244_IG19
;; size=5 bbWeight=0.11 PerfScore 0.14
-G_M35244_IG12: ; bbWeight=0.11, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=0.11, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
- jmp SHORT G_M35244_IG04
- ;; size=2 bbWeight=0.11 PerfScore 0.22
-G_M35244_IG13: ; bbWeight=0.72, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rsi]
- mov edi, 1
- ;; size=5 bbWeight=0.72 PerfScore 0.18
-G_M35244_IG14: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- dec edi
- mov rbp, rsi
- ; gcrRegs +[rbp]
+ jmp G_M35244_IG03
+ ;; size=5 bbWeight=0.11 PerfScore 0.22
+G_M35244_IG17: ; bbWeight=2, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[rbp rsi]
test rbp, rbp
- je G_M35244_IG28
- ;; size=14 bbWeight=2 PerfScore 3.50
-G_M35244_IG15: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
- jmp G_M35244_IG27
- ;; size=5 bbWeight=1 PerfScore 2.00
-G_M35244_IG16: ; bbWeight=0.07, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+ je G_M35244_IG29
+ ;; size=9 bbWeight=2 PerfScore 2.50
+G_M35244_IG18: ; bbWeight=0.81, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rsi]
+ mov rsi, rbp
+ ; gcrRegs +[rsi]
+ jmp SHORT G_M35244_IG21
+ ;; size=5 bbWeight=0.81 PerfScore 1.83
+G_M35244_IG19: ; bbWeight=0.07, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx rbp]
mov rbx, rsi
; gcrRegs +[rbx]
test rbx, rbx
- jne SHORT G_M35244_IG21
+ jne SHORT G_M35244_IG23
;; size=8 bbWeight=0.07 PerfScore 0.10
-G_M35244_IG17: ; bbWeight=0.07, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=0.07, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
cmp dword ptr [rbx+0x10], 0
je G_M35244_IG56
@@ -175,31 +189,26 @@ G_M35244_IG17: ; bbWeight=0.07, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
cmp dword ptr [rdx+0x08], 0
jbe G_M35244_IG57
mov rbx, gword ptr [rdx+0x10]
- jmp SHORT G_M35244_IG12
+ jmp SHORT G_M35244_IG16
;; size=30 bbWeight=0.07 PerfScore 0.92
-G_M35244_IG18: ; bbWeight=0.81, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdx] +[rbp]
- mov rsi, rbp
- ; gcrRegs +[rsi]
- ;; size=3 bbWeight=0.81 PerfScore 0.20
-G_M35244_IG19: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rbp]
- movzx rbp, byte ptr [rsi+0x2E]
- cmp ebp, 24
- je SHORT G_M35244_IG23
- lea ecx, [rbp-0x1A]
+G_M35244_IG21: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rdx] +[rsi]
+ movzx rdi, byte ptr [rsi+0x2E]
+ cmp edi, 24
+ je SHORT G_M35244_IG25
+ lea ecx, [rdi-0x1A]
cmp ecx, 1
- jbe SHORT G_M35244_IG23
+ jbe SHORT G_M35244_IG25
;; size=18 bbWeight=2 PerfScore 10.00
-G_M35244_IG20: ; bbWeight=1.89, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=1.89, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
jmp G_M35244_IG36
;; size=5 bbWeight=1.89 PerfScore 3.78
-G_M35244_IG21: ; bbWeight=0.03, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=0.03, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbx], rcx
- je SHORT G_M35244_IG17
+ je SHORT G_M35244_IG20
;; size=15 bbWeight=0.03 PerfScore 0.14
-G_M35244_IG22: ; bbWeight=0.02, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG24: ; bbWeight=0.02, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -208,42 +217,32 @@ G_M35244_IG22: ; bbWeight=0.02, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
; gcr arg pop 0
mov rbx, rax
; gcrRegs +[rbx]
- jmp SHORT G_M35244_IG17
...
-6 (-0.54%) : 57077.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArraySystem.Canon,System.Canon:System.Collections.Immutable.ImmutableArray`1System.__Canon
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; rsp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 6929
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 6929
; 6 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -113,7 +113,7 @@ G_M57371_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
; gcrRegs +[rcx]
mov ebp, dword ptr [rcx+0x10]
cmp ebp, 1
- jne SHORT G_M57371_IG10
+ jne SHORT G_M57371_IG11
;; size=12 bbWeight=1 PerfScore 5.25
G_M57371_IG03: ; bbWeight=0.90, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
@@ -125,7 +125,7 @@ G_M57371_IG03: ; bbWeight=0.90, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
; gcr arg pop 0
mov rdx, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Binder+<>c:<.cctor>b__1119_1(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
cmp qword ptr [rdi+0x18], rdx
- jne G_M57371_IG33
+ jne G_M57371_IG35
mov rdx, rax
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol
@@ -139,24 +139,34 @@ G_M57371_IG04: ; bbWeight=0.90, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
; gcrRegs -[rax]
mov rcx, qword ptr [rbx+0x38]
cmp qword ptr [rcx+0x10], 64
- jle SHORT G_M57371_IG09
+ jle SHORT G_M57371_IG07
;; size=11 bbWeight=0.90 PerfScore 5.41
G_M57371_IG05: ; bbWeight=0.72, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
mov rcx, qword ptr [rcx+0x40]
test rcx, rcx
- je SHORT G_M57371_IG09
+ je SHORT G_M57371_IG07
;; size=9 bbWeight=0.72 PerfScore 2.34
-G_M57371_IG06: ; bbWeight=0.90, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M57371_IG06: ; bbWeight=0.58, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M57371_IG08
+ ;; size=2 bbWeight=0.58 PerfScore 1.15
+G_M57371_IG07: ; bbWeight=0.32, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+ mov rcx, rbx
+ mov rdx, 0xD1FFAB1E ; global ptr
+ call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ ; gcr arg pop 0
+ mov rcx, rax
+ ;; size=21 bbWeight=0.32 PerfScore 0.57
+G_M57371_IG08: ; bbWeight=0.90, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
mov rdx, r14
; gcrRegs +[rdx]
call [System.Collections.Immutable.ImmutableArray:Create[System.__Canon](System.__Canon):System.Collections.Immutable.ImmutableArray`1[System.__Canon]]
; gcrRegs -[rdx r14] +[rax]
; gcr arg pop 0
;; size=9 bbWeight=0.90 PerfScore 2.93
-G_M57371_IG07: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
+G_M57371_IG09: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M57371_IG08: ; bbWeight=1, epilog, nogc, extend
+G_M57371_IG10: ; bbWeight=1, epilog, nogc, extend
add rsp, 64
pop rbx
pop rbp
@@ -167,19 +177,10 @@ G_M57371_IG08: ; bbWeight=1, epilog, nogc, extend
pop r15
ret
;; size=15 bbWeight=1 PerfScore 4.75
-G_M57371_IG09: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax] +[r14]
- mov rcx, rbx
- mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
- ; gcr arg pop 0
- mov rcx, rax
- jmp SHORT G_M57371_IG06
- ;; size=23 bbWeight=0.32 PerfScore 1.22
-G_M57371_IG10: ; bbWeight=0.10, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r14] +[rsi rdi]
+G_M57371_IG11: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax] +[rsi rdi]
cmp ebp, 4
- ja G_M57371_IG38
+ ja G_M57371_IG40
mov ecx, ebp
lea rdx, [reloc @RWD00]
mov edx, dword ptr [rdx+4*rcx]
@@ -187,7 +188,7 @@ G_M57371_IG10: ; bbWeight=0.10, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
add rdx, rax
jmp rdx
;; size=33 bbWeight=0.10 PerfScore 0.72
-G_M57371_IG11: ; bbWeight=0.08, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+G_M57371_IG12: ; bbWeight=0.08, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, rsi
; gcrRegs +[rcx]
xor edx, edx
@@ -196,9 +197,9 @@ G_M57371_IG11: ; bbWeight=0.08, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
; gcr arg pop 0
mov rdx, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Binder+<>c:<.cctor>b__1119_1(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
cmp qword ptr [rdi+0x18], rdx
- jne G_M57371_IG19
- ;; size=31 bbWeight=0.08 PerfScore 0.64
-G_M57371_IG12: ; bbWeight=0.05, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
+ jne SHORT G_M57371_IG19
+ ;; size=27 bbWeight=0.08 PerfScore 0.64
+G_M57371_IG13: ; bbWeight=0.05, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
mov rdx, rax
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol
@@ -208,7 +209,7 @@ G_M57371_IG12: ; bbWeight=0.05, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0
mov rbp, rax
; gcrRegs +[rbp]
;; size=21 bbWeight=0.05 PerfScore 0.09
-G_M57371_IG13: ; bbWeight=0.08, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG14: ; bbWeight=0.08, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rcx, rsi
; gcrRegs +[rcx]
@@ -218,9 +219,9 @@ G_M57371_IG13: ; bbWeight=0.08, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0
; gcr arg pop 0
mov rdx, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Binder+<>c:<.cctor>b__1119_1(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
cmp qword ptr [rdi+0x18], rdx
- jne SHORT G_M57371_IG18
+ jne SHORT G_M57371_IG22
;; size=30 bbWeight=0.08 PerfScore 0.64
-G_M57371_IG14: ; bbWeight=0.05, gcrefRegs=0021 {rax rbp}, byrefRegs=0000 {}, byref
+G_M57371_IG15: ; bbWeight=0.05, gcrefRegs=0021 {rax rbp}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdx, rax
; gcrRegs +[rdx]
@@ -231,18 +232,42 @@ G_M57371_IG14: ; bbWeight=0.05, gcrefRegs=0021 {rax rbp}, byrefRegs=0000
mov rsi, rax
; gcrRegs +[rsi]
;; size=21 bbWeight=0.05 PerfScore 0.09
-G_M57371_IG15: ; bbWeight=0.08, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG16: ; bbWeight=0.08, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rcx, qword ptr [rbx+0x38]
cmp qword ptr [rcx+0x10], 56
jle SHORT G_M57371_IG20
;; size=11 bbWeight=0.08 PerfScore 0.50
-G_M57371_IG16: ; bbWeight=0.07, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG17: ; bbWeight=0.07, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, qword ptr [rcx+0x38]
test rcx, rcx
je SHORT G_M57371_IG20
;; size=9 bbWeight=0.07 PerfScore 0.22
-G_M57371_IG17: ; bbWeight=0.08, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
+G_M57371_IG18: ; bbWeight=0.05, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M57371_IG21
+ ;; size=2 bbWeight=0.05 PerfScore 0.11
+G_M57371_IG19: ; bbWeight=0.03, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rbp] +[rax rdi]
+ mov rdx, rax
+ ; gcrRegs +[rdx]
+ mov rcx, gword ptr [rdi+0x08]
+ ; gcrRegs +[rcx]
+ call [rdi+0x18]System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this
+ ; gcrRegs -[rcx rdx]
+ ; gcr arg pop 0
+ mov rbp, rax
+ ; gcrRegs +[rbp]
+ jmp SHORT G_M57371_IG14
+ ;; size=15 bbWeight=0.03 PerfScore 0.24
+G_M57371_IG20: ; bbWeight=0.03, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax rdi]
+ mov rcx, rbx
+ mov rdx, 0xD1FFAB1E ; global ptr
+ call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ ; gcr arg pop 0
+ mov rcx, rax
+ ;; size=21 bbWeight=0.03 PerfScore 0.05
+G_M57371_IG21: ; bbWeight=0.08, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
mov rdx, rbp
; gcrRegs +[rdx]
mov r8, rsi
@@ -250,9 +275,9 @@ G_M57371_IG17: ; bbWeight=0.08, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000
call [System.Collections.Immutable.ImmutableArray:Create[System.__Canon](System.__Canon,System.__Canon):System.Collections.Immutable.ImmutableArray`1[System.__Canon]]
; gcrRegs -[rdx rbp rsi r8] +[rax]
; gcr arg pop 0
- jmp G_M57371_IG07
+ jmp G_M57371_IG09
;; size=17 bbWeight=0.08 PerfScore 0.46
-G_M57371_IG18: ; bbWeight=0.03, gcrefRegs=00A1 {rax rbp rdi}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG22: ; bbWeight=0.03, gcrefRegs=00A1 {rax rbp rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbp rdi]
mov rdx, rax
; gcrRegs +[rdx]
@@ -263,40 +288,18 @@ G_M57371_IG18: ; bbWeight=0.03, gcrefRegs=00A1 {rax rbp rdi}, byrefRegs=0
; gcr arg pop 0
mov rsi, rax
; gcrRegs +[rsi]
- jmp SHORT G_M57371_IG15
+ jmp SHORT G_M57371_IG16
;; size=15 bbWeight=0.03 PerfScore 0.26
-G_M57371_IG19: ; bbWeight=0.03, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rbp] +[rdi]
- mov rdx, rax
- ; gcrRegs +[rdx]
- mov rcx, gword ptr [rdi+0x08]
- ; gcrRegs +[rcx]
- call [rdi+0x18]System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this
- ; gcrRegs -[rcx rdx]
- ; gcr arg pop 0
- mov rbp, rax
- ; gcrRegs +[rbp]
- jmp SHORT G_M57371_IG13
- ;; size=15 bbWeight=0.03 PerfScore 0.24
-G_M57371_IG20: ; bbWeight=0.03, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax rdi]
- mov rcx, rbx
- mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
- ; gcr arg pop 0
- mov rcx, rax
- jmp SHORT G_M57371_IG17
- ;; size=23 bbWeight=0.03 PerfScore 0.11
-G_M57371_IG21: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbp rsi]
+G_M57371_IG23: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax rbp rsi]
mov rbp, qword ptr [rbx+0x38]
cmp qword ptr [rbp+0x10], 72
- jle G_M57371_IG27
+ jle G_M57371_IG31
;; size=15 bbWeight=0.01 PerfScore 0.07
-G_M57371_IG22: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- jmp G_M57371_IG29
- ;; size=5 bbWeight=0.01 PerfScore 0.02
-G_M57371_IG23: ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+G_M57371_IG24: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ jmp G_M57371_IG33
+ ;; size=5 bbWeight=0.01 PerfScore 0.01
+G_M57371_IG25: ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi rdi]
mov rcx, rsi
; gcrRegs +[rcx]
@@ -306,7 +309,7 @@ G_M57371_IG23: ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
; gcr arg pop 0
mov rdx, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Binder+<>c:<.cctor>b__1119_1(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
cmp qword ptr [rdi+0x18], rdx
- jne G_M57371_IG34
+ jne G_M57371_IG36
mov rdx, rax
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol
@@ -344,18 +347,28 @@ G_M57371_IG23: ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
...
+3 (+0.80%) : 252728.dasm - System.Xml.Schema.XsdBuilder:GetContainer(int):System.Xml.Schema.XmlSchemaObject:this (Tier1)
@@ -22,27 +22,21 @@ G_M49782_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
xor rax, rax
; gcrRegs +[rax]
cmp edx, 14
- jne SHORT G_M49782_IG06
+ jne SHORT G_M49782_IG05
;; size=7 bbWeight=1 PerfScore 1.50
-G_M49782_IG03: ; bbWeight=0.75, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M49782_IG03: ; bbWeight=0.75, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xF8]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
- ;; size=9 bbWeight=0.75 PerfScore 2.99
-G_M49782_IG04: ; bbWeight=0.08, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
- mov rax, gword ptr [rcx+0x80]
- ; gcrRegs +[rax]
- ;; size=7 bbWeight=0.08 PerfScore 0.16
-G_M49782_IG05: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=7 bbWeight=0.75 PerfScore 1.49
+G_M49782_IG04: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rcx]
ret
;; size=1 bbWeight=1 PerfScore 1.00
-G_M49782_IG06: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49782_IG05: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rcx]
cmp edx, 47
- ja SHORT G_M49782_IG05
+ ja SHORT G_M49782_IG04
mov edx, edx
lea r8, [reloc @RWD00]
mov r8d, dword ptr [r8+4*rdx]
@@ -50,193 +44,199 @@ G_M49782_IG06: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=000
add r8, r10
jmp r8
;; size=31 bbWeight=0.25 PerfScore 1.84
+G_M49782_IG06: ; bbWeight=0.08, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rax]
+ mov rax, gword ptr [rcx+0x80]
+ ; gcrRegs +[rax]
+ jmp SHORT G_M49782_IG04
+ ;; size=9 bbWeight=0.08 PerfScore 0.32
G_M49782_IG07: ; bbWeight=0.08, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x60]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=6 bbWeight=0.08 PerfScore 0.32
G_M49782_IG08: ; bbWeight=0.07, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xF0]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0.07 PerfScore 0.27
G_M49782_IG09: ; bbWeight=0.01, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x50]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=6 bbWeight=0.01 PerfScore 0.05
G_M49782_IG10: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x140]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG11: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x130]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG12: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x138]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG13: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x70]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=6 bbWeight=0 PerfScore 0.00
G_M49782_IG14: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x108]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG15: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x110]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG16: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x78]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=6 bbWeight=0 PerfScore 0.00
G_M49782_IG17: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xD8]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
-G_M49782_IG18: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M49782_IG18: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xE0]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
- ;; size=9 bbWeight=0 PerfScore 0.00
+ jmp G_M49782_IG04
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG19: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xE8]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG20: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x68]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG21: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x118]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG22: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x88]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG23: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x90]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG24: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x98]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG25: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xA0]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG26: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xA8]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG27: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xB0]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG28: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xB8]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG29: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xC0]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG30: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xC8]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG31: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xD0]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG32: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x120]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG33: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x128]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG34: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x158]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG35: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x148]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG36: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
...
+5 (+0.81%) : 423578.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -59,48 +59,38 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-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_IG44
test dword ptr [rbx+0x28], 0x440
- je SHORT G_M35244_IG04
- ;; size=18 bbWeight=1 PerfScore 6.25
-G_M35244_IG03: ; bbWeight=1.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=1.10 PerfScore 3.59
-G_M35244_IG04: ; bbWeight=2.89, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx]
+ jne G_M35244_IG44
+ ;; size=26 bbWeight=1 PerfScore 6.25
+G_M35244_IG03: ; bbWeight=2.89, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
- jbe G_M35244_IG29
+ jbe G_M35244_IG28
;; size=16 bbWeight=2.89 PerfScore 10.83
-G_M35244_IG05: ; bbWeight=2.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG03
+ ja G_M35244_IG44
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=2.67 PerfScore 20.00
-G_M35244_IG06: ; bbWeight=1.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=36 bbWeight=2.67 PerfScore 20.00
+G_M35244_IG05: ; bbWeight=1.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG12
;; size=9 bbWeight=1.67 PerfScore 5.42
-G_M35244_IG07: ; bbWeight=1.17, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.17, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -108,54 +98,54 @@ G_M35244_IG07: ; bbWeight=1.17, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG09
+ je SHORT G_M35244_IG08
;; size=23 bbWeight=1.17 PerfScore 3.22
-G_M35244_IG08: ; bbWeight=0.57, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG07: ; bbWeight=0.57, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG10
+ jmp SHORT G_M35244_IG09
;; size=5 bbWeight=0.57 PerfScore 2.27
-G_M35244_IG09: ; bbWeight=0.60, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=0.60, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov edi, 1
;; size=5 bbWeight=0.60 PerfScore 0.15
-G_M35244_IG10: ; bbWeight=1.67, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=1.67, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
dec edi
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG14
+ je SHORT G_M35244_IG13
;; size=10 bbWeight=1.67 PerfScore 2.92
-G_M35244_IG11: ; bbWeight=0.83, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.83, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- je SHORT G_M35244_IG14
+ je SHORT G_M35244_IG13
;; size=16 bbWeight=0.83 PerfScore 3.54
-G_M35244_IG12: ; bbWeight=0.42, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=0.42, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
- jmp SHORT G_M35244_IG15
+ jmp SHORT G_M35244_IG14
;; size=2 bbWeight=0.42 PerfScore 0.83
-G_M35244_IG13: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
xor edi, edi
- jmp SHORT G_M35244_IG10
+ jmp SHORT G_M35244_IG09
;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M35244_IG14: ; bbWeight=1.67, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.67, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbp]
test rbp, rbp
- jne SHORT G_M35244_IG22
+ jne SHORT G_M35244_IG21
;; size=5 bbWeight=1.67 PerfScore 2.08
-G_M35244_IG15: ; bbWeight=0.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG17
;; size=8 bbWeight=0.99 PerfScore 1.48
-G_M35244_IG16: ; bbWeight=0.49, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=0.49, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG17
;; size=16 bbWeight=0.49 PerfScore 2.10
-G_M35244_IG17: ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -165,68 +155,68 @@ G_M35244_IG17: ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rax
; gcrRegs +[rbp]
;; size=11 bbWeight=0.25 PerfScore 0.37
-G_M35244_IG18: ; bbWeight=0.99, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
+G_M35244_IG17: ; bbWeight=0.99, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG43
+ jae G_M35244_IG42
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG44
+ jae G_M35244_IG43
mov eax, edi
mov rsi, gword ptr [rcx+8*rax+0x10]
; gcrRegs +[rsi]
;; size=29 bbWeight=0.99 PerfScore 12.10
-G_M35244_IG19: ; bbWeight=1.67, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=1.67, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx rbp]
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG26
+ je SHORT G_M35244_IG25
lea eax, [rcx-0x1A]
cmp eax, 1
- jbe SHORT G_M35244_IG26
+ jbe SHORT G_M35244_IG25
;; size=17 bbWeight=1.67 PerfScore 8.33
-G_M35244_IG20: ; bbWeight=1.56, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=1.56, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG26
+ jbe SHORT G_M35244_IG25
;; size=8 bbWeight=1.56 PerfScore 2.33
-G_M35244_IG21: ; bbWeight=1.67, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=1.67, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, rsi
; gcrRegs +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=8 bbWeight=1.67 PerfScore 3.75
-G_M35244_IG22: ; bbWeight=0.68, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG21: ; bbWeight=0.68, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] +[rbp]
mov rsi, rbp
; gcrRegs +[rsi]
- jmp SHORT G_M35244_IG19
+ jmp SHORT G_M35244_IG18
;; size=5 bbWeight=0.68 PerfScore 1.53
-G_M35244_IG23: ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp rsi]
cmp dword ptr [rbx+0x24], 1
- jne G_M35244_IG42
+ jne G_M35244_IG41
;; size=10 bbWeight=0.22 PerfScore 0.89
-G_M35244_IG24: ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
mov rbx, rsi
test rbx, rbx
- je SHORT G_M35244_IG31
+ je SHORT G_M35244_IG30
;; size=12 bbWeight=0.22 PerfScore 0.78
-G_M35244_IG25: ; bbWeight=0.11, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- jmp G_M35244_IG34
+G_M35244_IG24: ; bbWeight=0.11, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ jmp G_M35244_IG33
;; size=5 bbWeight=0.11 PerfScore 0.22
-G_M35244_IG26: ; bbWeight=0.11, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG25: ; bbWeight=0.11, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
test rcx, rcx
- je SHORT G_M35244_IG27
+ je SHORT G_M35244_IG26
cmp byte ptr [rcx+0x2E], 32
- je SHORT G_M35244_IG21
+ je SHORT G_M35244_IG20
;; size=15 bbWeight=0.11 PerfScore 0.81
-G_M35244_IG27: ; bbWeight=0.11, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG26: ; bbWeight=0.11, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -257,17 +247,17 @@ G_M35244_IG27: ; bbWeight=0.11, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
call [System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this]
; gcrRegs -[rcx rbx rdi r8]
; gcr arg pop 0
- jmp SHORT G_M35244_IG21
+ jmp SHORT G_M35244_IG20
;; size=66 bbWeight=0.11 PerfScore 2.03
-G_M35244_IG28: ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG27: ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi] +[rbx]
- jmp G_M35244_IG04
+ jmp G_M35244_IG03
;; size=5 bbWeight=0.22 PerfScore 0.44
-G_M35244_IG29: ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=0.22 PerfScore 0.06
-G_M35244_IG30: ; bbWeight=0.22, epilog, nogc, extend
+G_M35244_IG29: ; bbWeight=0.22, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -276,46 +266,46 @@ G_M35244_IG30: ; bbWeight=0.22, epilog, nogc, extend
...
+7 (+0.90%) : 622866.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
; rsp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 28578
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 28578
; 3 inlinees with PGO data; 9 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -75,17 +75,13 @@ G_M57106_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=34 bbWeight=1 PerfScore 11.08
-G_M57106_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rsi, qword ptr [rbx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedMethodSymbol
cmp rsi, rcx
- jne SHORT G_M57106_IG04
- ;; size=18 bbWeight=1 PerfScore 3.50
-G_M57106_IG03: ; bbWeight=0.46, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov edi, 9
- jmp SHORT G_M57106_IG05
- ;; size=7 bbWeight=0.46 PerfScore 1.04
-G_M57106_IG04: ; bbWeight=0.54, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ je G_M57106_IG10
+ ;; size=22 bbWeight=1 PerfScore 3.50
+G_M57106_IG03: ; bbWeight=0.54, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
mov rax, qword ptr [rsi+0x58]
@@ -94,12 +90,12 @@ G_M57106_IG04: ; bbWeight=0.54, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
; gcr arg pop 0
mov edi, eax
;; size=11 bbWeight=0.54 PerfScore 2.97
-G_M57106_IG05: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M57106_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
lea ebp, [rdi-0x04]
cmp ebp, 5
- jne G_M57106_IG14
+ jne G_M57106_IG12
;; size=12 bbWeight=1 PerfScore 1.75
-G_M57106_IG06: ; bbWeight=0.85, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG05: ; bbWeight=0.85, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rdx, rbx
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol
@@ -108,22 +104,9 @@ G_M57106_IG06: ; bbWeight=0.85, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
; gcr arg pop 0
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol
cmp rsi, rcx
- jne SHORT G_M57106_IG08
+ je SHORT G_M57106_IG11
;; size=33 bbWeight=0.85 PerfScore 2.56
-G_M57106_IG07: ; bbWeight=0.36, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
- mov rcx, rax
- ; gcrRegs +[rcx]
- mov rax, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_TypeArgumentsWithAnnotations():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this
- ; gcrRegs -[rax]
- call [rax]Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_TypeArgumentsWithAnnotations():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this
- ; gcrRegs -[rcx] +[rax]
- ; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- jmp SHORT G_M57106_IG09
- ;; size=20 bbWeight=0.36 PerfScore 2.06
-G_M57106_IG08: ; bbWeight=0.49, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
+G_M57106_IG06: ; bbWeight=0.49, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
mov rcx, rax
; gcrRegs +[rcx]
mov rax, qword ptr [rsi+0xF0]
@@ -134,16 +117,16 @@ G_M57106_IG08: ; bbWeight=0.49, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
mov rbx, rax
; gcrRegs +[rbx]
;; size=16 bbWeight=0.49 PerfScore 2.72
-G_M57106_IG09: ; bbWeight=0.85, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG07: ; bbWeight=0.85, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rdx, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdx]
; gcrRegs +[rsi]
mov edx, dword ptr [rbx+0x08]
test edx, edx
- jne SHORT G_M57106_IG16
- ;; size=20 bbWeight=0.85 PerfScore 4.69
-G_M57106_IG10: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ jne G_M57106_IG16
+ ;; size=24 bbWeight=0.85 PerfScore 4.69
+G_M57106_IG08: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx rsi]
mov rdx, 0xD1FFAB1E ; box for <unknown class>:<unknown field>
mov rdx, gword ptr [rdx]
@@ -151,7 +134,7 @@ G_M57106_IG10: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
mov rax, gword ptr [rdx+0x08]
; gcrRegs +[rax]
;; size=17 bbWeight=0.80 PerfScore 3.39
-G_M57106_IG11: ; bbWeight=0.85, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M57106_IG09: ; bbWeight=0.85, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rdx]
add rsp, 64
pop rbx
@@ -163,14 +146,47 @@ G_M57106_IG11: ; bbWeight=0.85, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
pop r15
ret
;; size=15 bbWeight=0.85 PerfScore 4.05
-G_M57106_IG12: ; bbWeight=0.15, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M57106_IG10: ; bbWeight=0.46, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[rax] +[rbx]
+ mov edi, 9
+ jmp SHORT G_M57106_IG04
+ ;; size=7 bbWeight=0.46 PerfScore 1.04
+G_M57106_IG11: ; bbWeight=0.36, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rbx] +[rax]
+ mov rcx, rax
+ ; gcrRegs +[rcx]
+ mov rax, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_TypeArgumentsWithAnnotations():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this
; gcrRegs -[rax]
+ call [rax]Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_TypeArgumentsWithAnnotations():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this
+ ; gcrRegs -[rcx] +[rax]
+ ; gcr arg pop 0
+ mov rbx, rax
+ ; gcrRegs +[rbx]
+ jmp SHORT G_M57106_IG07
+ ;; size=20 bbWeight=0.36 PerfScore 2.06
+G_M57106_IG12: ; bbWeight=0.15, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rax]
+ cmp ebp, 7
+ ja SHORT G_M57106_IG13
+ mov eax, ebp
+ lea rcx, [reloc @RWD00]
+ mov ecx, dword ptr [rcx+4*rax]
+ lea rdx, G_M57106_IG02
+ add rcx, rdx
+ jmp rcx
+ ;; size=29 bbWeight=0.15 PerfScore 1.07
+G_M57106_IG13: ; bbWeight=0.15, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ cmp edi, 15
+ jne G_M57106_IG34
+ ;; size=9 bbWeight=0.15 PerfScore 0.18
+G_M57106_IG14: ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbx]
mov rax, 0xD1FFAB1E ; box for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
mov rax, gword ptr [rax+0x08]
;; size=17 bbWeight=0.15 PerfScore 0.63
-G_M57106_IG13: ; bbWeight=0.15, epilog, nogc, extend
+G_M57106_IG15: ; bbWeight=0.15, epilog, nogc, extend
add rsp, 64
pop rbx
pop rbp
@@ -181,24 +197,8 @@ G_M57106_IG13: ; bbWeight=0.15, epilog, nogc, extend
pop r15
ret
;; size=15 bbWeight=0.15 PerfScore 0.70
-G_M57106_IG14: ; bbWeight=0.15, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax] +[rbx]
- cmp ebp, 7
- ja SHORT G_M57106_IG15
- mov eax, ebp
- lea rcx, [reloc @RWD00]
- mov ecx, dword ptr [rcx+4*rax]
- lea rdx, G_M57106_IG02
- add rcx, rdx
- jmp rcx
- ;; size=29 bbWeight=0.15 PerfScore 1.07
-G_M57106_IG15: ; bbWeight=0.15, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- cmp edi, 15
- jne G_M57106_IG34
- jmp SHORT G_M57106_IG12
- ;; size=11 bbWeight=0.15 PerfScore 0.48
-G_M57106_IG16: ; bbWeight=0.06, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rsi]
+G_M57106_IG16: ; bbWeight=0.06, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax] +[rbx rsi]
movsxd rdx, edx
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWARR_1_OBJ
@@ -209,12 +209,12 @@ G_M57106_IG16: ; bbWeight=0.06, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
xor r14d, r14d
mov r15d, dword ptr [rdi+0x08]
test r15d, r15d
- jle G_M57106_IG24
+ jle G_M57106_IG25
;; size=37 bbWeight=0.06 PerfScore 0.29
G_M57106_IG17: ; bbWeight=0.03, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp dword ptr [rbx+0x08], r15d
- jl G_M57106_IG25
+ jl G_M57106_IG26
;; size=10 bbWeight=0.03 PerfScore 0.11
G_M57106_IG18: ; bbWeight=0.06, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
mov edx, r14d
@@ -228,17 +228,17 @@ G_M57106_IG18: ; bbWeight=0.06, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
movzx r13, byte ptr [rbp+0x10]
mov r8, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap+<>c:<.cctor>b__19_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this
cmp qword ptr [rsi+0x18], r8
- jne G_M57106_IG36
+ jne G_M57106_IG37
;; size=45 bbWeight=0.06 PerfScore 0.66
G_M57106_IG19: ; bbWeight=0.06, gcrefRegs=00CE {rcx rdx rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; byrRegs -[rbp]
test rcx, rcx
- je SHORT G_M57106_IG22
+ je SHORT G_M57106_IG23
;; size=5 bbWeight=0.06 PerfScore 0.07
G_M57106_IG20: ; bbWeight=0.06, gcrefRegs=00CE {rcx rdx rbx rsi rdi}, byrefRegs=0000 {}, byref
mov r8, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType
cmp qword ptr [rcx], r8
- jne G_M57106_IG35
+ jne G_M57106_IG36
mov r8, rdx
; gcrRegs +[r8]
;; size=22 bbWeight=0.06 PerfScore 0.25
@@ -253,14 +253,18 @@ G_M57106_IG21: ; bbWeight=0.06, gcrefRegs=01C8 {rbx rsi rdi r8}, byrefReg
inc r14d
cmp r15d, r14d
jg SHORT G_M57106_IG18
- jmp SHORT G_M57106_IG24
- ;; size=21 bbWeight=0.06 PerfScore 0.28
-G_M57106_IG22: ; bbWeight=0.00, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+ ;; size=19 bbWeight=0.06 PerfScore 0.17
+G_M57106_IG22: ; bbWeight=0.03, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rbx rsi]
+ jmp SHORT G_M57106_IG25
+ ;; size=2 bbWeight=0.03 PerfScore 0.06
+G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rbx rsi]
xor r8, r8
; gcrRegs +[r8]
jmp SHORT G_M57106_IG21
;; size=5 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=01C8 {rbx rsi rdi r8}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG24: ; bbWeight=0.00, gcrefRegs=01C8 {rbx rsi rdi r8}, byrefRegs=0000 {}, byref, isz
movsxd rdx, r14d
mov rcx, rdi
; gcrRegs +[rcx]
@@ -269,18 +273,18 @@ G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=01C8 {rbx rsi rdi r8}, byrefReg
; gcr arg pop 0
inc r14d
cmp r15d, r14d
- jg SHORT G_M57106_IG25
+ jg SHORT G_M57106_IG26
;; size=19 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG24: ; bbWeight=0.06, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
+G_M57106_IG25: ; bbWeight=0.06, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx rsi]
mov rax, rdi
; gcrRegs +[rax]
...
Details
Improvements/regressions per collection
Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
aspnet.run.windows.x64.checked.mch |
2 |
1 |
1 |
0 |
-1 |
+3 |
benchmarks.run.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
benchmarks.run_pgo.windows.x64.checked.mch |
13 |
5 |
6 |
2 |
-40 |
+80 |
benchmarks.run_tiered.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
coreclr_tests.run.windows.x64.checked.mch |
6 |
1 |
5 |
0 |
-4 |
+73 |
libraries.crossgen2.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
libraries.pmi.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
libraries_tests.run.windows.x64.Release.mch |
9 |
5 |
3 |
1 |
-46 |
+15 |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
realworld.run.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
smoke_tests.nativeaot.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
30 |
12 |
15 |
3 |
-91 |
+171 |
Context information
Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
aspnet.run.windows.x64.checked.mch |
122,303 |
69,144 |
53,159 |
2,697 (2.16%) |
2,697 (2.16%) |
benchmarks.run.windows.x64.checked.mch |
27,983 |
4 |
27,979 |
30 (0.11%) |
30 (0.11%) |
benchmarks.run_pgo.windows.x64.checked.mch |
104,556 |
51,487 |
53,069 |
1 (0.00%) |
1 (0.00%) |
benchmarks.run_tiered.windows.x64.checked.mch |
55,104 |
37,303 |
17,801 |
7 (0.01%) |
7 (0.01%) |
coreclr_tests.run.windows.x64.checked.mch |
583,899 |
348,198 |
235,701 |
72 (0.01%) |
72 (0.01%) |
libraries.crossgen2.windows.x64.checked.mch |
275,762 |
15 |
275,747 |
8 (0.00%) |
8 (0.00%) |
libraries.pmi.windows.x64.checked.mch |
313,964 |
6 |
313,958 |
335 (0.11%) |
335 (0.11%) |
libraries_tests.run.windows.x64.Release.mch |
684,990 |
483,523 |
201,467 |
187 (0.03%) |
187 (0.03%) |
librariestestsnotieredcompilation.run.windows.x64.Release.mch |
320,420 |
21,945 |
298,475 |
468 (0.15%) |
468 (0.15%) |
realworld.run.windows.x64.checked.mch |
36,795 |
3 |
36,792 |
114 (0.31%) |
114 (0.31%) |
smoke_tests.nativeaot.windows.x64.checked.mch |
32,573 |
11 |
32,562 |
5 (0.02%) |
5 (0.02%) |
|
2,558,349 |
1,011,639 |
1,546,710 |
3,924 (0.15%) |
3,924 (0.15%) |
jit-analyze output
aspnet.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 38879813 (overridden on cmd)
Total bytes of diff: 38879815 (overridden on cmd)
Total bytes of delta: 2 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
3 : 123784.dasm (0.26 % of base)
Top file improvements (bytes):
-1 : 88044.dasm (-0.13 % of base)
2 total files with Code Size differences (1 improved, 1 regressed), 0 unchanged.
Top method regressions (bytes):
3 (0.26 % of base) : 123784.dasm - System.Text.Json.JsonDocument:WriteElementTo(int,System.Text.Json.Utf8JsonWriter):this (Tier1)
Top method improvements (bytes):
-1 (-0.13 % of base) : 88044.dasm - System.Text.Json.JsonDocument:WriteElementTo(int,System.Text.Json.Utf8JsonWriter):this (Tier1)
Top method regressions (percentages):
3 (0.26 % of base) : 123784.dasm - System.Text.Json.JsonDocument:WriteElementTo(int,System.Text.Json.Utf8JsonWriter):this (Tier1)
Top method improvements (percentages):
-1 (-0.13 % of base) : 88044.dasm - System.Text.Json.JsonDocument:WriteElementTo(int,System.Text.Json.Utf8JsonWriter):this (Tier1)
2 total methods with Code Size differences (1 improved, 1 regressed).
benchmarks.run_pgo.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 36663291 (overridden on cmd)
Total bytes of diff: 36663331 (overridden on cmd)
Total bytes of delta: 40 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
21 : 93947.dasm (4.15 % of base)
15 : 89243.dasm (3.01 % of base)
15 : 101887.dasm (3.01 % of base)
13 : 88253.dasm (2.60 % of base)
11 : 91714.dasm (2.08 % of base)
5 : 93966.dasm (0.70 % of base)
Top file improvements (bytes):
-18 : 27503.dasm (-3.49 % of base)
-8 : 103836.dasm (-1.52 % of base)
-6 : 100166.dasm (-1.47 % of base)
-4 : 36615.dasm (-0.51 % of base)
-4 : 36620.dasm (-0.51 % of base)
11 total files with Code Size differences (5 improved, 6 regressed), 2 unchanged.
Top method regressions (bytes):
21 (4.15 % of base) : 93947.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
15 (3.01 % of base) : 89243.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
15 (3.01 % of base) : 101887.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
13 (2.60 % of base) : 88253.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
11 (2.08 % of base) : 91714.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (0.70 % of base) : 93966.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):
-18 (-3.49 % of base) : 27503.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-8 (-1.52 % of base) : 103836.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-6 (-1.47 % of base) : 100166.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)
-4 (-0.51 % of base) : 36615.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-4 (-0.51 % of base) : 36620.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
Top method regressions (percentages):
21 (4.15 % of base) : 93947.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
15 (3.01 % of base) : 89243.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
15 (3.01 % of base) : 101887.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
13 (2.60 % of base) : 88253.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
11 (2.08 % of base) : 91714.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (0.70 % of base) : 93966.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):
-18 (-3.49 % of base) : 27503.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-8 (-1.52 % of base) : 103836.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-6 (-1.47 % of base) : 100166.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)
-4 (-0.51 % of base) : 36615.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-4 (-0.51 % of base) : 36620.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
11 total methods with Code Size differences (5 improved, 6 regressed).
coreclr_tests.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 407274585 (overridden on cmd)
Total bytes of diff: 407274654 (overridden on cmd)
Total bytes of delta: 69 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
21 : 463732.dasm (4.14 % of base)
21 : 583925.dasm (4.14 % of base)
21 : 463039.dasm (4.14 % of base)
5 : 314215.dasm (1.00 % of base)
5 : 437997.dasm (1.00 % of base)
Top file improvements (bytes):
-4 : 449054.dasm (-0.51 % of base)
6 total files with Code Size differences (1 improved, 5 regressed), 0 unchanged.
Top method regressions (bytes):
21 (4.14 % of base) : 463732.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
21 (4.14 % of base) : 583925.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
21 (4.14 % of base) : 463039.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (1.00 % of base) : 314215.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (1.00 % of base) : 437997.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (bytes):
-4 (-0.51 % of base) : 449054.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
Top method regressions (percentages):
21 (4.14 % of base) : 463732.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
21 (4.14 % of base) : 583925.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
21 (4.14 % of base) : 463039.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (1.00 % of base) : 437997.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (1.00 % of base) : 314215.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (percentages):
-4 (-0.51 % of base) : 449054.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
6 total methods with Code Size differences (1 improved, 5 regressed).
libraries_tests.run.windows.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 284562984 (overridden on cmd)
Total bytes of diff: 284562953 (overridden on cmd)
Total bytes of delta: -31 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
7 : 622866.dasm (0.90 % of base)
5 : 423578.dasm (0.81 % of base)
3 : 252728.dasm (0.80 % of base)
Top file improvements (bytes):
-27 : 428623.dasm (-1.38 % of base)
-6 : 57077.dasm (-0.54 % of base)
-6 : 85160.dasm (-0.27 % of base)
-6 : 505412.dasm (-0.79 % of base)
-1 : 422846.dasm (-0.15 % of base)
8 total files with Code Size differences (5 improved, 3 regressed), 1 unchanged.
Top method regressions (bytes):
7 (0.90 % of base) : 622866.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
5 (0.81 % of base) : 423578.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
3 (0.80 % of base) : 252728.dasm - System.Xml.Schema.XsdBuilder:GetContainer(int):System.Xml.Schema.XmlSchemaObject:this (Tier1)
Top method improvements (bytes):
-27 (-1.38 % of base) : 428623.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-6 (-0.54 % of base) : 57077.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
-6 (-0.27 % of base) : 85160.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
-6 (-0.79 % of base) : 505412.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-1 (-0.15 % of base) : 422846.dasm - System.Xml.Schema.BaseValidator:CreateInstance(int,System.Xml.XmlValidatingReaderImpl,System.Xml.Schema.XmlSchemaCollection,System.Xml.IValidationEventHandling,ubyte):System.Xml.Schema.BaseValidator (Tier1)
Top method regressions (percentages):
7 (0.90 % of base) : 622866.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
5 (0.81 % of base) : 423578.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
3 (0.80 % of base) : 252728.dasm - System.Xml.Schema.XsdBuilder:GetContainer(int):System.Xml.Schema.XmlSchemaObject:this (Tier1)
Top method improvements (percentages):
-27 (-1.38 % of base) : 428623.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-6 (-0.79 % of base) : 505412.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-6 (-0.54 % of base) : 57077.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
-6 (-0.27 % of base) : 85160.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
-1 (-0.15 % of base) : 422846.dasm - System.Xml.Schema.BaseValidator:CreateInstance(int,System.Xml.XmlValidatingReaderImpl,System.Xml.Schema.XmlSchemaCollection,System.Xml.IValidationEventHandling,ubyte):System.Xml.Schema.BaseValidator (Tier1)
8 total methods with Code Size differences (5 improved, 3 regressed).