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).