Assembly Diffs
osx arm64
Diffs are based on 2,293,443 contexts (933,876 MinOpts, 1,359,567 FullOpts).
Overall (-20 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.osx.arm64.checked.mch |
34,290,048 |
-4 |
| coreclr_tests.run.osx.arm64.checked.mch |
491,746,024 |
+0 |
| libraries_tests.run.osx.arm64.Release.mch |
313,602,060 |
-16 |
FullOpts (-20 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.osx.arm64.checked.mch |
17,918,744 |
-4 |
| coreclr_tests.run.osx.arm64.checked.mch |
153,251,180 |
+0 |
| libraries_tests.run.osx.arm64.Release.mch |
110,669,088 |
-16 |
Example diffs
benchmarks.run_pgo.osx.arm64.checked.mch
-4 (-0.53%) : 69487.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -53,22 +53,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_IG19
+ cbz w0, G_M35244_IG25
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG19
+ 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_IG23
+ bls G_M35244_IG21
;; 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_IG19
+ bhi G_M35244_IG25
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -104,7 +104,7 @@ G_M35244_IG09: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs +[x22]
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35244_IG10: ; bbWeight=1.99, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG21
+ cbnz x22, G_M35244_IG19
;; size=4 bbWeight=1.99 PerfScore 1.99
G_M35244_IG11: ; bbWeight=1.56, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
@@ -134,12 +134,12 @@ G_M35244_IG14: ; bbWeight=1.56, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcrRegs -[x0]
ldr w0, [x22, #0x10]
cmp w21, w0
- bhs G_M35244_IG25
+ bhs G_M35244_IG23
ldr x0, [x22, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
cmp w21, w1
- bhs G_M35244_IG26
+ bhs G_M35244_IG24
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
@@ -155,7 +155,7 @@ G_M35244_IG15: ; bbWeight=1.99, gcrefRegs=280000 {x19 x21}, byrefRegs=000
cmp w0, #24
ccmp w1, #1, z, ne
ccmp w2, #1, z, hi
- bls G_M35244_IG28
+ bls G_M35244_IG27
;; size=28 bbWeight=1.99 PerfScore 12.92
G_M35244_IG16: ; bbWeight=1.99, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -173,35 +173,24 @@ G_M35244_IG17: ; bbWeight=1.01, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG22
+ cbz x0, G_M35244_IG20
;; size=24 bbWeight=1.01 PerfScore 4.04
G_M35244_IG18: ; bbWeight=0.75, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- b G_M35244_IG20
- ;; size=4 bbWeight=0.75 PerfScore 0.75
-G_M35244_IG19: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x0 x19-x20]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x30
- ret lr
- ;; size=16 bbWeight=0.02 PerfScore 0.07
-G_M35244_IG20: ; bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x0 x19-x20]
ldr w21, [x0, #0x10]
b G_M35244_IG07
;; size=8 bbWeight=0.75 PerfScore 3.02
-G_M35244_IG21: ; bbWeight=0.43, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.43, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20] +[x22]
mov x21, x22
; gcrRegs +[x21]
b G_M35244_IG15
;; size=8 bbWeight=0.43 PerfScore 0.65
-G_M35244_IG22: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21-x22] +[x20]
mov w21, #1
b G_M35244_IG07
;; size=8 bbWeight=0.25 PerfScore 0.38
-G_M35244_IG23: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20]
mov x0, x19
; gcrRegs +[x0]
@@ -210,14 +199,14 @@ G_M35244_IG23: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x1, #1 LSL #32
ldr x1, [x1]
;; size=20 bbWeight=0.03 PerfScore 0.17
-G_M35244_IG24: ; bbWeight=0.03, epilog, nogc, extend
+G_M35244_IG22: ; 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
;; size=16 bbWeight=0.03 PerfScore 0.13
-G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x19]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
@@ -227,11 +216,17 @@ G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; 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_IG27: ; 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]
@@ -247,18 +242,18 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x19]
b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] +[x21]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG29
+ cbz x0, G_M35244_IG28
ldr x0, [x19, #0x18]
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
beq G_M35244_IG16
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -306,7 +301,7 @@ G_M35244_IG29: ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {
; gcr arg pop 0
b G_M35244_IG16
;; size=124 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x21] +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -319,9 +314,9 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
sxtw w20, w0
mov w21, #1
- b G_M35244_IG32
+ b G_M35244_IG31
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
mov w1, w21
@@ -341,22 +336,22 @@ G_M35244_IG31: ; 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_IG32: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG31
+ blt G_M35244_IG30
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG19
- b G_M35244_IG27
+ beq G_M35244_IG25
+ b G_M35244_IG26
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; 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_IG34: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
- beq G_M35244_IG27
+ beq G_M35244_IG26
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this
@@ -368,23 +363,23 @@ G_M35244_IG34: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG19
+ cbz x19, G_M35244_IG25
b G_M35244_IG03
;; size=48 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG30 - G_M35244_IG02
+RWD00 dd G_M35244_IG29 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG34 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
+ dd G_M35244_IG32 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG19 - G_M35244_IG02
- dd G_M35244_IG27 - G_M35244_IG02
- dd G_M35244_IG27 - G_M35244_IG02
- dd G_M35244_IG27 - G_M35244_IG02
- dd G_M35244_IG30 - G_M35244_IG02
- dd G_M35244_IG30 - G_M35244_IG02
+ dd G_M35244_IG25 - 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
-; Total bytes of code 756, prolog size 20, PerfScore 127.22, instruction count 189, allocated bytes for code 756 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 752, prolog size 20, PerfScore 126.40, instruction count 188, allocated bytes for code 752 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
@@ -395,7 +390,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 189 (0x000bd) Actual length = 756 (0x0002f4)
+ Function Length : 188 (0x000bc) Actual length = 752 (0x0002f0)
...
+0 (0.00%) : 69549.dasm - System.Text.RegularExpressions.RegexCompiler+<>cDisplayClass158_0:gEmitNode|12(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
@@ -56,19 +56,19 @@ G_M17183_IG02: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
ldr w0, [x0, #0x20]
; gcrRegs -[x0]
cmp w0, #19
- beq G_M17183_IG22
+ beq G_M17183_IG10
;; size=24 bbWeight=1 PerfScore 13.50
G_M17183_IG03: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
- cbz w0, G_M17183_IG27
+ cbz w0, G_M17183_IG15
ldr w3, [x19, #0x28]
- tbnz w3, #6, G_M17183_IG28
+ tbnz w3, #6, G_M17183_IG16
;; size=16 bbWeight=1 PerfScore 6.00
G_M17183_IG04: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldrb w3, [x19, #0x2E]
sub w23, w3, #3
cmp w23, #22
- bne G_M17183_IG07
+ bne G_M17183_IG06
;; size=16 bbWeight=1 PerfScore 5.00
G_M17183_IG05: ; bbWeight=0.57, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
uxtb w3, w21
@@ -84,18 +84,12 @@ G_M17183_IG05: ; bbWeight=0.57, gcrefRegs=580000 {x19 x20 x22}, byrefRegs
ldr x4, [x4]
blr x4
; gcrRegs -[x0-x2 x19-x20 x22]
- ;; size=36 bbWeight=0.57 PerfScore 4.24
-G_M17183_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ldr x23, [sp, #0x58]
- ldp x21, x22, [sp, #0x48]
- ldp x19, x20, [sp, #0x38]
- ldp fp, lr, [sp], #0x60
- ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
-G_M17183_IG07: ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, gcvars, byref, isz
+ b G_M17183_IG09
+ ;; size=40 bbWeight=0.57 PerfScore 4.80
+G_M17183_IG06: ; bbWeight=0.43, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19-x20 x22]
cmp w23, #43
- bhi G_M17183_IG06
+ bhi G_M17183_IG09
mov w2, w23
adr x0, [@RWD00]
ldr w0, [x0, x2, LSL #2]
@@ -103,7 +97,7 @@ G_M17183_IG07: ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=580
add x0, x0, x1
br x0
;; size=32 bbWeight=0.43 PerfScore 3.26
-G_M17183_IG08: ; bbWeight=0.43, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M17183_IG07: ; bbWeight=0.43, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
uxtb w2, w21
mov x0, x20
@@ -117,9 +111,9 @@ G_M17183_IG08: ; bbWeight=0.43, gcrefRegs=180000 {x19 x20}, byrefRegs=000
ldr x4, [x4]
blr x4
; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
+ b G_M17183_IG09
;; size=40 bbWeight=0.43 PerfScore 3.69
-G_M17183_IG09: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M17183_IG08: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs +[x19-x20]
mov x0, x20
; gcrRegs +[x0]
@@ -131,209 +125,44 @@ G_M17183_IG09: ; bbWeight=0.00, gcrefRegs=180000 {x19 x20}, byrefRegs=000
ldr x2, [x2]
blr x2
; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0.00 PerfScore 0.00
-G_M17183_IG10: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG11: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG12: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitAlternation|4(System.Text.RegularExpressions.RegexNode):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG13: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20 x22]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- mov x2, x22
- ; gcrRegs +[x2]
- movz x3, #0xD1FFAB1E // code for <unknown method>
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #1 LSL #32
- ldr x3, [x3]
- blr x3
- ; gcrRegs -[x0-x2 x19-x20 x22]
- b G_M17183_IG06
- ;; size=36 bbWeight=0 PerfScore 0.00
-G_M17183_IG14: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG15: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitBackreferenceConditional|6(System.Text.RegularExpressions.RegexNode):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG16: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitExpressionConditional|7(System.Text.RegularExpressions.RegexNode):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG17: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20 x22]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- mov x2, x22
- ; gcrRegs +[x2]
- movz x3, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitCapture|8(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode):this
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #1 LSL #32
- ldr x3, [x3]
- blr x3
- ; gcrRegs -[x0-x2 x19-x20 x22]
- b G_M17183_IG06
- ;; size=36 bbWeight=0 PerfScore 0.00
-G_M17183_IG18: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitPositiveLookaroundAssertion|10(System.Text.RegularExpressions.RegexNode):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG19: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitNegativeLookaroundAssertion|11(System.Text.RegularExpressions.RegexNode):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG20: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x20]
- ldr x0, [x20, #0x08]
- ; gcrRegs +[x0]
- ldr w1, [x20, #0x40]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0 x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG21: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19-x20]
- mov x0, x20
- ; gcrRegs +[x0]
- mov x1, x19
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitUpdateBumpalong|14(System.Text.RegularExpressions.RegexNode):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1 x19-x20]
- b G_M17183_IG06
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M17183_IG22: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=0.00 PerfScore 0.00
+G_M17183_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldr x23, [sp, #0x58]
+ ldp x21, x22, [sp, #0x48]
...
+0 (0.00%) : 74135.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)
@@ -50,7 +50,7 @@ G_M417_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
;; size=32 bbWeight=1 PerfScore 6.00
G_M417_IG02: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
- cbz w0, G_M417_IG13
+ cbz w0, G_M417_IG12
ldr w22, [x20, #0x28]
cmp w22, #1
bne G_M417_IG08
@@ -69,22 +69,17 @@ G_M417_IG03: ; bbWeight=0.58, gcrefRegs=180000 {x19 x20}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19]
- ;; size=36 bbWeight=0.58 PerfScore 7.21
-G_M417_IG04: ; bbWeight=0.69, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp x21, x22, [sp, #0x40]
- ldp x19, x20, [sp, #0x30]
- ldp fp, lr, [sp], #0x50
- ret lr
- ;; size=16 bbWeight=0.69 PerfScore 2.78
-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.58 PerfScore 7.78
+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.51
-G_M417_IG06: ; bbWeight=0.78, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.78, 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.78, 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.78 PerfScore 15.60
-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.82
-G_M417_IG08: ; bbWeight=0.42, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=0.10 PerfScore 0.71
+G_M417_IG07: ; bbWeight=0.69, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldp x21, x22, [sp, #0x40]
+ ldp x19, x20, [sp, #0x30]
+ ldp fp, lr, [sp], #0x50
+ ret lr
+ ;; size=16 bbWeight=0.69 PerfScore 2.78
+G_M417_IG08: ; bbWeight=0.42, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19 x21]
cmp w22, #17
- bhi G_M417_IG04
+ bhi G_M417_IG07
mov w0, w22
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -143,7 +143,7 @@ G_M417_IG09: ; bbWeight=0.02, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0
ldr wzr, [x0]
blr x3
; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0.02 PerfScore 0.21
G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
@@ -173,25 +173,9 @@ G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr wzr, [x0]
blr x3
; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=76 bbWeight=0 PerfScore 0.00
G_M417_IG11: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19 x21]
- ldr x1, [x21, #0x80]
- ; gcrRegs +[x1]
- ldrsb wzr, [x19]
- add x2, fp, #16 // [V14 tmp9]
- mov x0, x19
- ; gcrRegs +[x0]
- movz x3, #0xD1FFAB1E // code for <unknown method>
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #1 LSL #32
- ldr x3, [x3]
- blr x3
- ; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
- ;; size=40 bbWeight=0 PerfScore 0.00
-G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
ldr x1, [x21, #0x88]
; gcrRegs +[x1]
@@ -205,25 +189,25 @@ G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
-G_M417_IG13: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21]
ldr x0, [x20]
ldr x1, [x0, #0x38]
ldr x1, [x1]
ldr x1, [x1, #0x40]
- cbz x1, G_M417_IG14
- b G_M417_IG15
+ cbz x1, G_M417_IG13
+ b G_M417_IG14
;; size=24 bbWeight=0 PerfScore 0.00
-G_M417_IG14: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M417_IG13: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov x1, x0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M417_IG14: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
mov x0, x1
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
@@ -244,17 +228,17 @@ G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr x1, [x0, #0x38]
ldr x1, [x1]
ldr x2, [x1, #0x48]
- cbz x2, G_M417_IG16
+ cbz x2, G_M417_IG15
mov x0, x2
- b G_M417_IG17
+ b G_M417_IG16
;; size=76 bbWeight=0 PerfScore 0.00
-G_M417_IG16: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG15: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
;; size=16 bbWeight=0 PerfScore 0.00
-G_M417_IG17: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG16: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
mov x1, x22
; gcrRegs +[x1]
mov x2, x21
@@ -267,29 +251,45 @@ G_M417_IG17: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=
ldr x4, [x4]
blr x4
; gcrRegs -[x1-x3 x19 x21-x22]
- b G_M417_IG04
+ b G_M417_IG07
;; size=36 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x19 x21]
+ ldr x1, [x21, #0x80]
+ ; gcrRegs +[x1]
+ ldrsb wzr, [x19]
+ add x2, fp, #16 // [V14 tmp9]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ movz x3, #0xD1FFAB1E // code for <unknown method>
+ movk x3, #0xD1FFAB1E LSL #16
+ movk x3, #1 LSL #32
+ ldr x3, [x3]
+ blr x3
+ ; gcrRegs -[x0-x1 x19 x21]
+ b G_M417_IG07
+ ;; size=40 bbWeight=0 PerfScore 0.00
+RWD00 dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG05 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG10 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG11 - G_M417_IG02
dd G_M417_IG11 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG11 - G_M417_IG02
+ dd G_M417_IG11 - G_M417_IG02
+ dd G_M417_IG17 - G_M417_IG02
+ dd G_M417_IG17 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
-; Total bytes of code 608, prolog size 20, PerfScore 42.80, 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.28, 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%) : 66512.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -53,22 +53,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_IG09
+ cbz w0, G_M35244_IG24
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG09
+ bne G_M35244_IG24
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=4.00, 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=4.00 PerfScore 19.98
G_M35244_IG04: ; bbWeight=3.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG09
+ bhi G_M35244_IG24
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -79,7 +79,7 @@ G_M35244_IG04: ; bbWeight=3.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG05: ; bbWeight=3.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG08
+ cbz x20, G_M35244_IG17
;; size=8 bbWeight=3.00 PerfScore 11.99
G_M35244_IG06: ; bbWeight=2.48, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
@@ -90,65 +90,53 @@ G_M35244_IG06: ; bbWeight=2.48, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG10
+ cbz x0, G_M35244_IG08
;; size=24 bbWeight=2.48 PerfScore 9.91
G_M35244_IG07: ; bbWeight=0.89, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG11
+ b G_M35244_IG09
;; size=8 bbWeight=0.89 PerfScore 3.55
-G_M35244_IG08: ; bbWeight=0.52, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=1.59, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- mov w21, wzr
- b G_M35244_IG11
- ;; size=8 bbWeight=0.52 PerfScore 0.78
-G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x19-x20]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x30
- ret lr
- ;; size=16 bbWeight=0.00 PerfScore 0.01
-G_M35244_IG10: ; bbWeight=1.59, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
mov w21, #1
;; size=4 bbWeight=1.59 PerfScore 0.80
-G_M35244_IG11: ; bbWeight=3.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=3.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
sub w21, w21, #1
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG14
+ cbz x22, G_M35244_IG12
;; size=12 bbWeight=3.00 PerfScore 5.99
-G_M35244_IG12: ; bbWeight=1.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.50, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x1, x0
- beq G_M35244_IG14
+ beq G_M35244_IG12
;; size=24 bbWeight=1.50 PerfScore 8.99
-G_M35244_IG13: ; bbWeight=0.75, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.75, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
mov x22, xzr
; gcrRegs +[x22]
;; size=4 bbWeight=0.75 PerfScore 0.37
-G_M35244_IG14: ; bbWeight=3.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG19
+G_M35244_IG12: ; bbWeight=3.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ cbnz x22, G_M35244_IG18
;; size=4 bbWeight=3.00 PerfScore 3.00
-G_M35244_IG15: ; bbWeight=1.10, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.10, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG18
+ cbz x22, G_M35244_IG16
;; size=8 bbWeight=1.10 PerfScore 1.65
-G_M35244_IG16: ; bbWeight=0.55, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.55, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x1, [x22]
cmp x1, x0
- beq G_M35244_IG18
+ beq G_M35244_IG16
;; size=24 bbWeight=0.55 PerfScore 3.30
-G_M35244_IG17: ; bbWeight=0.27, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=0.27, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
mov x1, x20
; gcrRegs +[x1]
@@ -162,7 +150,7 @@ G_M35244_IG17: ; bbWeight=0.27, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x22, x0
; gcrRegs +[x22]
;; size=28 bbWeight=0.27 PerfScore 1.79
-G_M35244_IG18: ; bbWeight=1.10, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=1.10, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w0, [x22, #0x10]
cmp w21, w0
@@ -171,21 +159,26 @@ G_M35244_IG18: ; bbWeight=1.10, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
cmp w21, w1
- bhs G_M35244_IG24
+ bhs G_M35244_IG23
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
ldr x20, [x0, w21, UXTW #3]
; gcrRegs +[x20]
- b G_M35244_IG20
+ b G_M35244_IG19
;; size=40 bbWeight=1.10 PerfScore 18.14
-G_M35244_IG19: ; bbWeight=1.90, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x20]
+G_M35244_IG17: ; bbWeight=0.52, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
; byrRegs -[x0]
+ mov w21, wzr
+ b G_M35244_IG09
+ ;; size=8 bbWeight=0.52 PerfScore 0.78
+G_M35244_IG18: ; bbWeight=1.90, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x20] +[x22]
mov x20, x22
; gcrRegs +[x20]
;; size=4 bbWeight=1.90 PerfScore 0.95
-G_M35244_IG20: ; bbWeight=3.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=3.00, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
ldrb w0, [x20, #0x2E]
sub w1, w0, #26
@@ -195,13 +188,13 @@ G_M35244_IG20: ; bbWeight=3.00, gcrefRegs=180000 {x19 x20}, byrefRegs=000
ccmp w2, #1, z, hi
bls G_M35244_IG26
;; size=28 bbWeight=3.00 PerfScore 19.48
-G_M35244_IG21: ; bbWeight=3.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=3.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x19, x20
; gcrRegs +[x19]
b G_M35244_IG03
;; size=8 bbWeight=3.00 PerfScore 4.49
-G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20]
mov x0, x19
; gcrRegs +[x0]
@@ -210,19 +203,25 @@ G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #1 LSL #32
ldr x1, [x1]
;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
br x1
; gcr arg pop 0
;; size=16 bbWeight=1 PerfScore 4.00
-G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x19]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
+ ret lr
+ ;; size=16 bbWeight=0 PerfScore 0.00
+G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -247,7 +246,7 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
- beq G_M35244_IG21
+ beq G_M35244_IG20
;; size=24 bbWeight=0 PerfScore 0.00
G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
@@ -295,7 +294,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
blr x3
; gcrRegs -[x0 x2 x19 x21]
; gcr arg pop 0
- b G_M35244_IG21
+ b G_M35244_IG20
;; size=124 bbWeight=0 PerfScore 0.00
G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] +[x19]
@@ -337,7 +336,7 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blt G_M35244_IG29
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG09
+ beq G_M35244_IG24
b G_M35244_IG25
;; size=24 bbWeight=0 PerfScore 0.00
G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
@@ -359,7 +358,7 @@ G_M35244_IG32: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG09
+ cbz x19, G_M35244_IG24
b G_M35244_IG03
;; size=48 bbWeight=0 PerfScore 0.00
G_M35244_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -377,7 +376,7 @@ RWD00 dd G_M35244_IG28 - G_M35244_IG02
dd G_M35244_IG32 - G_M35244_IG02
dd G_M35244_IG31 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG09 - G_M35244_IG02
+ dd G_M35244_IG24 - G_M35244_IG02
dd G_M35244_IG25 - G_M35244_IG02
dd G_M35244_IG25 - G_M35244_IG02
dd G_M35244_IG25 - G_M35244_IG02
@@ -385,7 +384,7 @@ RWD00 dd G_M35244_IG28 - G_M35244_IG02
dd G_M35244_IG28 - G_M35244_IG02
...
+0 (0.00%) : 67756.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -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_IG14
+ cbz w0, G_M35244_IG25
ldr w1, [x19, #0x28]
mov w0, #0xD1FFAB1E
tst w1, w0
- bne G_M35244_IG14
+ bne G_M35244_IG25
;; 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_IG24
+ bls G_M35244_IG21
;; 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_IG14
+ bhi G_M35244_IG25
mov w1, w1
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -89,7 +89,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_IG28
+ cbnz x0, G_M35244_IG27
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
@@ -113,7 +113,7 @@ G_M35244_IG09: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs +[x23]
;; size=4 bbWeight=0.25 PerfScore 0.13
G_M35244_IG10: ; bbWeight=1.00, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
- cbz x23, G_M35244_IG16
+ cbz x23, G_M35244_IG28
;; size=4 bbWeight=1.00 PerfScore 1.00
G_M35244_IG11: ; bbWeight=1.00, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20]
@@ -123,7 +123,7 @@ G_M35244_IG11: ; 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_IG17
+ bls G_M35244_IG14
;; size=28 bbWeight=1.00 PerfScore 6.50
G_M35244_IG12: ; bbWeight=1.00, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -136,66 +136,18 @@ G_M35244_IG13: ; bbWeight=0.29, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov w21, wzr
b G_M35244_IG07
;; size=8 bbWeight=0.29 PerfScore 0.43
-G_M35244_IG14: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x19-x20]
- ldr x23, [sp, #0x38]
- ldp x21, x22, [sp, #0x28]
- ldp x19, x20, [sp, #0x18]
- ldp fp, lr, [sp], #0x40
- ret lr
- ;; size=20 bbWeight=0.02 PerfScore 0.12
-G_M35244_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19]
- mov x0, x19
- ; gcrRegs +[x0]
- mov w1, wzr
- movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:Child(int):System.Text.RegularExpressions.RegexNode:this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x19]
- ; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- b G_M35244_IG03
- ;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG16: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0] +[x20]
- mov x1, x20
- ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- bl CORINFO_HELP_CHKCASTCLASS
- ; gcrRegs -[x1 x20] +[x0]
- ; gcr arg pop 0
- ldr w1, [x0, #0x10]
- cmp w22, w1
- bhs G_M35244_IG26
- ldr x0, [x0, #0x08]
- ldr w1, [x0, #0x08]
- cmp w22, w1
- bhs G_M35244_IG27
- add x0, x0, #16
- ; gcrRegs -[x0]
- ; byrRegs +[x0]
- ldr x23, [x0, w22, UXTW #3]
- ; gcrRegs +[x23]
- b G_M35244_IG11
- ;; size=60 bbWeight=0 PerfScore 0.00
-G_M35244_IG17: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[x0]
+G_M35244_IG14: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x20] +[x23]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG18
+ cbz x0, G_M35244_IG15
ldr x0, [x19, #0x18]
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
beq G_M35244_IG12
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG18: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -243,7 +195,7 @@ G_M35244_IG18: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {
; gcr arg pop 0
b G_M35244_IG12
;; size=124 bbWeight=0 PerfScore 0.00
-G_M35244_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x23] +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -256,9 +208,9 @@ G_M35244_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
sxtw w20, w0
mov w21, #1
- b G_M35244_IG21
+ b G_M35244_IG18
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG17: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
mov w1, w21
@@ -278,22 +230,22 @@ G_M35244_IG20: ; 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_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG20
+ blt G_M35244_IG17
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG14
- b G_M35244_IG15
+ beq G_M35244_IG25
+ b G_M35244_IG26
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG22: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; 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_IG23: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
- beq G_M35244_IG15
+ beq G_M35244_IG26
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this
@@ -305,14 +257,14 @@ G_M35244_IG23: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG14
+ cbz x19, G_M35244_IG25
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_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this
@@ -320,7 +272,7 @@ G_M35244_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #1 LSL #32
ldr x1, [x1]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=0, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -328,7 +280,7 @@ G_M35244_IG25: ; bbWeight=0, epilog, nogc, extend
br x1
; gcr arg pop 0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; 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
@@ -338,29 +290,76 @@ G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; 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_IG28: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x0 x19-x20]
+G_M35244_IG25: ; 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 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
+ movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:Child(int):System.Text.RegularExpressions.RegexNode:this
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #1 LSL #32
+ ldr x2, [x2]
+ blr x2
+ ; gcrRegs -[x19]
+ ; gcr arg pop 0
+ mov x19, x0
+ ; gcrRegs +[x19]
+ b G_M35244_IG03
+ ;; size=36 bbWeight=0 PerfScore 0.00
+G_M35244_IG27: ; 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
...
+0 (0.00%) : 72628.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)
@@ -69,22 +69,17 @@ G_M417_IG03: ; bbWeight=0.59, gcrefRegs=180000 {x19 x20}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19]
- ;; size=36 bbWeight=0.59 PerfScore 7.35
-G_M417_IG04: ; bbWeight=0.69, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp x21, x22, [sp, #0x40]
- ldp x19, x20, [sp, #0x30]
- ldp fp, lr, [sp], #0x50
- ret lr
- ;; size=16 bbWeight=0.69 PerfScore 2.76
-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.94
+G_M417_IG04: ; bbWeight=0.10, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21]
mov x22, x20
; gcrRegs +[x22]
ldr w0, [x20, #0x28]
cmp w0, #2
- bne G_M417_IG07
+ bne G_M417_IG06
;; size=16 bbWeight=0.10 PerfScore 0.52
-G_M417_IG06: ; bbWeight=0.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.88
-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.82
-G_M417_IG08: ; bbWeight=0.41, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=0.10 PerfScore 0.72
+G_M417_IG07: ; bbWeight=0.69, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldp x21, x22, [sp, #0x40]
+ ldp x19, x20, [sp, #0x30]
+ ldp fp, lr, [sp], #0x50
+ ret lr
+ ;; size=16 bbWeight=0.69 PerfScore 2.76
+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]
@@ -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 42.92, 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.41, 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:
coreclr_tests.run.osx.arm64.checked.mch
+0 (0.00%) : 484033.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -53,11 +53,11 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
- cbz w0, G_M35244_IG21
+ cbz w0, G_M35244_IG32
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG21
+ bne G_M35244_IG32
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
@@ -68,7 +68,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG21
+ bhi G_M35244_IG32
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -90,7 +90,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG23
+ cbz x0, G_M35244_IG21
;; size=24 bbWeight=1.55 PerfScore 6.18
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
@@ -150,12 +150,12 @@ G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcrRegs -[x0]
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]
@@ -171,7 +171,7 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
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
; gcrRegs -[x19]
@@ -201,33 +201,26 @@ G_M35244_IG20: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=480
; gcrRegs +[x20]
b G_M35244_IG16
;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M35244_IG21: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x19-x20 x22]
- 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_IG22: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
- mov w21, wzr
- b G_M35244_IG08
- ;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
mov w21, #1
b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov w21, wzr
+ b G_M35244_IG08
+ ;; size=8 bbWeight=0.45 PerfScore 0.68
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
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
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -275,7 +268,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
b G_M35244_IG17
;; 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]
@@ -288,9 +281,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
sxtw w20, w0
mov w21, #1
- b G_M35244_IG28
+ b G_M35244_IG27
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
mov w1, w21
@@ -310,19 +303,19 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
add w21, w21, #1
;; size=56 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG27
+ blt G_M35244_IG26
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG21
+ beq G_M35244_IG32
b G_M35244_IG33
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; 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_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
beq G_M35244_IG33
@@ -337,10 +330,10 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG21
+ cbz x19, G_M35244_IG32
b G_M35244_IG03
;; size=48 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
@@ -350,11 +343,17 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; 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_IG33: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -370,20 +369,20 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x19]
b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG26 - G_M35244_IG02
+RWD00 dd G_M35244_IG25 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG30 - G_M35244_IG02
dd G_M35244_IG29 - G_M35244_IG02
+ dd G_M35244_IG28 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG21 - G_M35244_IG02
+ dd G_M35244_IG32 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
- dd G_M35244_IG26 - G_M35244_IG02
- dd G_M35244_IG26 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
-; Total bytes of code 768, prolog size 20, PerfScore 129.49, instruction count 192, allocated bytes for code 768 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 768, prolog size 20, PerfScore 126.83, instruction count 192, allocated bytes for code 768 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
+0 (0.00%) : 319970.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -53,11 +53,11 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
- cbz w0, G_M35244_IG21
+ cbz w0, G_M35244_IG32
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG21
+ bne G_M35244_IG32
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
@@ -68,7 +68,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG21
+ bhi G_M35244_IG32
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -90,7 +90,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG23
+ cbz x0, G_M35244_IG21
;; size=24 bbWeight=1.55 PerfScore 6.18
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
@@ -150,12 +150,12 @@ G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcrRegs -[x0]
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]
@@ -171,7 +171,7 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
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
; gcrRegs -[x19]
@@ -201,33 +201,26 @@ G_M35244_IG20: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=480
; gcrRegs +[x20]
b G_M35244_IG16
;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M35244_IG21: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x19-x20 x22]
- 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_IG22: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
- mov w21, wzr
- b G_M35244_IG08
- ;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
mov w21, #1
b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov w21, wzr
+ b G_M35244_IG08
+ ;; size=8 bbWeight=0.45 PerfScore 0.68
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
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
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -275,7 +268,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
b G_M35244_IG17
;; 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]
@@ -288,9 +281,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
sxtw w20, w0
mov w21, #1
- b G_M35244_IG28
+ b G_M35244_IG27
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
mov w1, w21
@@ -310,19 +303,19 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
add w21, w21, #1
;; size=56 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG27
+ blt G_M35244_IG26
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG21
+ beq G_M35244_IG32
b G_M35244_IG33
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; 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_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
beq G_M35244_IG33
@@ -337,10 +330,10 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG21
+ cbz x19, G_M35244_IG32
b G_M35244_IG03
;; size=48 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
@@ -350,11 +343,17 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; 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_IG33: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -370,20 +369,20 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x19]
b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG26 - G_M35244_IG02
+RWD00 dd G_M35244_IG25 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG30 - G_M35244_IG02
dd G_M35244_IG29 - G_M35244_IG02
+ dd G_M35244_IG28 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG21 - G_M35244_IG02
+ dd G_M35244_IG32 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
- dd G_M35244_IG26 - G_M35244_IG02
- dd G_M35244_IG26 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
-; Total bytes of code 768, prolog size 20, PerfScore 129.49, instruction count 192, allocated bytes for code 768 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 768, prolog size 20, PerfScore 126.83, instruction count 192, allocated bytes for code 768 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
+0 (0.00%) : 340438.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -20,10 +20,10 @@
; V08 loc7 [V08,T19] ( 5, 0 ) int -> x21
; V09 loc8 [V09,T20] ( 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,T18] ( 5, 0 ) ref -> x20 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T18] ( 5, 0 ) ref -> x21 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T15] ( 4, 4.00) int -> x21 "Inline return value spill temp"
; V13 tmp3 [V13,T14] ( 3, 4.18) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T11] ( 6, 6 ) ref -> x22 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T11] ( 6, 6 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T07] ( 2, 8 ) ref -> x22 "CASTCLASS eval op1"
;* V16 tmp6 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V17 tmp7 [V17,T13] ( 3, 4.72) ref -> x22 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
@@ -53,22 +53,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_IG09
+ cbz w0, G_M35244_IG32
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG09
+ bne G_M35244_IG32
;; size=24 bbWeight=1 PerfScore 7.00
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_IG19
;; size=16 bbWeight=3 PerfScore 15.00
G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG09
+ bhi G_M35244_IG32
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -84,7 +84,7 @@ G_M35244_IG06: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
sub w21, w21, #1
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG11
+ cbz x22, G_M35244_IG09
;; size=12 bbWeight=2 PerfScore 4.00
G_M35244_IG07: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22]
@@ -92,42 +92,31 @@ G_M35244_IG07: ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x1, x0
- beq G_M35244_IG11
+ beq G_M35244_IG09
;; size=24 bbWeight=1 PerfScore 6.00
G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- b G_M35244_IG10
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG09: ; bbWeight=0.67, 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.67 PerfScore 2.67
-G_M35244_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
mov x22, xzr
; gcrRegs +[x22]
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M35244_IG11: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG23
+G_M35244_IG09: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ cbnz x22, G_M35244_IG21
;; size=4 bbWeight=2 PerfScore 2.00
-G_M35244_IG12: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG15
+ cbz x22, G_M35244_IG13
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG13: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x1, [x22]
cmp x1, x0
- beq G_M35244_IG15
+ beq G_M35244_IG13
;; size=24 bbWeight=0.64 PerfScore 3.84
-G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG12: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
mov x1, x20
; gcrRegs +[x1]
@@ -141,44 +130,46 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x22, x0
; gcrRegs +[x22]
;; size=28 bbWeight=0.32 PerfScore 2.08
-G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w0, [x22, #0x10]
cmp w21, w0
- bhs G_M35244_IG32
+ bhs G_M35244_IG30
ldr x0, [x22, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
cmp w21, w1
- bhs G_M35244_IG33
+ bhs G_M35244_IG31
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
- ldr x22, [x0, w21, UXTW #3]
+ ldr x20, [x0, w21, UXTW #3]
+ ; gcrRegs +[x20]
;; size=36 bbWeight=1.28 PerfScore 19.84
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x22]
; byrRegs -[x0]
- ldrb w0, [x22, #0x2E]
+ 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_IG25
+ bls G_M35244_IG23
;; size=28 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
- mov x19, x22
+ mov x19, x20
; gcrRegs +[x19]
b G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-G_M35244_IG18: ; bbWeight=2.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22]
+G_M35244_IG16: ; bbWeight=2.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x20]
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG24
+ cbz x20, G_M35244_IG22
;; size=8 bbWeight=2.00 PerfScore 8.00
-G_M35244_IG19: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -189,11 +180,11 @@ G_M35244_IG19: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcr arg pop 0
cbz x0, G_M35244_IG05
;; size=24 bbWeight=1.55 PerfScore 6.18
-G_M35244_IG20: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG18: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
b G_M35244_IG06
;; size=8 bbWeight=1.09 PerfScore 4.36
-G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
mov x0, x19
; gcrRegs +[x0]
@@ -202,50 +193,51 @@ G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #1 LSL #32
ldr x1, [x1]
;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG20: ; 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.72, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG21: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x22]
- b G_M35244_IG16
- ;; size=4 bbWeight=0.72 PerfScore 0.72
-G_M35244_IG24: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x22] +[x20]
+ mov x20, x22
+ ; gcrRegs +[x20]
+ b G_M35244_IG14
+ ;; size=8 bbWeight=0.72 PerfScore 1.08
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
mov w21, wzr
b G_M35244_IG06
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x20] +[x22]
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG26
+ 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_IG15
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x20, x0
- ; gcrRegs +[x20]
- ldr w0, [x22, #0x28]
+ mov x21, x0
+ ; gcrRegs +[x21]
+ ldr w0, [x20, #0x28]
; gcrRegs -[x0]
mov w1, #32
- strb w1, [x20, #0x2E]
- str w0, [x20, #0x28]
- mov x0, x20
+ strb w1, [x21, #0x2E]
+ str w0, [x21, #0x28]
+ mov x0, x21
; gcrRegs +[x0]
- mov x1, x22
+ mov x1, x20
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:AddChild(System.Text.RegularExpressions.RegexNode):this
movk x2, #0xD1FFAB1E LSL #16
@@ -266,19 +258,19 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {
sub w1, w0, #1
mov x0, x19
; gcrRegs +[x0]
- mov x2, x20
+ mov x2, x21
...
+0 (0.00%) : 508471.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -53,11 +53,11 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
- cbz w0, G_M35244_IG21
+ cbz w0, G_M35244_IG32
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG21
+ bne G_M35244_IG32
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
@@ -68,7 +68,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG21
+ bhi G_M35244_IG32
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -90,7 +90,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG23
+ cbz x0, G_M35244_IG21
;; size=24 bbWeight=1.55 PerfScore 6.18
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
@@ -146,12 +146,12 @@ G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcrRegs -[x0]
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]
@@ -167,7 +167,7 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
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
; gcrRegs -[x19]
@@ -197,33 +197,26 @@ G_M35244_IG20: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=480
; gcrRegs +[x20]
b G_M35244_IG16
;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M35244_IG21: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x19-x20 x22]
- 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_IG22: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
- mov w21, wzr
- b G_M35244_IG08
- ;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
mov w21, #1
b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov w21, wzr
+ b G_M35244_IG08
+ ;; size=8 bbWeight=0.45 PerfScore 0.68
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
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
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -271,7 +264,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
b G_M35244_IG17
;; 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]
@@ -284,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
@@ -306,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
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG27
+ blt G_M35244_IG26
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG21
+ beq G_M35244_IG32
b G_M35244_IG33
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; 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_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
beq G_M35244_IG33
@@ -333,10 +326,10 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG21
+ cbz x19, G_M35244_IG32
b G_M35244_IG03
;; size=48 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
@@ -346,11 +339,17 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; 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_IG33: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -366,20 +365,20 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x19]
b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG26 - G_M35244_IG02
+RWD00 dd G_M35244_IG25 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG30 - G_M35244_IG02
dd G_M35244_IG29 - G_M35244_IG02
+ dd G_M35244_IG28 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG21 - G_M35244_IG02
+ dd G_M35244_IG32 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
- dd G_M35244_IG26 - G_M35244_IG02
- dd G_M35244_IG26 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
-; Total bytes of code 752, prolog size 20, PerfScore 128.05, instruction count 188, allocated bytes for code 752 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 752, prolog size 20, PerfScore 125.39, instruction count 188, allocated bytes for code 752 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
+0 (0.00%) : 474404.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -53,11 +53,11 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
- cbz w0, G_M35244_IG21
+ cbz w0, G_M35244_IG32
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG21
+ bne G_M35244_IG32
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
@@ -68,7 +68,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG21
+ bhi G_M35244_IG32
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -90,7 +90,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG23
+ cbz x0, G_M35244_IG21
;; size=24 bbWeight=1.55 PerfScore 6.18
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
@@ -150,12 +150,12 @@ G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcrRegs -[x0]
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]
@@ -171,7 +171,7 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
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
; gcrRegs -[x19]
@@ -201,33 +201,26 @@ G_M35244_IG20: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=480
; gcrRegs +[x20]
b G_M35244_IG16
;; size=8 bbWeight=0.72 PerfScore 1.08
-G_M35244_IG21: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x19-x20 x22]
- 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_IG22: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
- mov w21, wzr
- b G_M35244_IG08
- ;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
mov w21, #1
b G_M35244_IG08
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ mov w21, wzr
+ b G_M35244_IG08
+ ;; size=8 bbWeight=0.45 PerfScore 0.68
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
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
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
@@ -275,7 +268,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
b G_M35244_IG17
;; 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]
@@ -288,9 +281,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
sxtw w20, w0
mov w21, #1
- b G_M35244_IG28
+ b G_M35244_IG27
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
mov w1, w21
@@ -310,19 +303,19 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
add w21, w21, #1
;; size=56 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG27
+ blt G_M35244_IG26
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG21
+ beq G_M35244_IG32
b G_M35244_IG33
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; 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_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
beq G_M35244_IG33
@@ -337,10 +330,10 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG21
+ cbz x19, G_M35244_IG32
b G_M35244_IG03
;; size=48 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19]
movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
movk x0, #0xD1FFAB1E LSL #16
@@ -350,11 +343,17 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; 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_IG33: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -370,20 +369,20 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcrRegs +[x19]
b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG26 - G_M35244_IG02
+RWD00 dd G_M35244_IG25 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG30 - G_M35244_IG02
dd G_M35244_IG29 - G_M35244_IG02
+ dd G_M35244_IG28 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG21 - G_M35244_IG02
+ dd G_M35244_IG32 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
dd G_M35244_IG33 - G_M35244_IG02
- dd G_M35244_IG26 - G_M35244_IG02
- dd G_M35244_IG26 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
-; Total bytes of code 768, prolog size 20, PerfScore 129.49, instruction count 192, allocated bytes for code 768 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 768, prolog size 20, PerfScore 126.83, instruction count 192, allocated bytes for code 768 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
+0 (0.00%) : 486132.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -20,10 +20,10 @@
; V08 loc7 [V08,T19] ( 5, 0 ) int -> x21
; V09 loc8 [V09,T20] ( 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,T18] ( 5, 0 ) ref -> x20 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T18] ( 5, 0 ) ref -> x21 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T15] ( 4, 4.00) int -> x21 "Inline return value spill temp"
; V13 tmp3 [V13,T14] ( 3, 4.18) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T11] ( 6, 6 ) ref -> x22 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T11] ( 6, 6 ) ref -> x20 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T07] ( 2, 8.00) ref -> x22 "CASTCLASS eval op1"
;* V16 tmp6 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V17 tmp7 [V17,T13] ( 3, 4.72) ref -> x22 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
@@ -53,22 +53,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_IG09
+ cbz w0, G_M35244_IG32
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG09
+ bne G_M35244_IG32
;; size=24 bbWeight=1 PerfScore 7.00
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_IG19
;; size=16 bbWeight=3 PerfScore 15.00
G_M35244_IG04: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG09
+ bhi G_M35244_IG32
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -84,7 +84,7 @@ G_M35244_IG06: ; bbWeight=2.00, gcrefRegs=180000 {x19 x20}, byrefRegs=000
sub w21, w21, #1
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG11
+ cbz x22, G_M35244_IG09
;; size=12 bbWeight=2.00 PerfScore 4.00
G_M35244_IG07: ; bbWeight=1.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22]
@@ -92,42 +92,31 @@ G_M35244_IG07: ; bbWeight=1.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x1, x0
- beq G_M35244_IG11
+ beq G_M35244_IG09
;; size=24 bbWeight=1.00 PerfScore 6.00
G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
- b G_M35244_IG10
- ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG09: ; bbWeight=0.67, 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.67 PerfScore 2.67
-G_M35244_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
mov x22, xzr
; gcrRegs +[x22]
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M35244_IG11: ; bbWeight=2.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG23
+G_M35244_IG09: ; bbWeight=2.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ cbnz x22, G_M35244_IG21
;; size=4 bbWeight=2.00 PerfScore 2.00
-G_M35244_IG12: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG15
+ cbz x22, G_M35244_IG13
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG13: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=0.64, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x1, [x22]
cmp x1, x0
- beq G_M35244_IG15
+ beq G_M35244_IG13
;; size=24 bbWeight=0.64 PerfScore 3.84
-G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG12: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
mov x1, x20
; gcrRegs +[x1]
@@ -141,44 +130,46 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x22, x0
; gcrRegs +[x22]
;; size=28 bbWeight=0.32 PerfScore 2.08
-G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.28, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w0, [x22, #0x10]
cmp w21, w0
- bhs G_M35244_IG32
+ bhs G_M35244_IG30
ldr x0, [x22, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
cmp w21, w1
- bhs G_M35244_IG33
+ bhs G_M35244_IG31
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
- ldr x22, [x0, w21, UXTW #3]
+ ldr x20, [x0, w21, UXTW #3]
+ ; gcrRegs +[x20]
;; size=36 bbWeight=1.28 PerfScore 19.84
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x22]
; byrRegs -[x0]
- ldrb w0, [x22, #0x2E]
+ 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_IG25
+ bls G_M35244_IG23
;; size=28 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
- mov x19, x22
+ mov x19, x20
; gcrRegs +[x19]
b G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-G_M35244_IG18: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22]
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x20]
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG24
+ cbz x20, G_M35244_IG22
;; size=8 bbWeight=2 PerfScore 8.00
-G_M35244_IG19: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -189,11 +180,11 @@ G_M35244_IG19: ; bbWeight=1.55, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcr arg pop 0
cbz x0, G_M35244_IG05
;; size=24 bbWeight=1.55 PerfScore 6.18
-G_M35244_IG20: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG18: ; bbWeight=1.09, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
b G_M35244_IG06
;; size=8 bbWeight=1.09 PerfScore 4.36
-G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
mov x0, x19
; gcrRegs +[x0]
@@ -202,50 +193,51 @@ G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #1 LSL #32
ldr x1, [x1]
;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG20: ; 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.72, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG21: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x22]
- b G_M35244_IG16
- ;; size=4 bbWeight=0.72 PerfScore 0.72
-G_M35244_IG24: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x22] +[x20]
+ mov x20, x22
+ ; gcrRegs +[x20]
+ b G_M35244_IG14
+ ;; size=8 bbWeight=0.72 PerfScore 1.08
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
mov w21, wzr
b G_M35244_IG06
;; size=8 bbWeight=0.45 PerfScore 0.68
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x20] +[x22]
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG26
+ 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_IG15
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcr arg pop 0
- mov x20, x0
- ; gcrRegs +[x20]
- ldr w0, [x22, #0x28]
+ mov x21, x0
+ ; gcrRegs +[x21]
+ ldr w0, [x20, #0x28]
; gcrRegs -[x0]
mov w1, #32
- strb w1, [x20, #0x2E]
- str w0, [x20, #0x28]
- mov x0, x20
+ strb w1, [x21, #0x2E]
+ str w0, [x21, #0x28]
+ mov x0, x21
; gcrRegs +[x0]
- mov x1, x22
+ mov x1, x20
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:AddChild(System.Text.RegularExpressions.RegexNode):this
movk x2, #0xD1FFAB1E LSL #16
@@ -266,19 +258,19 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {
sub w1, w0, #1
mov x0, x19
; gcrRegs +[x0]
- mov x2, x20
+ mov x2, x21
...
libraries_tests.run.osx.arm64.Release.mch
-12 (-0.46%) : 386396.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
@@ -97,27 +97,27 @@ G_M38617_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x19]
;; size=40 bbWeight=1 PerfScore 8.00
G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
- cbz x19, G_M38617_IG18
+ cbz x19, G_M38617_IG37
ldr x0, [x20]
movz x21, #0xD1FFAB1E
movk x21, #0xD1FFAB1E LSL #16
movk x21, #2 LSL #32
cmp x0, x21
- bne G_M38617_IG20
+ bne G_M38617_IG39
ldr x0, [x20, #0x10]
; gcrRegs +[x0]
ldr x1, [x0]
add x2, x21, #0xD1FFAB1E
cmp x1, x2
- bne G_M38617_IG19
+ bne G_M38617_IG38
ldr w22, [x0, #0x0C]
;; size=52 bbWeight=1 PerfScore 18.00
G_M38617_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
cmp w22, #2
- bgt G_M38617_IG22
+ bgt G_M38617_IG12
cmp w22, #1
- bne G_M38617_IG21
+ bne G_M38617_IG11
mov x0, x19
; gcrRegs +[x0]
bl <unknown method>
@@ -134,7 +134,7 @@ G_M38617_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
ldr x1, [x0]
add x2, x21, #0xD1FFAB1E
cmp x1, x2
- bne G_M38617_IG15
+ bne G_M38617_IG10
;; size=64 bbWeight=1 PerfScore 15.50
G_M38617_IG04: ; bbWeight=0.96, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, byref
ldr w20, [x0, #0x0C]
@@ -142,11 +142,11 @@ G_M38617_IG04: ; bbWeight=0.96, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=
G_M38617_IG05: ; bbWeight=1, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
cmp w20, #1
- beq G_M38617_IG37
+ beq G_M38617_IG34
cmp w20, #2
- beq G_M38617_IG36
+ beq G_M38617_IG33
sub w20, w20, #12
- cbnz w20, G_M38617_IG30
+ cbnz w20, G_M38617_IG27
;; size=24 bbWeight=1 PerfScore 4.50
G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V00}
@@ -154,7 +154,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
cmp x23, x0
- beq G_M38617_IG33
+ beq G_M38617_IG30
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #2 LSL #32
@@ -170,7 +170,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000
; gcrRegs +[x14]
ldr x15, [x14, #0x70]
; gcrRegs +[x15]
- cbz x15, G_M38617_IG34
+ cbz x15, G_M38617_IG31
add x14, x23, #8
; gcrRegs -[x14]
; byrRegs +[x14]
@@ -213,7 +213,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=880000
ldr w0, [x0, #0x08]
; gcrRegs -[x0]
cmp w1, w0
- bge G_M38617_IG35
+ bge G_M38617_IG32
;; size=156 bbWeight=1 PerfScore 36.50
G_M38617_IG07: ; bbWeight=1, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x08]
@@ -227,95 +227,19 @@ G_M38617_IG07: ; bbWeight=1, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2 x23]
; gcr arg pop 0
- b G_M38617_IG16
- ;; size=32 bbWeight=1 PerfScore 10.50
-G_M38617_IG08: ; bbWeight=0, gcVars=0000000000280100 {V00 V06 V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x19]
- ; GC ptr vars +{V00 V06 V08 V09 V19 V21}
- b G_M38617_IG10
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M38617_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x18] // [V09 loc6]
+ ;; size=28 bbWeight=1 PerfScore 9.50
+G_M38617_IG08: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ mov x0, x19
; gcrRegs +[x0]
- movz x11, #0xD1FFAB1E // code for <unknown method>
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #2 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, #2 LSL #32
- ldr x1, [x1]
- blr x1
- ; gcr arg pop 0
- mov x1, x0
- ; gcrRegs +[x1]
- ldr x0, [fp, #0x20] // [V06 loc3]
- movz x2, #0xD1FFAB1E // code for System.Xml.Xsl.Runtime.XmlQuerySequence`1[System.__Canon]:Add(System.__Canon):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #2 LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1]
- ; gcr arg pop 0
- ;; size=72 bbWeight=0 PerfScore 0.00
-G_M38617_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x18] // [V09 loc6]
- ; gcrRegs +[x0]
- movz x11, #0xD1FFAB1E // code for <unknown method>
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #2 LSL #32
- ldr x1, [x11]
- blr x1
- ; gcrRegs -[x0]
- ; gcr arg pop 0
- cbnz w0, G_M38617_IG09
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M38617_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x30] // [V67 PSPSym]
- bl G_M38617_IG40
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M38617_IG12: ; bbWeight=0, nogc, extend
- nop
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M38617_IG13: ; bbWeight=0, gcVars=0000000000080100 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars -{V08 V09 V19 V21}
- ldr x0, [fp, #0x20] // [V06 loc3]
- ; gcrRegs +[x0]
- mov x19, x0
- ; gcrRegs +[x19]
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M38617_IG14: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- ; GC ptr vars -{V06}
- mov x1, x19
- ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #2 LSL #32
- bl CORINFO_HELP_CHKCASTCLASS
- ; gcrRegs -[x1 x19] +[x0]
- ; gcr arg pop 0
- ldr x2, [fp, #0x28] // [V00 this]
- ; gcrRegs +[x2]
- ldr x1, [x2, #0x68]
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for System.Xml.Xsl.Runtime.XmlQueryNodeSequence:DocOrderDistinct(System.Collections.Generic.IComparer`1[System.Xml.XPath.XPathNavigator]):System.Xml.Xsl.Runtime.XmlQueryNodeSequence:this
- ; gcrRegs -[x2]
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #2 LSL #32
- ldr x2, [x2]
- ldr wzr, [x0]
- ; GC ptr vars -{V00}
- blr x2
- ; gcrRegs -[x1]
- ; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- b G_M38617_IG16
- ;; size=60 bbWeight=0 PerfScore 0.00
-G_M38617_IG15: ; bbWeight=0.04, gcVars=0000000000000100 {V00}, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=4 bbWeight=1 PerfScore 0.50
+G_M38617_IG09: ; bbWeight=1, epilog, nogc, extend
+ ldr x23, [sp, #0x58]
+ ldp x21, x22, [sp, #0x48]
+ ldp x19, x20, [sp, #0x38]
+ ldp fp, lr, [sp], #0x60
+ ret lr
+ ;; size=20 bbWeight=1 PerfScore 6.00
+G_M38617_IG10: ; bbWeight=0.04, gcVars=0000000000000100 {V00}, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x23]
; GC ptr vars +{V00 V08}
ldr x1, [x0]
@@ -327,97 +251,10 @@ G_M38617_IG15: ; bbWeight=0.04, gcVars=0000000000000100 {V00}, gcrefRegs=
sxtw w20, w0
b G_M38617_IG05
;; size=24 bbWeight=0.04 PerfScore 0.46
-G_M38617_IG16: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x23]
- ; GC ptr vars -{V00 V08}
- mov x0, x19
- ; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 0.50
-G_M38617_IG17: ; bbWeight=1, epilog, nogc, extend
- ldr x23, [sp, #0x58]
- ldp x21, x22, [sp, #0x48]
- ldp x19, x20, [sp, #0x38]
- ldp fp, lr, [sp], #0x60
- ret lr
- ;; size=20 bbWeight=1 PerfScore 6.00
-G_M38617_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19]
- movz x0, #0xD1FFAB1E // code for <unknown method>
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #2 LSL #32
- ldr x0, [x0]
- blr x0
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- mov x22, x0
- ; gcrRegs +[x22]
- movz x0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #2 LSL #32
- mov x1, #1
- bl CORINFO_HELP_NEWARR_1_OBJ
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- mov x21, x0
- ; gcrRegs +[x21]
- movz x0, #8
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #1 LSL #32
- str x0, [x21, #0x10]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #2 LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- mov x1, x22
- ; gcrRegs +[x1]
- mov x2, x21
- ; gcrRegs +[x2]
- movz x3, #0xD1FFAB1E // code for <unknown method>
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #2 LSL #32
...
-4 (-0.45%) : 388505.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -20,15 +20,15 @@
; V08 loc7 [V08,T30] ( 5, 0 ) int -> x21
; V09 loc8 [V09,T31] ( 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,T18] ( 5, 0.83) ref -> x20 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T18] ( 5, 0.83) ref -> x21 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T14] ( 4, 3.33) int -> x21 "Inline return value spill temp"
; V13 tmp3 [V13,T15] ( 3, 2.91) ref -> x0 class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T12] ( 6, 5.17) ref -> x22 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T12] ( 6, 5.17) ref -> x20 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T07] ( 2, 6.67) ref -> x22 "CASTCLASS eval op1"
;* V16 tmp6 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V17 tmp7 [V17,T13] ( 3, 4.01) ref -> x22 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
; V18 tmp8 [V18,T01] ( 4, 9.26) int -> x21 "Inlining Arg"
-; V19 tmp9 [V19,T10] ( 3, 5.93) ref -> x1 class-hnd "Inlining Arg" <<unknown class>>
+; V19 tmp9 [V19,T10] ( 3, 5.93) ref -> x22 class-hnd "Inlining Arg" <<unknown class>>
;* V20 tmp10 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
; V21 tmp11 [V21,T26] ( 2, 0.33) int -> x0 "Inlining Arg"
;* V22 tmp12 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -37,14 +37,14 @@
;* V25 tmp15 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V26 tmp16 [V26,T24] ( 3, 0.40) ref -> x19 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
; V27 tmp17 [V27,T22] ( 3, 0.59) ref -> x19 class-hnd "Inlining Arg" <<unknown class>>
-; V28 tmp18 [V28,T11] ( 3, 5.93) ref -> x1 "arr expr"
+; V28 tmp18 [V28,T11] ( 3, 5.93) ref -> x0 "arr expr"
; V29 tmp19 [V29,T27] ( 2, 0.33) int -> x1 "argument with side effect"
-; V30 tmp20 [V30,T23] ( 3, 0.59) ref -> x1 "arr expr"
+; V30 tmp20 [V30,T23] ( 3, 0.59) ref -> x0 "arr expr"
; V31 tmp21 [V31,T08] ( 5, 6.25) ref -> x22 "CastInstOf QMark result"
; V32 tmp22 [V32,T21] ( 5, 0.62) ref -> x19 "CastInstOf QMark result"
; V33 cse0 [V33,T04] ( 10, 7.86) ref -> x20 multi-def "CSE - aggressive"
; V34 cse1 [V34,T28] ( 3, 0.25) ref -> x0 "CSE - conservative"
-; V35 rat0 [V35,T05] ( 5, 7.41) ref -> x1 "replacement local"
+; V35 rat0 [V35,T05] ( 5, 7.41) ref -> x22 "replacement local"
; V36 rat1 [V36,T16] ( 3, 2.47) long -> x0 "CSE for expectedClsNode"
; V37 rat2 [V37,T19] ( 5, 0.74) ref -> x19 "replacement local"
; V38 rat3 [V38,T29] ( 3, 0.25) long -> x0 "CSE for expectedClsNode"
@@ -63,22 +63,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_IG19
+ cbz w0, G_M35244_IG38
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG19
+ bne G_M35244_IG38
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=2.83, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
sub w1, w0, #3
cmp w1, #5
- bls G_M35244_IG32
+ bls G_M35244_IG30
;; size=16 bbWeight=2.83 PerfScore 14.17
G_M35244_IG04: ; bbWeight=2.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG19
+ bhi G_M35244_IG38
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -89,7 +89,7 @@ G_M35244_IG04: ; bbWeight=2.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG05: ; bbWeight=1.67, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG16
+ cbz x20, G_M35244_IG20
;; size=8 bbWeight=1.67 PerfScore 6.67
G_M35244_IG06: ; bbWeight=1.17, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
@@ -100,7 +100,7 @@ G_M35244_IG06: ; bbWeight=1.17, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbnz x0, G_M35244_IG11
+ cbnz x0, G_M35244_IG19
;; size=24 bbWeight=1.17 PerfScore 4.68
G_M35244_IG07: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
@@ -110,147 +110,138 @@ G_M35244_IG08: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=000
sub w21, w21, #1
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG13
+ cbz x22, G_M35244_IG11
;; size=12 bbWeight=1.67 PerfScore 3.33
G_M35244_IG09: ; bbWeight=0.83, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- ldr x0, [x22]
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #2 LSL #32
- cmp x0, x1
- beq G_M35244_IG13
- ;; size=24 bbWeight=0.83 PerfScore 5.00
-G_M35244_IG10: ; bbWeight=0.42, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x22]
- b G_M35244_IG12
- ;; size=4 bbWeight=0.42 PerfScore 0.42
-G_M35244_IG11: ; bbWeight=0.57, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x0]
- ldr w21, [x0, #0x10]
- b G_M35244_IG08
- ;; size=8 bbWeight=0.57 PerfScore 2.27
-G_M35244_IG12: ; bbWeight=0.42, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- mov x22, xzr
- ; gcrRegs +[x22]
- ;; size=4 bbWeight=0.42 PerfScore 0.21
-G_M35244_IG13: ; bbWeight=1.67, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG17
- ;; size=4 bbWeight=1.67 PerfScore 1.67
-G_M35244_IG14: ; bbWeight=0.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22]
- mov x1, x20
- ; gcrRegs +[x1]
- cbz x1, G_M35244_IG22
- ;; size=8 bbWeight=0.99 PerfScore 1.48
-G_M35244_IG15: ; bbWeight=4.17, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
- b G_M35244_IG20
- ;; size=4 bbWeight=4.17 PerfScore 4.17
-G_M35244_IG16: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1]
- mov w21, wzr
- b G_M35244_IG08
- ;; size=8 bbWeight=0.50 PerfScore 0.74
-G_M35244_IG17: ; bbWeight=1.67, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x20] +[x22]
- ldrb w0, [x22, #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_IG34
- ;; size=28 bbWeight=1.67 PerfScore 10.83
-G_M35244_IG18: ; bbWeight=1.67, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- mov x19, x22
- ; gcrRegs +[x19]
- b G_M35244_IG03
- ;; size=8 bbWeight=1.67 PerfScore 2.50
-G_M35244_IG19: ; bbWeight=1.12, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x19 x22]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x30
- ret lr
- ;; size=16 bbWeight=1.12 PerfScore 4.49
-G_M35244_IG20: ; bbWeight=0.49, gcVars=0000000000000000 {}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x1 x19-x20]
+ ldr x1, [x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #2 LSL #32
- ldr x2, [x1]
- cmp x2, x0
- beq G_M35244_IG22
+ cmp x1, x0
+ beq G_M35244_IG11
+ ;; size=24 bbWeight=0.83 PerfScore 5.00
+G_M35244_IG10: ; bbWeight=0.42, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
+ mov x22, xzr
+ ; gcrRegs +[x22]
+ ;; size=4 bbWeight=0.42 PerfScore 0.21
+G_M35244_IG11: ; bbWeight=1.67, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ cbnz x22, G_M35244_IG18
+ ;; size=4 bbWeight=1.67 PerfScore 1.67
+G_M35244_IG12: ; bbWeight=0.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x22]
+ mov x22, x20
+ ; gcrRegs +[x22]
+ cbz x22, G_M35244_IG15
+ ;; size=8 bbWeight=0.99 PerfScore 1.48
+G_M35244_IG13: ; bbWeight=0.49, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #2 LSL #32
+ ldr x1, [x22]
+ cmp x1, x0
+ beq G_M35244_IG15
;; size=24 bbWeight=0.49 PerfScore 2.96
-G_M35244_IG21: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x1]
+G_M35244_IG14: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
mov x1, x20
; gcrRegs +[x1]
bl CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[x1 x20] +[x0]
; gcr arg pop 0
- mov x1, x0
- ; gcrRegs +[x1]
- ;; size=12 bbWeight=0.25 PerfScore 0.49
-G_M35244_IG22: ; bbWeight=0.99, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0]
- ldr w0, [x1, #0x10]
- cmp w21, w0
- bhs G_M35244_IG38
- ldr x1, [x1, #0x08]
- ldr w0, [x1, #0x08]
- cmp w21, w0
- bhs G_M35244_IG39
- add x1, x1, #16
- ; gcrRegs -[x1]
- ; byrRegs +[x1]
- ldr x22, [x1, w21, UXTW #3]
+ mov x22, x0
; gcrRegs +[x22]
- b G_M35244_IG17
- ;; size=40 bbWeight=0.99 PerfScore 16.30
-G_M35244_IG23: ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ;; size=12 bbWeight=0.25 PerfScore 0.49
+G_M35244_IG15: ; bbWeight=0.99, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
+ ldr w0, [x22, #0x10]
+ cmp w21, w0
+ bhs G_M35244_IG36
+ ldr x0, [x22, #0x08]
+ ; gcrRegs +[x0]
+ ldr w1, [x0, #0x08]
+ cmp w21, w1
+ bhs G_M35244_IG37
+ add x0, x0, #16
+ ; gcrRegs -[x0]
+ ; byrRegs +[x0]
+ ldr x20, [x0, w21, UXTW #3]
+ ; gcrRegs +[x20]
+ ;; size=36 bbWeight=0.99 PerfScore 15.31
+G_M35244_IG16: ; bbWeight=1.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
- ; byrRegs -[x1]
+ ; byrRegs -[x0]
+ 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_IG32
+ ;; size=28 bbWeight=1.67 PerfScore 10.83
+G_M35244_IG17: ; bbWeight=1.67, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19]
+ mov x19, x20
+ ; gcrRegs +[x19]
+ b G_M35244_IG03
+ ;; size=8 bbWeight=1.67 PerfScore 2.50
...
+0 (0.00%) : 90233.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArraySystem.Canon,System.Canon:System.Collections.Immutable.ImmutableArray`1System.__Canon
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; fp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 4103
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 4103
; 3 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -106,7 +106,7 @@ G_M57371_IG02: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {
; gcrRegs +[x0]
ldr w22, [x0, #0x10]
cmp w22, #1
- bne G_M57371_IG09
+ bne G_M57371_IG10
;; size=16 bbWeight=1 PerfScore 7.50
G_M57371_IG03: ; bbWeight=0.90, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
@@ -124,7 +124,7 @@ G_M57371_IG03: ; bbWeight=0.90, gcrefRegs=300000 {x20 x21}, byrefRegs=000
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
cmp x1, x2
- bne G_M57371_IG19
+ bne G_M57371_IG22
mov x1, x0
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -141,13 +141,23 @@ G_M57371_IG04: ; bbWeight=0.90, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
ldr x0, [x19, #0x38]
ldr x1, [x0, #0x10]
cmp x1, #64
- ble G_M57371_IG08
+ ble G_M57371_IG07
;; size=16 bbWeight=0.90 PerfScore 6.76
G_M57371_IG05: ; bbWeight=0.72, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref, isz
ldr x0, [x0, #0x40]
- cbz x0, G_M57371_IG08
+ cbz x0, G_M57371_IG07
;; size=8 bbWeight=0.72 PerfScore 2.88
-G_M57371_IG06: ; bbWeight=0.90, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
+G_M57371_IG06: ; bbWeight=0.58, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
+ b G_M57371_IG08
+ ;; size=4 bbWeight=0.58 PerfScore 0.58
+G_M57371_IG07: ; bbWeight=0.32, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
+ mov x0, x19
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #1 LSL #32
+ bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ ;; size=20 bbWeight=0.32 PerfScore 0.97
+G_M57371_IG08: ; bbWeight=0.90, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
mov x1, x23
; gcrRegs +[x1]
movz x2, #0xD1FFAB1E // code for System.Collections.Immutable.ImmutableArray:Create[System.__Canon](System.__Canon):System.Collections.Immutable.ImmutableArray`1[System.__Canon]
@@ -157,7 +167,7 @@ G_M57371_IG06: ; bbWeight=0.90, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
blr x2
; gcrRegs -[x1 x23] +[x0]
;; size=24 bbWeight=0.90 PerfScore 5.41
-G_M57371_IG07: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M57371_IG09: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
ldr x25, [sp, #0x58]
ldp x23, x24, [sp, #0x48]
ldp x21, x22, [sp, #0x38]
@@ -165,19 +175,10 @@ G_M57371_IG07: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ldp fp, lr, [sp], #0x60
ret lr
;; size=24 bbWeight=1 PerfScore 7.00
-G_M57371_IG08: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0] +[x23]
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
- b G_M57371_IG06
- ;; size=24 bbWeight=0.32 PerfScore 1.30
-G_M57371_IG09: ; bbWeight=0.10, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x23] +[x20-x21]
+G_M57371_IG10: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x0] +[x20-x21]
cmp w22, #4
- bhi G_M57371_IG27
+ bhi G_M57371_IG30
mov w0, w22
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -185,7 +186,7 @@ G_M57371_IG09: ; bbWeight=0.10, gcrefRegs=300000 {x20 x21}, byrefRegs=000
add x1, x1, x2
br x1
;; size=32 bbWeight=0.10 PerfScore 0.74
-G_M57371_IG10: ; bbWeight=0.08, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG11: ; bbWeight=0.08, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
mov x0, x20
; gcrRegs +[x0]
mov w1, wzr
@@ -199,7 +200,7 @@ G_M57371_IG10: ; bbWeight=0.08, gcrefRegs=300000 {x20 x21}, byrefRegs=000
movk x2, #0xD1FFAB1E LSL #16
movk x2, #1 LSL #32
cmp x1, x2
- bne G_M57371_IG20
+ bne G_M57371_IG23
mov x1, x0
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -229,18 +230,28 @@ G_M57371_IG10: ; bbWeight=0.08, gcrefRegs=300000 {x20 x21}, byrefRegs=000
mov x23, x0
; gcrRegs +[x23]
;; size=128 bbWeight=0.08 PerfScore 2.05
-G_M57371_IG11: ; bbWeight=0.08, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG12: ; bbWeight=0.08, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr x0, [x19, #0x38]
ldr x1, [x0, #0x10]
cmp x1, #56
- ble G_M57371_IG14
+ ble G_M57371_IG15
;; size=16 bbWeight=0.08 PerfScore 0.59
-G_M57371_IG12: ; bbWeight=0.06, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG13: ; bbWeight=0.06, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref, isz
ldr x0, [x0, #0x38]
- cbz x0, G_M57371_IG14
+ cbz x0, G_M57371_IG15
;; size=8 bbWeight=0.06 PerfScore 0.25
-G_M57371_IG13: ; bbWeight=0.08, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref
+G_M57371_IG14: ; bbWeight=0.05, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref
+ b G_M57371_IG16
+ ;; size=4 bbWeight=0.05 PerfScore 0.05
+G_M57371_IG15: ; bbWeight=0.03, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref
+ mov x0, x19
+ movz x1, #0xD1FFAB1E
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #1 LSL #32
+ bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ ;; size=20 bbWeight=0.03 PerfScore 0.09
+G_M57371_IG16: ; bbWeight=0.08, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref
mov x1, x22
; gcrRegs +[x1]
mov x2, x23
@@ -251,48 +262,40 @@ G_M57371_IG13: ; bbWeight=0.08, gcrefRegs=C00000 {x22 x23}, byrefRegs=000
ldr x3, [x3]
blr x3
; gcrRegs -[x1-x2 x22-x23] +[x0]
- b G_M57371_IG07
+ b G_M57371_IG09
;; size=32 bbWeight=0.08 PerfScore 0.59
-G_M57371_IG14: ; bbWeight=0.03, gcrefRegs=C00000 {x22 x23}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0] +[x22-x23]
+G_M57371_IG17: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
+ ldr x0, [x19, #0x38]
+ ldr x1, [x0, #0x10]
+ cmp x1, #72
+ ble G_M57371_IG20
+ ;; size=16 bbWeight=0.02 PerfScore 0.15
+G_M57371_IG18: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ldr x0, [x0, #0x48]
+ cbz x0, G_M57371_IG20
+ ;; size=8 bbWeight=0.02 PerfScore 0.06
+G_M57371_IG19: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ b G_M57371_IG21
+ ;; size=4 bbWeight=0.01 PerfScore 0.01
+G_M57371_IG20: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov x0, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
- b G_M57371_IG13
- ;; size=24 bbWeight=0.03 PerfScore 0.11
-G_M57371_IG15: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22-x23]
- ldr x0, [x19, #0x38]
- ldr x1, [x0, #0x10]
- cmp x1, #72
- ble G_M57371_IG18
- ;; size=16 bbWeight=0.02 PerfScore 0.15
-G_M57371_IG16: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [x0, #0x48]
- cbz x0, G_M57371_IG18
- ;; size=8 bbWeight=0.02 PerfScore 0.06
-G_M57371_IG17: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=20 bbWeight=0.01 PerfScore 0.02
+G_M57371_IG21: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
; byrRegs +[x0]
ldr x0, [x0]
; gcrRegs +[x0]
; byrRegs -[x0]
ldr x0, [x0, #0x08]
- b G_M57371_IG07
+ b G_M57371_IG09
;; size=16 bbWeight=0.02 PerfScore 0.16
-G_M57371_IG18: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- mov x0, x19
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
- b G_M57371_IG17
- ;; size=24 bbWeight=0.01 PerfScore 0.03
-G_M57371_IG19: ; bbWeight=0, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x0 x21]
+G_M57371_IG22: ; bbWeight=0, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x21]
mov x1, x0
; gcrRegs +[x1]
ldr x0, [x21, #0x08]
@@ -303,7 +306,7 @@ G_M57371_IG19: ; bbWeight=0, gcrefRegs=200001 {x0 x21}, byrefRegs=0000 {}
; gcrRegs +[x23]
b G_M57371_IG04
;; size=24 bbWeight=0 PerfScore 0.00
-G_M57371_IG20: ; bbWeight=0, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref
+G_M57371_IG23: ; bbWeight=0, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x23] +[x20-x21]
mov x1, x0
; gcrRegs +[x1]
@@ -329,9 +332,9 @@ G_M57371_IG20: ; bbWeight=0, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=000
; gcrRegs -[x1 x21]
mov x23, x0
; gcrRegs +[x23]
- b G_M57371_IG11
+ b G_M57371_IG12
;; size=72 bbWeight=0 PerfScore 0.00
-G_M57371_IG21: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG24: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0 x22-x23] +[x20-x21]
mov x0, x20
; gcrRegs +[x0]
@@ -368,12 +371,12 @@ G_M57371_IG21: ; bbWeight=0, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {
; gcrRegs -[x0]
ldr x1, [x0, #0x10]
cmp x1, #48
- ble G_M57371_IG22
+ ble G_M57371_IG25
ldr x24, [x0, #0x30]
- cbz x24, G_M57371_IG22
- b G_M57371_IG23
+ cbz x24, G_M57371_IG25
+ b G_M57371_IG26
;; size=124 bbWeight=0 PerfScore 0.00
-G_M57371_IG22: ; bbWeight=0, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefRegs=0000 {}, byref
+G_M57371_IG25: ; bbWeight=0, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefRegs=0000 {}, byref
mov x0, x19
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -381,7 +384,7 @@ G_M57371_IG22: ; bbWeight=0, gcrefRegs=F00000 {x20 x21 x22 x23}, byrefReg
bl CORINFO_HELP_RUNTIMEHANDLE_METHOD
mov x24, x0
;; size=24 bbWeight=0 PerfScore 0.00
...
+0 (0.00%) : 592758.dasm - Microsoft.CodeAnalysis.CSharp.Binder:AreNullableAnnotationsEnabled(Microsoft.CodeAnalysis.SyntaxTree,int):ubyte:this (Tier1)
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; fp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 228064
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 228064
; 8 inlinees with PGO data; 20 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -18,7 +18,7 @@
;* V06 loc3 [V06 ] ( 0, 0 ) ubyte -> zero-ref
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V08 tmp1 [V08,T36] ( 3, 0 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V09 tmp2 [V09,T25] ( 3, 0.51) int -> x1
+; V09 tmp2 [V09,T25] ( 3, 0.51) int -> x19
; V10 tmp3 [V10,T29] ( 2, 0.30) ref -> x1 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxTreeOptionsProvider>
;* V11 tmp4 [V11 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.CancellationToken>
; V12 tmp5 [V12,T26] ( 3, 0.51) int -> x0 "guarded devirt return temp"
@@ -113,17 +113,9 @@ G_M13949_IG02: ; bbWeight=1, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}
; gcrRegs +[x1]
mov x21, x1
; gcrRegs +[x21]
- cbz x21, G_M13949_IG04
+ cbnz x21, G_M13949_IG14
;; size=8 bbWeight=1 PerfScore 1.50
-G_M13949_IG03: ; bbWeight=0.50, gcrefRegs=300002 {x1 x20 x21}, byrefRegs=0000 {}, byref, isz
- ldr x0, [x21]
- movz x2, #0xD1FFAB1E
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #1 LSL #32
- cmp x0, x2
- bne G_M13949_IG36
- ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M13949_IG04: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M13949_IG03: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1]
ldrsb wzr, [x21]
add x22, x21, #72
@@ -135,35 +127,35 @@ G_M13949_IG04: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {
; gcrRegs +[x2]
cbz x2, G_M13949_IG37
;; size=28 bbWeight=1 PerfScore 9.00
-G_M13949_IG05: ; bbWeight=1, gcrefRegs=300004 {x2 x20 x21}, byrefRegs=400000 {x22}, byref, isz
+G_M13949_IG04: ; bbWeight=1, gcrefRegs=300004 {x2 x20 x21}, byrefRegs=400000 {x22}, byref, isz
ldapr w0, [x22]
cmp w0, #2
- bne G_M13949_IG21
+ bne G_M13949_IG20
;; size=12 bbWeight=1 PerfScore 4.50
-G_M13949_IG06: ; bbWeight=0.98, gcrefRegs=300004 {x2 x20 x21}, byrefRegs=400000 {x22}, byref
+G_M13949_IG05: ; bbWeight=0.98, gcrefRegs=300004 {x2 x20 x21}, byrefRegs=400000 {x22}, byref
ldr x23, [x22, #0x08]
; gcrRegs +[x23]
mov w0, #1
;; size=8 bbWeight=0.98 PerfScore 3.44
-G_M13949_IG07: ; bbWeight=1, gcrefRegs=B00004 {x2 x20 x21 x23}, byrefRegs=400000 {x22}, byref, isz
- cbz w0, G_M13949_IG19
+G_M13949_IG06: ; bbWeight=1, gcrefRegs=B00004 {x2 x20 x21 x23}, byrefRegs=400000 {x22}, byref, isz
+ cbz w0, G_M13949_IG29
;; size=4 bbWeight=1 PerfScore 1.00
-G_M13949_IG08: ; bbWeight=0.98, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref
+G_M13949_IG07: ; bbWeight=0.98, gcrefRegs=B00000 {x20 x21 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
; byrRegs -[x22]
mov x22, x23
; gcrRegs +[x22]
;; size=4 bbWeight=0.98 PerfScore 0.49
-G_M13949_IG09: ; bbWeight=1.00, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M13949_IG08: ; bbWeight=1.00, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x23]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #1 LSL #32
ldr x5, [x0]
; gcrRegs +[x5]
- cbz x22, G_M13949_IG31
+ cbz x22, G_M13949_IG32
;; size=20 bbWeight=1.00 PerfScore 5.50
-G_M13949_IG10: ; bbWeight=1.00, gcrefRegs=700020 {x5 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M13949_IG09: ; bbWeight=1.00, gcrefRegs=700020 {x5 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldr w3, [x22, #0x08]
ldr wzr, [x22, #0x08]
movz x0, #0xD1FFAB1E
@@ -188,12 +180,12 @@ G_M13949_IG10: ; bbWeight=1.00, gcrefRegs=700020 {x5 x20 x21 x22}, byrefR
sub w1, w1, #1
cmp w0, #0
csel w0, w0, w1, ge
- tbnz w0, #31, G_M13949_IG26
+ tbnz w0, #31, G_M13949_IG25
;; size=88 bbWeight=1.00 PerfScore 25.06
-G_M13949_IG11: ; bbWeight=0.75, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M13949_IG10: ; bbWeight=0.75, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldr w1, [x22, #0x08]
cmp w0, w1
- bhs G_M13949_IG35
+ bhs G_M13949_IG36
ubfiz x0, x0, #3, #32
add x0, x0, #16
add x0, x22, x0
@@ -201,28 +193,40 @@ G_M13949_IG11: ; bbWeight=0.75, gcrefRegs=700000 {x20 x21 x22}, byrefRegs
ldr wzr, [x0]
ldrb w19, [x0, #0x05]
;; size=32 bbWeight=0.75 PerfScore 9.39
-G_M13949_IG12: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M13949_IG11: ; bbWeight=1, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
; byrRegs -[x0]
uxtb w1, w19
cmp w1, #2
- bne G_M13949_IG15
+ bne G_M13949_IG16
;; size=12 bbWeight=1 PerfScore 2.00
-G_M13949_IG13: ; bbWeight=0.75, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13949_IG12: ; bbWeight=0.75, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x20-x21]
mov w0, #1
;; size=4 bbWeight=0.75 PerfScore 0.37
-G_M13949_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M13949_IG13: ; bbWeight=1, 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=1 PerfScore 6.00
-G_M13949_IG15: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x20-x21]
+G_M13949_IG14: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=300002 {x1 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[x1 x20-x21]
+ ldr x0, [x21]
+ movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #1 LSL #32
+ cmp x0, x2
+ bne G_M13949_IG38
+ ;; size=24 bbWeight=0.50 PerfScore 3.00
+G_M13949_IG15: ; bbWeight=0.25, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x1]
+ b G_M13949_IG03
+ ;; size=4 bbWeight=0.25 PerfScore 0.25
+G_M13949_IG16: ; bbWeight=0.25, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
cmp w1, #3
- bhi G_M13949_IG34
+ bhi G_M13949_IG35
mov w0, w1
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -230,15 +234,15 @@ G_M13949_IG15: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=300
add x1, x1, x2
br x1
;; size=32 bbWeight=0.25 PerfScore 1.90
-G_M13949_IG16: ; bbWeight=0.25, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M13949_IG17: ; bbWeight=0.25, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
cmp x0, x1
- bne G_M13949_IG22
+ bne G_M13949_IG21
;; size=24 bbWeight=0.25 PerfScore 1.52
-G_M13949_IG17: ; bbWeight=0.16, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M13949_IG18: ; bbWeight=0.16, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
ldr x0, [x20, #0x10]
; gcrRegs +[x0]
ldr x19, [x0]
@@ -246,48 +250,26 @@ G_M13949_IG17: ; bbWeight=0.16, gcrefRegs=300000 {x20 x21}, byrefRegs=000
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
cmp x19, x1
- bne G_M13949_IG27
+ bne G_M13949_IG26
;; size=28 bbWeight=0.16 PerfScore 1.46
-G_M13949_IG18: ; bbWeight=0.07, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref
+G_M13949_IG19: ; bbWeight=0.07, gcrefRegs=300001 {x0 x20 x21}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Binder:AreNullableAnnotationsGloballyEnabled():ubyte:this
movk x1, #0xD1FFAB1E LSL #16
movk x1, #1 LSL #32
ldr x1, [x1]
blr x1
; gcrRegs -[x0]
- b G_M13949_IG28
+ b G_M13949_IG27
;; size=24 bbWeight=0.07 PerfScore 0.44
-G_M13949_IG19: ; bbWeight=0.02, gcrefRegs=300004 {x2 x20 x21}, byrefRegs=400000 {x22}, byref, isz
+G_M13949_IG20: ; bbWeight=0.02, gcrefRegs=300004 {x2 x20 x21}, byrefRegs=400000 {x22}, byref
; gcrRegs +[x2]
; byrRegs +[x22]
- ldr x0, [x2, #0x18]
- movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree+<>c:<GetNullableContextStateMap>b__45_0(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree):Microsoft.CodeAnalysis.CSharp.Syntax.NullableContextStateMap:this
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- cmp x0, x1
- bne G_M13949_IG38
- ;; size=24 bbWeight=0.02 PerfScore 0.10
-G_M13949_IG20: ; bbWeight=0.02, gcrefRegs=300000 {x20 x21}, byrefRegs=400000 {x22}, byref
- ; gcrRegs -[x2]
- mov x0, x21
- ; gcrRegs +[x0]
- movz x1, #0xD1FFAB1E // code for <unknown method>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #1 LSL #32
- ldr x1, [x1]
- blr x1
- mov x1, x0
- ; gcrRegs +[x1]
- b G_M13949_IG30
- ;; size=32 bbWeight=0.02 PerfScore 0.13
-G_M13949_IG21: ; bbWeight=0.02, gcrefRegs=300004 {x2 x20 x21}, byrefRegs=400000 {x22}, byref
- ; gcrRegs -[x0-x1] +[x2]
mov w0, wzr
mov x23, xzr
; gcrRegs +[x23]
- b G_M13949_IG07
+ b G_M13949_IG06
;; size=12 bbWeight=0.02 PerfScore 0.03
-G_M13949_IG22: ; bbWeight=0.09, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M13949_IG21: ; bbWeight=0.09, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x2 x23]
; byrRegs -[x22]
mov x0, x20
@@ -298,33 +280,33 @@ G_M13949_IG22: ; bbWeight=0.09, gcrefRegs=300000 {x20 x21}, byrefRegs=000
blr x1
; gcrRegs -[x0]
;; size=20 bbWeight=0.09 PerfScore 0.96
-G_M13949_IG23: ; bbWeight=0.25, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
- cbnz w0, G_M13949_IG29
+G_M13949_IG22: ; bbWeight=0.25, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref, isz
+ cbnz w0, G_M13949_IG28
;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M13949_IG24: ; bbWeight=0.18, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13949_IG23: ; bbWeight=0.18, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x20-x21]
- mov w1, wzr
+ mov w19, wzr
;; size=4 bbWeight=0.18 PerfScore 0.09
-G_M13949_IG25: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxtb w0, w1
- b G_M13949_IG14
+G_M13949_IG24: ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ uxtb w0, w19
+ b G_M13949_IG13
;; size=8 bbWeight=0.25 PerfScore 0.38
-G_M13949_IG26: ; bbWeight=0.25, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
+G_M13949_IG25: ; bbWeight=0.25, gcrefRegs=300000 {x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x20-x21]
mov w19, wzr
- b G_M13949_IG12
+ b G_M13949_IG11
;; size=8 bbWeight=0.25 PerfScore 0.37
...
+0 (0.00%) : 276416.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (Tier1)
@@ -32,26 +32,40 @@ G_M31052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
csel w5, w5, w6, eq
sub w0, w0, #1
cmp w0, #1
- bne G_M31052_IG08
+ bne G_M31052_IG04
;; size=28 bbWeight=1 PerfScore 4.00
G_M31052_IG03: ; bbWeight=0.14, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr w5, w5, #32
- ;; size=4 bbWeight=0.14 PerfScore 0.07
-G_M31052_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- sub w0, w1, #1
- cmp w0, #2
+ b G_M31052_IG06
+ ;; size=8 bbWeight=0.14 PerfScore 0.22
+G_M31052_IG04: ; bbWeight=0.41, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cmp w0, #5
bhi G_M31052_IG06
mov w0, w0
- adr x1, [@RWD00]
+ adr x4, [@RWD00]
+ ldr w4, [x4, x0, LSL #2]
+ adr x6, [G_M31052_IG02]
+ add x4, x4, x6
+ br x4
+ ;; size=32 bbWeight=0.41 PerfScore 3.10
+G_M31052_IG05: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ orr w5, w5, #96
+ ;; size=4 bbWeight=0.02 PerfScore 0.01
+G_M31052_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ sub w0, w1, #1
+ cmp w0, #2
+ bhi G_M31052_IG08
+ mov w0, w0
+ adr x1, [@RWD24]
ldr w1, [x1, x0, LSL #2]
adr x4, [G_M31052_IG02]
add x1, x1, x4
br x1
;; size=36 bbWeight=1 PerfScore 8.00
-G_M31052_IG05: ; bbWeight=0.44, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG07: ; bbWeight=0.44, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr w5, w5, #1
;; size=4 bbWeight=0.44 PerfScore 0.22
-G_M31052_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
orr w0, w5, #16
tst w2, #16
csel w5, w5, w0, ne
@@ -60,40 +74,26 @@ G_M31052_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
csel w5, w5, w0, eq
mov w0, w5
;; size=28 bbWeight=1 PerfScore 3.50
-G_M31052_IG07: ; bbWeight=1, epilog, nogc, extend
+G_M31052_IG09: ; bbWeight=1, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-G_M31052_IG08: ; bbWeight=0.41, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- cmp w0, #5
- bhi G_M31052_IG04
- mov w0, w0
- adr x4, [@RWD12]
- ldr w4, [x4, x0, LSL #2]
- adr x6, [G_M31052_IG02]
- add x4, x4, x6
- br x4
- ;; size=32 bbWeight=0.41 PerfScore 3.10
-G_M31052_IG09: ; bbWeight=0.30, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M31052_IG10: ; bbWeight=0.30, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
orr w5, w5, #2
- b G_M31052_IG06
+ b G_M31052_IG08
;; size=8 bbWeight=0.30 PerfScore 0.45
-G_M31052_IG10: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- orr w5, w5, #96
- b G_M31052_IG04
- ;; size=8 bbWeight=0.02 PerfScore 0.04
-RWD00 dd G_M31052_IG06 - G_M31052_IG02
- dd G_M31052_IG05 - G_M31052_IG02
- dd G_M31052_IG09 - G_M31052_IG02
-RWD12 dd G_M31052_IG10 - G_M31052_IG02
+RWD00 dd G_M31052_IG05 - G_M31052_IG02
dd G_M31052_IG03 - G_M31052_IG02
- dd G_M31052_IG04 - G_M31052_IG02
+ dd G_M31052_IG06 - G_M31052_IG02
dd G_M31052_IG03 - G_M31052_IG02
- dd G_M31052_IG04 - G_M31052_IG02
+ dd G_M31052_IG06 - G_M31052_IG02
dd G_M31052_IG03 - G_M31052_IG02
+RWD24 dd G_M31052_IG08 - G_M31052_IG02
+ dd G_M31052_IG07 - G_M31052_IG02
+ dd G_M31052_IG10 - G_M31052_IG02
-; Total bytes of code 164, prolog size 8, PerfScore 22.88, instruction count 41, allocated bytes for code 164 (MethodHash=393f86b3) for method Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (Tier1)
+; Total bytes of code 164, prolog size 8, PerfScore 23.00, instruction count 41, allocated bytes for code 164 (MethodHash=393f86b3) for method Microsoft.Win32.SafeHandles.SafeFileHandle:PreOpenConfigurationFromOptions(int,int,int,int,ubyte):int (Tier1)
; ============================================================
Unwind Info:
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| benchmarks.run.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| benchmarks.run_pgo.osx.arm64.checked.mch |
6 |
1 |
0 |
5 |
-4 |
+0 |
| benchmarks.run_tiered.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| coreclr_tests.run.osx.arm64.checked.mch |
11 |
0 |
0 |
11 |
-0 |
+0 |
| libraries.crossgen2.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries.pmi.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries_tests.run.osx.arm64.Release.mch |
5 |
2 |
0 |
3 |
-16 |
+0 |
| librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| realworld.run.osx.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
22 |
3 |
0 |
19 |
-20 |
+0 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.osx.arm64.checked.mch |
25,053 |
4 |
25,049 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.osx.arm64.checked.mch |
83,954 |
48,224 |
35,730 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_tiered.osx.arm64.checked.mch |
48,600 |
37,748 |
10,852 |
0 (0.00%) |
0 (0.00%) |
| coreclr_tests.run.osx.arm64.checked.mch |
587,982 |
360,346 |
227,636 |
0 (0.00%) |
0 (0.00%) |
| libraries.crossgen2.osx.arm64.checked.mch |
265,044 |
15 |
265,029 |
0 (0.00%) |
0 (0.00%) |
| libraries.pmi.osx.arm64.checked.mch |
318,225 |
18 |
318,207 |
0 (0.00%) |
0 (0.00%) |
| libraries_tests.run.osx.arm64.Release.mch |
632,615 |
465,983 |
166,632 |
0 (0.00%) |
0 (0.00%) |
| librariestestsnotieredcompilation.run.osx.arm64.Release.mch |
300,370 |
21,535 |
278,835 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.osx.arm64.checked.mch |
31,600 |
3 |
31,597 |
0 (0.00%) |
0 (0.00%) |
|
2,293,443 |
933,876 |
1,359,567 |
0 (0.00%) |
0 (0.00%) |
jit-analyze output
benchmarks.run_pgo.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 34290048 (overridden on cmd)
Total bytes of diff: 34290044 (overridden on cmd)
Total bytes of delta: -4 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-4 : 69487.dasm (-0.53 % of base)
1 total files with Code Size differences (1 improved, 0 regressed), 5 unchanged.
Top method improvements (bytes):
-4 (-0.53 % of base) : 69487.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (percentages):
-4 (-0.53 % of base) : 69487.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
1 total methods with Code Size differences (1 improved, 0 regressed).
coreclr_tests.run.osx.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 491746024 (overridden on cmd)
Total bytes of diff: 491746024 (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.osx.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 313602060 (overridden on cmd)
Total bytes of diff: 313602044 (overridden on cmd)
Total bytes of delta: -16 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-12 : 386396.dasm (-0.46 % of base)
-4 : 388505.dasm (-0.45 % of base)
2 total files with Code Size differences (2 improved, 0 regressed), 3 unchanged.
Top method improvements (bytes):
-12 (-0.46 % of base) : 386396.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-4 (-0.45 % of base) : 388505.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (percentages):
-12 (-0.46 % of base) : 386396.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-4 (-0.45 % of base) : 388505.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
2 total methods with Code Size differences (2 improved, 0 regressed).