Assembly Diffs
linux arm64
Diffs are based on 2,544,350 contexts (1,012,496 MinOpts, 1,531,854 FullOpts).
Overall (-140 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.linux.arm64.checked.mch |
77,518,372 |
-4 |
| coreclr_tests.run.linux.arm64.checked.mch |
518,928,384 |
+4 |
| libraries_tests.run.linux.arm64.Release.mch |
383,432,472 |
-140 |
FullOpts (-140 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.linux.arm64.checked.mch |
55,144,000 |
-4 |
| coreclr_tests.run.linux.arm64.checked.mch |
167,326,840 |
+4 |
| libraries_tests.run.linux.arm64.Release.mch |
167,615,256 |
-140 |
Example diffs
benchmarks.run_pgo.linux.arm64.checked.mch
-4 (-0.52%) : 21218.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=3.00, 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=3.00 PerfScore 14.98
G_M35244_IG04: ; bbWeight=2.96, 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=2.00, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG21
+ cbnz x22, G_M35244_IG19
;; size=4 bbWeight=2.00 PerfScore 2.00
G_M35244_IG11: ; bbWeight=1.57, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
@@ -138,12 +138,12 @@ G_M35244_IG14: ; bbWeight=1.57, 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]
@@ -159,7 +159,7 @@ G_M35244_IG15: ; bbWeight=2.00, 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=2.00 PerfScore 12.98
G_M35244_IG16: ; bbWeight=2.00, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -177,35 +177,24 @@ G_M35244_IG17: ; bbWeight=1.02, 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.02 PerfScore 4.06
G_M35244_IG18: ; bbWeight=0.76, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- b G_M35244_IG20
- ;; size=4 bbWeight=0.76 PerfScore 0.76
-G_M35244_IG19: ; bbWeight=0.01, 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.01 PerfScore 0.05
-G_M35244_IG20: ; bbWeight=0.76, 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.76 PerfScore 3.04
-G_M35244_IG21: ; bbWeight=0.42, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.42, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20] +[x22]
mov x21, x22
; gcrRegs +[x21]
b G_M35244_IG15
;; size=8 bbWeight=0.42 PerfScore 0.64
-G_M35244_IG22: ; bbWeight=0.26, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=0.26, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21-x22] +[x20]
mov w21, #1
b G_M35244_IG07
;; size=8 bbWeight=0.26 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]
@@ -214,14 +203,14 @@ G_M35244_IG23: ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
;; size=20 bbWeight=0.03 PerfScore 0.16
-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
@@ -231,11 +220,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]
@@ -251,18 +246,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, #0xD1FFAB1E LSL #32
@@ -310,7 +305,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]
@@ -323,9 +318,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
@@ -345,22 +340,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
@@ -372,23 +367,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 772, prolog size 20, PerfScore 129.58, instruction count 193, allocated bytes for code 772 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 768, prolog size 20, PerfScore 128.77, instruction count 192, allocated bytes for code 768 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
@@ -399,7 +394,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 193 (0x000c1) Actual length = 772 (0x000304)
+ Function Length : 192 (0x000c0) Actual length = 768 (0x000300)
...
+0 (0.00%) : 35645.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)
@@ -69,22 +69,17 @@ G_M417_IG03: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19]
- ;; size=36 bbWeight=0.60 PerfScore 7.46
-G_M417_IG04: ; bbWeight=0.70, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp x21, x22, [sp, #0x40]
- ldp x19, x20, [sp, #0x30]
- ldp fp, lr, [sp], #0x50
- ret lr
- ;; size=16 bbWeight=0.70 PerfScore 2.79
-G_M417_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+ b G_M417_IG07
+ ;; size=40 bbWeight=0.60 PerfScore 8.05
+G_M417_IG04: ; bbWeight=0.10, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21]
mov x22, x20
; gcrRegs +[x22]
ldr w0, [x20, #0x28]
cmp w0, #2
- bne G_M417_IG07
+ bne G_M417_IG06
;; size=16 bbWeight=0.10 PerfScore 0.50
-G_M417_IG06: ; bbWeight=0.81, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.81, 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.81, 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.81 PerfScore 16.13
-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.81
-G_M417_IG08: ; bbWeight=0.40, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=0.10 PerfScore 0.71
+G_M417_IG07: ; bbWeight=0.70, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldp x21, x22, [sp, #0x40]
+ ldp x19, x20, [sp, #0x30]
+ ldp fp, lr, [sp], #0x50
+ ret lr
+ ;; size=16 bbWeight=0.70 PerfScore 2.79
+G_M417_IG08: ; bbWeight=0.40, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19 x21]
cmp w22, #17
- bhi G_M417_IG04
+ bhi G_M417_IG07
mov w0, w22
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -142,7 +142,7 @@ G_M417_IG09: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21]
@@ -204,7 +204,7 @@ G_M417_IG14: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=
ldr x4, [x4]
blr x4
; gcrRegs -[x1-x3 x19 x21-x22]
- b G_M417_IG04
+ b G_M417_IG07
;; size=36 bbWeight=0 PerfScore 0.00
G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
@@ -221,7 +221,7 @@ G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr wzr, [x0]
blr x3
; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
G_M417_IG16: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
@@ -251,7 +251,7 @@ G_M417_IG16: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr wzr, [x0]
blr x3
; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=76 bbWeight=0 PerfScore 0.00
G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
@@ -267,29 +267,29 @@ G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+RWD00 dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG05 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02
dd G_M417_IG15 - G_M417_IG02
dd G_M417_IG16 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG17 - G_M417_IG02
dd G_M417_IG17 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG15 - G_M417_IG02
-; Total bytes of code 608, prolog size 20, PerfScore 43.22, 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.71, 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%) : 127101.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_IG15
+ cbz w0, G_M35244_IG27
ldr w1, [x19, #0x28]
mov w0, #0xD1FFAB1E
tst w1, w0
- bne G_M35244_IG15
+ bne G_M35244_IG27
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=2.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w20, [x19, #0x2E]
sub w1, w20, #3
cmp w1, #5
- bls G_M35244_IG25
+ bls G_M35244_IG23
;; size=16 bbWeight=2.00 PerfScore 10.00
G_M35244_IG04: ; bbWeight=2.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w1, w20, #24
cmp w1, #10
- bhi G_M35244_IG15
+ bhi G_M35244_IG27
mov w1, w1
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -99,7 +99,7 @@ G_M35244_IG08: ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs +[x23]
;; size=4 bbWeight=0.25 PerfScore 0.13
G_M35244_IG09: ; bbWeight=1.00, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
- cbz x23, G_M35244_IG17
+ cbz x23, G_M35244_IG15
;; size=4 bbWeight=1.00 PerfScore 1.00
G_M35244_IG10: ; bbWeight=1.00, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20]
@@ -109,7 +109,7 @@ G_M35244_IG10: ; bbWeight=1.00, gcrefRegs=880000 {x19 x23}, byrefRegs=000
cmp w0, #24
ccmp w1, #1, z, ne
ccmp w2, #1, z, hi
- bls G_M35244_IG18
+ bls G_M35244_IG16
;; size=28 bbWeight=1.00 PerfScore 6.50
G_M35244_IG11: ; bbWeight=1.00, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -140,32 +140,7 @@ G_M35244_IG14: ; bbWeight=0.29, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov w21, wzr
b G_M35244_IG06
;; size=8 bbWeight=0.29 PerfScore 0.43
-G_M35244_IG15: ; bbWeight=0.01, 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.01 PerfScore 0.09
-G_M35244_IG16: ; 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, #0xD1FFAB1E 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_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0] +[x20]
+G_M35244_IG15: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -176,11 +151,11 @@ G_M35244_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
ldr w1, [x0, #0x10]
cmp w22, w1
- bhs G_M35244_IG27
+ bhs G_M35244_IG25
ldr x0, [x0, #0x08]
ldr w1, [x0, #0x08]
cmp w22, w1
- bhs G_M35244_IG28
+ bhs G_M35244_IG26
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
@@ -188,18 +163,18 @@ G_M35244_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs +[x23]
b G_M35244_IG10
;; size=60 bbWeight=0 PerfScore 0.00
-G_M35244_IG18: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG19
+ cbz x0, G_M35244_IG17
ldr x0, [x19, #0x18]
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
beq G_M35244_IG11
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG19: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
+G_M35244_IG17: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -247,7 +222,7 @@ G_M35244_IG19: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {
; gcr arg pop 0
b G_M35244_IG11
;; size=124 bbWeight=0 PerfScore 0.00
-G_M35244_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x23] +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -260,9 +235,9 @@ G_M35244_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
sxtw w20, w0
mov w21, #1
- b G_M35244_IG22
+ b G_M35244_IG20
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
mov w1, w21
@@ -282,22 +257,22 @@ G_M35244_IG21: ; 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_IG22: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG21
+ blt G_M35244_IG19
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG15
- b G_M35244_IG16
+ beq G_M35244_IG27
+ b G_M35244_IG28
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG23: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; 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_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
- beq G_M35244_IG16
+ beq G_M35244_IG28
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this
@@ -309,14 +284,14 @@ G_M35244_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
mov x19, x0
; gcrRegs +[x19]
- cbz x19, G_M35244_IG15
+ cbz x19, G_M35244_IG27
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_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this
@@ -324,7 +299,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend
+G_M35244_IG24: ; bbWeight=0, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -332,7 +307,7 @@ G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend
br x1
; gcr arg pop 0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG25: ; 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
@@ -342,29 +317,52 @@ G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcr arg pop 0
brk_unix #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; 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=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_IG28: ; 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, #0xD1FFAB1E 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_IG29: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x0 x19-x20]
+ ; gcrRegs +[x20]
ldr w21, [x0, #0x10]
b G_M35244_IG06
;; size=8 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG20 - G_M35244_IG02
+RWD00 dd G_M35244_IG18 - G_M35244_IG02
dd G_M35244_IG12 - G_M35244_IG02
- dd G_M35244_IG24 - G_M35244_IG02
- dd G_M35244_IG23 - G_M35244_IG02
+ dd G_M35244_IG22 - G_M35244_IG02
+ dd G_M35244_IG21 - G_M35244_IG02
dd G_M35244_IG12 - G_M35244_IG02
- dd G_M35244_IG15 - G_M35244_IG02
- dd G_M35244_IG16 - G_M35244_IG02
- dd G_M35244_IG16 - G_M35244_IG02
...
+0 (0.00%) : 125646.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=3.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
sub w1, w0, #3
cmp w1, #5
- bls G_M35244_IG22
+ bls G_M35244_IG21
;; size=16 bbWeight=3.99 PerfScore 19.93
G_M35244_IG04: ; bbWeight=2.99, 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=2.99, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG05: ; bbWeight=2.99, 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=2.99 PerfScore 11.95
G_M35244_IG06: ; bbWeight=2.47, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
@@ -90,65 +90,53 @@ G_M35244_IG06: ; bbWeight=2.47, 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.47 PerfScore 9.88
G_M35244_IG07: ; bbWeight=0.88, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG11
+ b G_M35244_IG09
;; size=8 bbWeight=0.88 PerfScore 3.54
-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.77
-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.79
-G_M35244_IG11: ; bbWeight=2.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=2.99, 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=2.99 PerfScore 5.97
-G_M35244_IG12: ; bbWeight=1.49, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.49, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x1, x0
- beq G_M35244_IG14
+ beq G_M35244_IG12
;; size=24 bbWeight=1.49 PerfScore 8.96
-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=2.99, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG19
+G_M35244_IG12: ; bbWeight=2.99, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ cbnz x22, G_M35244_IG18
;; size=4 bbWeight=2.99 PerfScore 2.99
-G_M35244_IG15: ; bbWeight=1.08, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.08, 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.08 PerfScore 1.62
-G_M35244_IG16: ; bbWeight=0.54, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.54, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x22]
cmp x1, x0
- beq G_M35244_IG18
+ beq G_M35244_IG16
;; size=24 bbWeight=0.54 PerfScore 3.25
-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.76
-G_M35244_IG18: ; bbWeight=1.08, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=1.08, 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.08, 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.08 PerfScore 17.87
-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.77
+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=2.99, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=2.99, 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=2.99, gcrefRegs=180000 {x19 x20}, byrefRegs=000
ccmp w2, #1, z, hi
bls G_M35244_IG26
;; size=28 bbWeight=2.99 PerfScore 19.41
-G_M35244_IG21: ; bbWeight=2.98, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=2.98, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x19, x20
; gcrRegs +[x19]
b G_M35244_IG03
;; size=8 bbWeight=2.98 PerfScore 4.48
-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, #0xD1FFAB1E LSL #32
ldr x1, [x1]
;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
ldp x21, x22, [sp, #0x20]
ldp x19, x20, [sp, #0x10]
ldp fp, lr, [sp], #0x30
br x1
; gcr arg pop 0
;; size=16 bbWeight=1 PerfScore 4.00
-G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x19]
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%) : 121503.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_IG25
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG09
+ bne G_M35244_IG25
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=4.05, 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_IG22
;; size=16 bbWeight=4.05 PerfScore 20.25
G_M35244_IG04: ; bbWeight=3.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG09
+ bhi G_M35244_IG25
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -79,7 +79,7 @@ G_M35244_IG04: ; bbWeight=3.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG05: ; bbWeight=3.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG08
+ cbz x20, G_M35244_IG18
;; size=8 bbWeight=3.05 PerfScore 12.20
G_M35244_IG06: ; bbWeight=2.52, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
@@ -90,65 +90,53 @@ G_M35244_IG06: ; bbWeight=2.52, 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.52 PerfScore 10.08
G_M35244_IG07: ; bbWeight=0.91, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG11
+ b G_M35244_IG09
;; size=8 bbWeight=0.91 PerfScore 3.64
-G_M35244_IG08: ; bbWeight=0.53, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=1.61, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
- mov w21, wzr
- b G_M35244_IG11
- ;; size=8 bbWeight=0.53 PerfScore 0.80
-G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x19-x20]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x30
- ret lr
- ;; size=16 bbWeight=0.00 PerfScore 0.00
-G_M35244_IG10: ; bbWeight=1.61, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19-x20]
mov w21, #1
;; size=4 bbWeight=1.61 PerfScore 0.81
-G_M35244_IG11: ; bbWeight=3.05, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=3.05, 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.05 PerfScore 6.10
-G_M35244_IG12: ; bbWeight=1.53, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.53, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x1, x0
- beq G_M35244_IG14
+ beq G_M35244_IG12
;; size=24 bbWeight=1.53 PerfScore 9.15
-G_M35244_IG13: ; bbWeight=0.76, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.76, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
mov x22, xzr
; gcrRegs +[x22]
;; size=4 bbWeight=0.76 PerfScore 0.38
-G_M35244_IG14: ; bbWeight=3.05, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG20
+G_M35244_IG12: ; bbWeight=3.05, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ cbnz x22, G_M35244_IG19
;; size=4 bbWeight=3.05 PerfScore 3.05
-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, #0xD1FFAB1E 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.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=0.28, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
mov x1, x20
; gcrRegs +[x1]
@@ -158,32 +146,37 @@ G_M35244_IG17: ; bbWeight=0.28, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x22, x0
; gcrRegs +[x22]
;; size=12 bbWeight=0.28 PerfScore 0.55
-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
bhs G_M35244_IG34
;; size=12 bbWeight=1.10 PerfScore 4.95
-G_M35244_IG19: ; bbWeight=1.10, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.10, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
ldr x0, [x22, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
cmp w21, w1
- bhs G_M35244_IG25
+ bhs G_M35244_IG24
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
ldr x20, [x0, w21, UXTW #3]
; gcrRegs +[x20]
- b G_M35244_IG21
+ b G_M35244_IG20
;; size=28 bbWeight=1.10 PerfScore 13.21
-G_M35244_IG20: ; bbWeight=1.95, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x20]
+G_M35244_IG18: ; bbWeight=0.53, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x22]
; byrRegs -[x0]
+ mov w21, wzr
+ b G_M35244_IG09
+ ;; size=8 bbWeight=0.53 PerfScore 0.80
+G_M35244_IG19: ; bbWeight=1.95, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x20] +[x22]
mov x20, x22
; gcrRegs +[x20]
;; size=4 bbWeight=1.95 PerfScore 0.97
-G_M35244_IG21: ; bbWeight=3.05, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=3.05, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
ldrb w0, [x20, #0x2E]
sub w1, w0, #26
@@ -193,13 +186,13 @@ G_M35244_IG21: ; bbWeight=3.05, gcrefRegs=180000 {x19 x20}, byrefRegs=000
ccmp w2, #1, z, hi
bls G_M35244_IG27
;; size=28 bbWeight=3.05 PerfScore 19.83
-G_M35244_IG22: ; bbWeight=3.05, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=3.05, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x19, x20
; gcrRegs +[x19]
b G_M35244_IG03
;; size=8 bbWeight=3.05 PerfScore 4.58
-G_M35244_IG23: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20]
mov x0, x19
; gcrRegs +[x0]
@@ -208,19 +201,25 @@ G_M35244_IG23: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG24: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG23: ; 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_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0 x19]
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=4 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
+ ret lr
+ ;; size=16 bbWeight=0 PerfScore 0.00
+G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -245,7 +244,7 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
- beq G_M35244_IG22
+ beq G_M35244_IG21
;; size=24 bbWeight=0 PerfScore 0.00
G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
@@ -293,7 +292,7 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
blr x3
; gcrRegs -[x0 x2 x19 x21]
; gcr arg pop 0
- b G_M35244_IG22
+ b G_M35244_IG21
;; size=124 bbWeight=0 PerfScore 0.00
G_M35244_IG29: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20] +[x19]
@@ -335,7 +334,7 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blt G_M35244_IG30
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG09
+ beq G_M35244_IG25
b G_M35244_IG26
;; size=24 bbWeight=0 PerfScore 0.00
G_M35244_IG32: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
@@ -357,7 +356,7 @@ G_M35244_IG33: ; 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_IG25
b G_M35244_IG03
;; size=48 bbWeight=0 PerfScore 0.00
G_M35244_IG34: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -375,7 +374,7 @@ RWD00 dd G_M35244_IG29 - 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_IG09 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
dd G_M35244_IG26 - G_M35244_IG02
...
+0 (0.00%) : 92828.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.27
-G_M417_IG04: ; bbWeight=0.70, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp x21, x22, [sp, #0x40]
- ldp x19, x20, [sp, #0x30]
- ldp fp, lr, [sp], #0x50
- ret lr
- ;; size=16 bbWeight=0.70 PerfScore 2.79
-G_M417_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+ b G_M417_IG07
+ ;; size=40 bbWeight=0.58 PerfScore 7.85
+G_M417_IG04: ; bbWeight=0.10, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21]
mov x22, x20
; gcrRegs +[x22]
ldr w0, [x20, #0x28]
cmp w0, #2
- bne G_M417_IG07
+ bne G_M417_IG06
;; size=16 bbWeight=0.10 PerfScore 0.50
-G_M417_IG06: ; bbWeight=0.79, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.79, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldr x0, [x22, #0x10]
; gcrRegs +[x0]
mov x1, x21
@@ -101,9 +96,9 @@ G_M417_IG06: ; bbWeight=0.79, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRe
ldr x22, [x22, #0x18]
ldr w0, [x22, #0x28]
cmp w0, #2
- beq G_M417_IG06
+ beq G_M417_IG05
;; size=52 bbWeight=0.79 PerfScore 15.75
-G_M417_IG07: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG06: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
mov x0, x22
; gcrRegs +[x0]
mov x1, x21
@@ -116,12 +111,17 @@ G_M417_IG07: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRe
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x2 x19 x21-x22]
- b G_M417_IG04
- ;; size=36 bbWeight=0.10 PerfScore 0.80
-G_M417_IG08: ; bbWeight=0.42, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=0.10 PerfScore 0.70
+G_M417_IG07: ; bbWeight=0.70, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldp x21, x22, [sp, #0x40]
+ ldp x19, x20, [sp, #0x30]
+ ldp fp, lr, [sp], #0x50
+ ret lr
+ ;; size=16 bbWeight=0.70 PerfScore 2.79
+G_M417_IG08: ; bbWeight=0.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.22
G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
@@ -173,25 +173,9 @@ G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr wzr, [x0]
blr x3
; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=76 bbWeight=0 PerfScore 0.00
G_M417_IG11: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19 x21]
- ldr x1, [x21, #0x80]
- ; gcrRegs +[x1]
- ldrsb wzr, [x19]
- add x2, fp, #16 // [V14 tmp9]
- mov x0, x19
- ; gcrRegs +[x0]
- movz x3, #0xD1FFAB1E // code for <unknown method>
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
- ; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
- ;; size=40 bbWeight=0 PerfScore 0.00
-G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
ldr x1, [x21, #0x88]
; gcrRegs +[x1]
@@ -205,25 +189,25 @@ G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
-G_M417_IG13: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21]
ldr x0, [x20]
ldr x1, [x0, #0x38]
ldr x1, [x1]
ldr x1, [x1, #0x40]
- cbz x1, G_M417_IG14
- b G_M417_IG15
+ cbz x1, G_M417_IG13
+ b G_M417_IG14
;; size=24 bbWeight=0 PerfScore 0.00
-G_M417_IG14: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M417_IG13: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov x1, x0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M417_IG14: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
mov x0, x1
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
@@ -244,17 +228,17 @@ G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr x1, [x0, #0x38]
ldr x1, [x1]
ldr x2, [x1, #0x48]
- cbz x2, G_M417_IG16
+ cbz x2, G_M417_IG15
mov x0, x2
- b G_M417_IG17
+ b G_M417_IG16
;; size=76 bbWeight=0 PerfScore 0.00
-G_M417_IG16: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG15: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
;; size=16 bbWeight=0 PerfScore 0.00
-G_M417_IG17: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG16: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
mov x1, x22
; gcrRegs +[x1]
mov x2, x21
@@ -267,29 +251,45 @@ G_M417_IG17: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=
ldr x4, [x4]
blr x4
; gcrRegs -[x1-x3 x19 x21-x22]
- b G_M417_IG04
+ b G_M417_IG07
;; size=36 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x19 x21]
+ ldr x1, [x21, #0x80]
+ ; gcrRegs +[x1]
+ ldrsb wzr, [x19]
+ add x2, fp, #16 // [V14 tmp9]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ movz x3, #0xD1FFAB1E // code for <unknown method>
+ movk x3, #0xD1FFAB1E LSL #16
+ movk x3, #0xD1FFAB1E LSL #32
+ ldr x3, [x3]
+ blr x3
+ ; gcrRegs -[x0-x1 x19 x21]
+ b G_M417_IG07
+ ;; size=40 bbWeight=0 PerfScore 0.00
+RWD00 dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG05 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG10 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG11 - G_M417_IG02
dd G_M417_IG11 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG11 - G_M417_IG02
+ dd G_M417_IG11 - G_M417_IG02
+ dd G_M417_IG17 - G_M417_IG02
+ dd G_M417_IG17 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
-; Total bytes of code 608, prolog size 20, PerfScore 42.97, 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.45, 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.linux.arm64.checked.mch
+0 (0.00%) : 514753.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, #0xD1FFAB1E 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%) : 472882.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, #0xD1FFAB1E 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%) : 492702.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, #0xD1FFAB1E 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%) : 502780.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, #0xD1FFAB1E 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%) : 519076.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, #0xD1FFAB1E 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, #0xD1FFAB1E 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]
@@ -137,44 +126,46 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov x22, x0
; gcrRegs +[x22]
;; size=12 bbWeight=0.32 PerfScore 0.64
-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
@@ -185,11 +176,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]
@@ -198,50 +189,51 @@ G_M35244_IG21: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
;; size=20 bbWeight=1 PerfScore 5.00
-G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
+G_M35244_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, #0xD1FFAB1E 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
@@ -262,19 +254,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
...
+4 (+0.46%) : 523249.dasm - DefaultNamespace.GCVariant2:runTest(int,int):ubyte:this (Tier1-OSR)
@@ -84,7 +84,7 @@ G_M46668_IG03: ; bbWeight=0.01, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
;; size=36 bbWeight=0.01 PerfScore 0.05
G_M46668_IG04: ; bbWeight=0.01, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
cmp w22, w19
- bge G_M46668_IG15
+ bge G_M46668_IG08
;; size=8 bbWeight=0.01 PerfScore 0.01
G_M46668_IG05: ; bbWeight=99.99, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
and w0, w22, #7
@@ -92,7 +92,7 @@ G_M46668_IG05: ; bbWeight=99.99, gcrefRegs=100000 {x20}, byrefRegs=0000 {
and w1, w1, #7
csneg w24, w0, w1, mi
cmp w24, #7
- bhi G_M46668_IG14
+ bhi G_M46668_IG07
mov w0, w24
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -129,10 +129,24 @@ G_M46668_IG06: ; bbWeight=12.64, gcrefRegs=100000 {x20}, byrefRegs=0000 {
; gcrRegs +[x0]
; gcr arg pop 0
str w22, [x0, #0x08]
- b G_M46668_IG14
- ;; size=80 bbWeight=12.64 PerfScore 227.54
-G_M46668_IG07: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+ ;; size=76 bbWeight=12.64 PerfScore 214.90
+G_M46668_IG07: ; bbWeight=99.99, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
+ add w22, w22, #1
+ cmp w22, w19
+ blt G_M46668_IG05
+ ;; size=12 bbWeight=99.99 PerfScore 199.98
+G_M46668_IG08: ; bbWeight=0.01, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+ movn w0, #0
+ mov w1, #2
+ bl <unknown method>
+ ; gcr arg pop 0
+ add w23, w23, #1
+ cmp w23, w21
+ bge G_M46668_IG16
+ b G_M46668_IG03
+ ;; size=28 bbWeight=0.01 PerfScore 0.05
+G_M46668_IG09: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -162,9 +176,9 @@ G_M46668_IG07: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {
; gcrRegs +[x0]
; gcr arg pop 0
strb wzr, [x0, #0x08]
- b G_M46668_IG14
+ b G_M46668_IG07
;; size=84 bbWeight=12.48 PerfScore 230.90
-G_M46668_IG08: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M46668_IG10: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -197,73 +211,73 @@ G_M46668_IG08: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {
; gcrRegs +[x0]
; gcr arg pop 0
str s8, [x0, #0x08]
- b G_M46668_IG14
+ b G_M46668_IG07
;; size=92 bbWeight=12.48 PerfScore 393.16
-G_M46668_IG09: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- ldr x3, [x20, #0x08]
- ; gcrRegs +[x3]
- strb w22, [x0, #0x08]
- mov x2, x0
- ; gcrRegs +[x2]
- sxtw x1, w22
- mov x0, x3
- movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
- ; gcrRegs -[x3]
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
- ; gcrRegs -[x0 x2]
- ; gcr arg pop 0
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- strb w22, [x0, #0x08]
- b G_M46668_IG14
- ;; size=80 bbWeight=12.48 PerfScore 224.66
-G_M46668_IG10: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- ldr x3, [x20, #0x08]
- ; gcrRegs +[x3]
- strh w22, [x0, #0x08]
- mov x2, x0
- ; gcrRegs +[x2]
- sxtw x1, w22
- mov x0, x3
- movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
- ; gcrRegs -[x3]
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
- ; gcrRegs -[x0 x2]
- ; gcr arg pop 0
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- strh w22, [x0, #0x08]
- b G_M46668_IG14
- ;; size=80 bbWeight=12.48 PerfScore 224.66
G_M46668_IG11: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ ; gcr arg pop 0
+ ldr x3, [x20, #0x08]
+ ; gcrRegs +[x3]
+ strb w22, [x0, #0x08]
+ mov x2, x0
+ ; gcrRegs +[x2]
+ sxtw x1, w22
+ mov x0, x3
+ movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
+ ; gcrRegs -[x3]
+ movk x3, #0xD1FFAB1E LSL #16
+ movk x3, #0xD1FFAB1E LSL #32
+ ldr x3, [x3]
+ blr x3
+ ; gcrRegs -[x0 x2]
+ ; gcr arg pop 0
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ ; gcr arg pop 0
+ strb w22, [x0, #0x08]
+ b G_M46668_IG07
+ ;; size=80 bbWeight=12.48 PerfScore 224.66
+G_M46668_IG12: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ ; gcr arg pop 0
+ ldr x3, [x20, #0x08]
+ ; gcrRegs +[x3]
+ strh w22, [x0, #0x08]
+ mov x2, x0
+ ; gcrRegs +[x2]
+ sxtw x1, w22
+ mov x0, x3
+ movz x3, #0xD1FFAB1E // code for CORINFO_HELP_ARRADDR_ST
+ ; gcrRegs -[x3]
+ movk x3, #0xD1FFAB1E LSL #16
+ movk x3, #0xD1FFAB1E LSL #32
+ ldr x3, [x3]
+ blr x3
+ ; gcrRegs -[x0 x2]
+ ; gcr arg pop 0
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ ; gcr arg pop 0
+ strh w22, [x0, #0x08]
+ b G_M46668_IG07
+ ;; size=80 bbWeight=12.48 PerfScore 224.66
+G_M46668_IG13: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -295,9 +309,9 @@ G_M46668_IG11: ; bbWeight=12.48, gcrefRegs=100000 {x20}, byrefRegs=0000 {
; gcr arg pop 0
sxtw x1, w22
str x1, [x0, #0x08]
- b G_M46668_IG14
+ b G_M46668_IG07
;; size=88 bbWeight=12.48 PerfScore 237.14
-G_M46668_IG12: ; bbWeight=12.47, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M46668_IG14: ; bbWeight=12.47, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -328,9 +342,9 @@ G_M46668_IG12: ; bbWeight=12.47, gcrefRegs=100000 {x20}, byrefRegs=0000 {
; gcrRegs +[x0]
; gcr arg pop 0
str d8, [x0, #0x08]
- b G_M46668_IG14
+ b G_M46668_IG07
;; size=84 bbWeight=12.47 PerfScore 461.44
-G_M46668_IG13: ; bbWeight=12.47, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M46668_IG15: ; bbWeight=12.47, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -360,24 +374,10 @@ G_M46668_IG13: ; bbWeight=12.47, gcrefRegs=100000 {x20}, byrefRegs=0000 {
; gcrRegs +[x0]
; gcr arg pop 0
strh w22, [x0, #0x08]
- ;; size=76 bbWeight=12.47 PerfScore 212.01
-G_M46668_IG14: ; bbWeight=99.99, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0]
- add w22, w22, #1
- cmp w22, w19
- blt G_M46668_IG05
- ;; size=12 bbWeight=99.99 PerfScore 199.98
-G_M46668_IG15: ; bbWeight=0.01, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
- movn w0, #0
- mov w1, #2
- bl <unknown method>
- ; gcr arg pop 0
- add w23, w23, #1
- cmp w23, w21
- blt G_M46668_IG03
- ;; size=24 bbWeight=0.01 PerfScore 0.04
+ b G_M46668_IG07
+ ;; size=80 bbWeight=12.47 PerfScore 224.48
G_M46668_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x20]
+ ; gcrRegs -[x0 x20]
mov w0, #1
;; size=4 bbWeight=0 PerfScore 0.00
G_M46668_IG17: ; bbWeight=0, epilog, nogc, extend
@@ -390,17 +390,17 @@ G_M46668_IG17: ; bbWeight=0, epilog, nogc, extend
...
libraries_tests.run.linux.arm64.Release.mch
-4 (-0.63%) : 636139.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
@@ -55,117 +55,44 @@ G_M8145_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=56 bbWeight=1 PerfScore 11.50
G_M8145_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
ldrb w0, [x19, #0x04]
- cbnz w0, G_M8145_IG13
+ cbnz w0, G_M8145_IG21
;; size=8 bbWeight=1 PerfScore 4.00
G_M8145_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
ldr x0, [x19, #0x10]
; gcrRegs +[x0]
- cbnz x0, G_M8145_IG05
+ cbnz x0, G_M8145_IG07
;; size=8 bbWeight=1 PerfScore 4.00
G_M8145_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
; gcrRegs -[x0]
mov w0, #3
- str w0, [x19]
- b G_M8145_IG08
- ;; size=12 bbWeight=0.50 PerfScore 1.25
-G_M8145_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- ldr w21, [x19]
- cbnz w21, G_M8145_IG17
- ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M8145_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
- mov w0, #1
str w0, [x19]
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M8145_IG07: ; bbWeight=0.50, epilog, nogc, extend
+G_M8145_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; byrRegs -[x19]
+ mov w0, wzr
+ ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M8145_IG06: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0xB8]
ldp x19, x20, [sp, #0xA8]
ldp fp, lr, [sp], #0xC0
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M8145_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; byrRegs -[x19]
- mov w0, wzr
- ;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M8145_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
+ ; byrRegs +[x19]
+ ldr w21, [x19]
+ cbnz w21, G_M8145_IG25
+ ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M8145_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+ mov w0, #1
+ str w0, [x19]
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M8145_IG09: ; bbWeight=0.50, epilog, nogc, extend
ldr x21, [sp, #0xB8]
ldp x19, x20, [sp, #0xA8]
ldp fp, lr, [sp], #0xC0
ret lr
;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M8145_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- mov x21, x0
- ; gcrRegs +[x21]
- movz x1, #0xD1FFAB1E // code for <unknown method>
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- ; gcrRegs -[x0]
- mov x0, x21
- ; gcrRegs +[x0]
- bl CORINFO_HELP_THROW
- ; gcrRegs -[x0 x21]
- ;; size=48 bbWeight=0 PerfScore 0.00
-G_M8145_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- uxtb w0, w0
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M8145_IG12: ; bbWeight=0, epilog, nogc, extend
- ldr x21, [sp, #0xB8]
- ldp x19, x20, [sp, #0xA8]
- ldp fp, lr, [sp], #0xC0
- ret lr
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M8145_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
- ; byrRegs +[x19]
- ldr x0, [x20, #0x38]
- ldr x0, [x0]
- ldr x0, [x0, #0x20]
- cbz x0, G_M8145_IG14
- b G_M8145_IG15
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M8145_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
- mov x0, x20
- movz x1, #0xD1FFAB1E
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M8145_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, nogc
- sub x1, x19, #24
- ldr x2, [x1, #0x18]
- str x2, [fp, #0x18]
- ldp q16, q17, [x1, #0x20]
- stp q16, q17, [fp, #0x20]
- ldp q16, q17, [x1, #0x40]
- stp q16, q17, [fp, #0x40]
- ldr x2, [x1, #0x60]
- str x2, [fp, #0x60]
- ;; size=36 bbWeight=0 PerfScore 0.00
-G_M8145_IG16: ; bbWeight=0, extend
- add x1, fp, #24 // [V14 tmp11]
- movz x2, #0xD1FFAB1E // code for <unknown method>
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- b G_M8145_IG03
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M8145_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- cmp w21, #3
- bhi G_M8145_IG10
- mov w0, w21
- adr x1, [@RWD00]
- ldr w1, [x1, x0, LSL #2]
- adr x2, [G_M8145_IG02]
- add x1, x1, x2
- br x1
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M8145_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M8145_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
ldr x0, [x19, #0x10]
; gcrRegs +[x0]
ldr x0, [x0, #0x10]
@@ -176,10 +103,10 @@ G_M8145_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
ldr x0, [x20, #0x38]
ldr x0, [x0]
ldr x1, [x0, #0x18]
- cbz x1, G_M8145_IG19
- b G_M8145_IG20
+ cbz x1, G_M8145_IG11
+ b G_M8145_IG12
;; size=40 bbWeight=0 PerfScore 0.00
-G_M8145_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M8145_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
mov x0, x20
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -187,7 +114,7 @@ G_M8145_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov x1, x0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M8145_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M8145_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
ldr x2, [x19, #0x10]
; gcrRegs +[x2]
add x0, fp, #104 // [V07 tmp4]
@@ -216,10 +143,10 @@ G_M8145_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
ldr x0, [x20, #0x38]
ldr x0, [x0]
ldr x1, [x0, #0x18]
- cbz x1, G_M8145_IG21
- b G_M8145_IG22
+ cbz x1, G_M8145_IG13
+ b G_M8145_IG14
;; size=104 bbWeight=0 PerfScore 0.00
-G_M8145_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M8145_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
; byrRegs -[x13-x14]
mov x0, x20
movz x1, #0xD1FFAB1E
@@ -228,7 +155,7 @@ G_M8145_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov x1, x0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M8145_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M8145_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
add x0, x19, #24
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
@@ -237,17 +164,17 @@ G_M8145_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
ldr x2, [x2]
blr x2
; byrRegs -[x0 x19]
- b G_M8145_IG11
+ b G_M8145_IG19
;; size=28 bbWeight=0 PerfScore 0.00
-G_M8145_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M8145_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
; byrRegs +[x19]
ldr x0, [x20, #0x38]
ldr x0, [x0]
ldr x1, [x0, #0x18]
- cbz x1, G_M8145_IG24
- b G_M8145_IG25
+ cbz x1, G_M8145_IG16
+ b G_M8145_IG17
;; size=20 bbWeight=0 PerfScore 0.00
-G_M8145_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M8145_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
mov x0, x20
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -255,7 +182,7 @@ G_M8145_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov x1, x0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M8145_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M8145_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
add x0, x19, #24
; byrRegs +[x0]
movz x2, #0xD1FFAB1E // code for System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
@@ -264,15 +191,88 @@ G_M8145_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byr
ldr x2, [x2]
blr x2
; byrRegs -[x0 x19]
- b G_M8145_IG11
+ b G_M8145_IG19
;; size=28 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M8145_IG06 - G_M8145_IG02
- dd G_M8145_IG18 - G_M8145_IG02
- dd G_M8145_IG23 - G_M8145_IG02
- dd G_M8145_IG08 - G_M8145_IG02
+G_M8145_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ mov x21, x0
+ ; gcrRegs +[x21]
+ movz x1, #0xD1FFAB1E // code for <unknown method>
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
+ ldr x1, [x1]
+ blr x1
+ ; gcrRegs -[x0]
+ mov x0, x21
+ ; gcrRegs +[x0]
+ bl CORINFO_HELP_THROW
+ ; gcrRegs -[x0 x21]
+ ;; size=48 bbWeight=0 PerfScore 0.00
+G_M8145_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ uxtb w0, w0
+ ;; size=4 bbWeight=0 PerfScore 0.00
+G_M8145_IG20: ; bbWeight=0, epilog, nogc, extend
+ ldr x21, [sp, #0xB8]
+ ldp x19, x20, [sp, #0xA8]
+ ldp fp, lr, [sp], #0xC0
...
-12 (-0.46%) : 453371.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
@@ -95,13 +95,13 @@ G_M38617_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x19]
;; size=36 bbWeight=1 PerfScore 7.00
G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
- cbz x19, G_M38617_IG18
+ cbz x19, G_M38617_IG36
ldr x0, [x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
- bne G_M38617_IG20
+ bne G_M38617_IG38
ldr x0, [x20, #0x10]
; gcrRegs +[x0]
ldr x1, [x0]
@@ -109,15 +109,15 @@ G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=180
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x1, x2
- bne G_M38617_IG19
+ bne G_M38617_IG37
ldr w21, [x0, #0x0C]
;; size=60 bbWeight=1 PerfScore 19.00
G_M38617_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
cmp w21, #2
- bgt G_M38617_IG22
+ bgt G_M38617_IG12
cmp w21, #1
- bne G_M38617_IG21
+ bne G_M38617_IG11
mov x0, x19
; gcrRegs +[x0]
bl <unknown method>
@@ -136,7 +136,7 @@ G_M38617_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x1, x2
- bne G_M38617_IG15
+ bne G_M38617_IG10
;; size=72 bbWeight=1 PerfScore 16.50
G_M38617_IG04: ; bbWeight=0.93, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
ldr w20, [x0, #0x0C]
@@ -144,11 +144,11 @@ G_M38617_IG04: ; bbWeight=0.93, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=
G_M38617_IG05: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
cmp w20, #1
- beq G_M38617_IG36
+ beq G_M38617_IG33
cmp w20, #2
- beq G_M38617_IG35
+ beq G_M38617_IG32
sub w20, w20, #12
- cbnz w20, G_M38617_IG30
+ cbnz w20, G_M38617_IG27
;; size=24 bbWeight=1 PerfScore 4.50
G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V00}
@@ -156,7 +156,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=480000
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
- beq G_M38617_IG33
+ beq G_M38617_IG30
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -239,7 +239,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=480000
ldr w0, [x0, #0x08]
; gcrRegs -[x0]
cmp w1, w0
- bge G_M38617_IG34
+ bge G_M38617_IG31
;; size=228 bbWeight=1 PerfScore 51.00
G_M38617_IG07: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x08]
@@ -253,95 +253,18 @@ G_M38617_IG07: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2 x22]
; gcr arg pop 0
- b G_M38617_IG16
- ;; size=32 bbWeight=1 PerfScore 10.50
-G_M38617_IG08: ; bbWeight=0, gcVars=0000000000140100 {V00 V06 V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x19]
- ; GC ptr vars +{V00 V06 V08 V09 V18 V20}
- b G_M38617_IG10
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M38617_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x10] // [V09 loc6]
+ ;; size=28 bbWeight=1 PerfScore 9.50
+G_M38617_IG08: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ mov x0, x19
; gcrRegs +[x0]
- movz x11, #0xD1FFAB1E // code for <unknown method>
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
- ldr x1, [x11]
- blr x1
- ; gcr arg pop 0
- movz x1, #0xD1FFAB1E // code for System.Xml.Xsl.Runtime.XmlQueryRuntime:EnsureNavigator(System.Object):System.Xml.XPath.XPathNavigator
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- ; gcr arg pop 0
- mov x1, x0
- ; gcrRegs +[x1]
- ldr x0, [fp, #0x18] // [V06 loc3]
- movz x2, #0xD1FFAB1E // code for System.Xml.Xsl.Runtime.XmlQuerySequence`1[System.__Canon]:Add(System.__Canon):this
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- blr x2
- ; gcrRegs -[x0-x1]
- ; gcr arg pop 0
- ;; size=72 bbWeight=0 PerfScore 0.00
-G_M38617_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x10] // [V09 loc6]
- ; gcrRegs +[x0]
- movz x11, #0xD1FFAB1E // code for <unknown method>
- movk x11, #0xD1FFAB1E LSL #16
- movk x11, #0xD1FFAB1E LSL #32
- ldr x1, [x11]
- blr x1
- ; gcrRegs -[x0]
- ; gcr arg pop 0
- cbnz w0, G_M38617_IG09
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M38617_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x28] // [V67 PSPSym]
- bl G_M38617_IG39
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M38617_IG12: ; bbWeight=0, nogc, extend
- nop
- ;; size=4 bbWeight=0 PerfScore 0.00
-G_M38617_IG13: ; bbWeight=0, gcVars=0000000000040100 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars -{V08 V09 V18 V20}
- ldr x0, [fp, #0x18] // [V06 loc3]
- ; gcrRegs +[x0]
- mov x19, x0
- ; gcrRegs +[x19]
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M38617_IG14: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- ; GC ptr vars -{V06}
- mov x1, x19
- ; gcrRegs +[x1]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_CHKCASTCLASS
- ; gcrRegs -[x1 x19] +[x0]
- ; gcr arg pop 0
- ldr x2, [fp, #0x20] // [V00 this]
- ; gcrRegs +[x2]
- ldr x1, [x2, #0x68]
- ; gcrRegs +[x1]
- movz x2, #0xD1FFAB1E // code for System.Xml.Xsl.Runtime.XmlQueryNodeSequence:DocOrderDistinct(System.Collections.Generic.IComparer`1[System.Xml.XPath.XPathNavigator]):System.Xml.Xsl.Runtime.XmlQueryNodeSequence:this
- ; gcrRegs -[x2]
- movk x2, #0xD1FFAB1E LSL #16
- movk x2, #0xD1FFAB1E LSL #32
- ldr x2, [x2]
- ldr wzr, [x0]
- ; GC ptr vars -{V00}
- blr x2
- ; gcrRegs -[x1]
- ; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- b G_M38617_IG16
- ;; size=60 bbWeight=0 PerfScore 0.00
-G_M38617_IG15: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=4 bbWeight=1 PerfScore 0.50
+G_M38617_IG09: ; bbWeight=1, epilog, nogc, extend
+ ldp x21, x22, [sp, #0x40]
+ ldp x19, x20, [sp, #0x30]
+ ldp fp, lr, [sp], #0x50
+ ret lr
+ ;; size=16 bbWeight=1 PerfScore 4.00
+G_M38617_IG10: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[x22]
; GC ptr vars +{V00 V08}
ldr x1, [x0]
@@ -353,96 +276,10 @@ G_M38617_IG15: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=
sxtw w20, w0
b G_M38617_IG05
;; size=24 bbWeight=0.07 PerfScore 0.80
-G_M38617_IG16: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x22]
- ; GC ptr vars -{V00 V08}
- mov x0, x19
- ; gcrRegs +[x0]
- ;; size=4 bbWeight=1 PerfScore 0.50
-G_M38617_IG17: ; bbWeight=1, epilog, nogc, extend
- ldp x21, x22, [sp, #0x40]
- ldp x19, x20, [sp, #0x30]
- ldp fp, lr, [sp], #0x50
- ret lr
- ;; size=16 bbWeight=1 PerfScore 4.00
-G_M38617_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19]
- movz x0, #0xD1FFAB1E // code for <unknown method>
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- blr x0
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- movz x0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- mov x1, #1
- bl CORINFO_HELP_NEWARR_1_OBJ
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- mov x20, x0
- ; gcrRegs +[x20]
- movz x0, #0xD1FFAB1E
- ; gcrRegs -[x0]
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- str x0, [x20, #0x10]
- movz x0, #0xD1FFAB1E
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- bl CORINFO_HELP_NEWSFAST
- ; gcrRegs +[x0]
- ; gcr arg pop 0
- mov x22, x0
- ; gcrRegs +[x22]
- mov x1, x19
- ; gcrRegs +[x1]
- mov x2, x20
- ; gcrRegs +[x2]
- movz x3, #0xD1FFAB1E // code for <unknown method>
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
- ; gcrRegs -[x0-x2 x19-x20]
- ; gcr arg pop 0
- mov x0, x22
- ; gcrRegs +[x0]
- bl CORINFO_HELP_THROW
- ; gcrRegs -[x0 x22]
- ; gcr arg pop 0
...
-4 (-0.43%) : 672472.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; fp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 21139
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 21139
; 3 inlinees with PGO data; 9 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -77,13 +77,9 @@ G_M57106_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x20, x0
- bne G_M57106_IG04
+ beq G_M57106_IG10
;; size=24 bbWeight=1 PerfScore 6.00
-G_M57106_IG03: ; bbWeight=0.34, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- mov w21, #9
- b G_M57106_IG05
- ;; size=8 bbWeight=0.34 PerfScore 0.51
-G_M57106_IG04: ; bbWeight=0.66, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M57106_IG03: ; bbWeight=0.66, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
ldr x1, [x20, #0x58]
@@ -93,12 +89,12 @@ G_M57106_IG04: ; bbWeight=0.66, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
; gcr arg pop 0
sxtw w21, w0
;; size=20 bbWeight=0.66 PerfScore 5.28
-G_M57106_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w22, w21, #4
cmp w22, #5
- bne G_M57106_IG14
+ bne G_M57106_IG12
;; size=12 bbWeight=1 PerfScore 2.00
-G_M57106_IG06: ; bbWeight=0.87, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG05: ; bbWeight=0.87, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov x1, x19
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -111,21 +107,9 @@ G_M57106_IG06: ; bbWeight=0.87, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x20, x1
- bne G_M57106_IG08
+ beq G_M57106_IG11
;; size=40 bbWeight=0.87 PerfScore 5.19
-G_M57106_IG07: ; bbWeight=0.31, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_TypeArgumentsWithAnnotations():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this
- movk x1, #0xD1FFAB1E LSL #16
- movk x1, #0xD1FFAB1E LSL #32
- ldr x1, [x1]
- blr x1
- ; gcr arg pop 0
- mov x19, x0
- ; gcrRegs +[x19]
- b G_M57106_IG09
- ;; size=28 bbWeight=0.31 PerfScore 2.18
-G_M57106_IG08: ; bbWeight=0.55, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
+G_M57106_IG06: ; bbWeight=0.55, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
ldr x1, [x20, #0xF0]
ldr x1, [x1, #0x18]
blr x1
@@ -133,7 +117,7 @@ G_M57106_IG08: ; bbWeight=0.55, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
mov x19, x0
; gcrRegs +[x19]
;; size=16 bbWeight=0.55 PerfScore 4.15
-G_M57106_IG09: ; bbWeight=0.87, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG07: ; bbWeight=0.87, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -143,7 +127,7 @@ G_M57106_IG09: ; bbWeight=0.87, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
ldr w1, [x19, #0x08]
cbnz w1, G_M57106_IG16
;; size=24 bbWeight=0.87 PerfScore 7.35
-G_M57106_IG10: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57106_IG08: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x19-x20]
movz x1, #0xD1FFAB1E // box for <unknown class>:<unknown field>
movk x1, #0xD1FFAB1E LSL #16
@@ -153,7 +137,7 @@ G_M57106_IG10: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x0, [x1, #0x08]
; gcrRegs +[x0]
;; size=20 bbWeight=0.80 PerfScore 5.98
-G_M57106_IG11: ; bbWeight=0.87, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M57106_IG09: ; bbWeight=0.87, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x1]
ldr x25, [sp, #0x58]
ldp x23, x24, [sp, #0x48]
@@ -162,27 +146,27 @@ G_M57106_IG11: ; bbWeight=0.87, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldp fp, lr, [sp], #0x60
ret lr
;; size=24 bbWeight=0.87 PerfScore 6.06
-G_M57106_IG12: ; bbWeight=0.13, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E // box for <unknown class>:<unknown field>
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldr x0, [x0, #0x08]
- ;; size=20 bbWeight=0.13 PerfScore 1.01
-G_M57106_IG13: ; bbWeight=0.13, epilog, nogc, extend
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldp fp, lr, [sp], #0x60
- ret lr
- ;; size=24 bbWeight=0.13 PerfScore 0.94
-G_M57106_IG14: ; bbWeight=0.13, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M57106_IG10: ; bbWeight=0.34, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x19]
+ mov w21, #9
+ b G_M57106_IG04
+ ;; size=8 bbWeight=0.34 PerfScore 0.51
+G_M57106_IG11: ; bbWeight=0.31, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19] +[x0]
+ movz x1, #0xD1FFAB1E // code for Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_TypeArgumentsWithAnnotations():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
+ ldr x1, [x1]
+ blr x1
+ ; gcr arg pop 0
+ mov x19, x0
+ ; gcrRegs +[x19]
+ b G_M57106_IG07
+ ;; size=28 bbWeight=0.31 PerfScore 2.18
+G_M57106_IG12: ; bbWeight=0.13, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
cmp w22, #7
- bhi G_M57106_IG15
+ bhi G_M57106_IG13
mov w0, w22
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -190,13 +174,29 @@ G_M57106_IG14: ; bbWeight=0.13, gcVars=0000000000000000 {}, gcrefRegs=800
add x1, x1, x2
br x1
;; size=32 bbWeight=0.13 PerfScore 1.01
-G_M57106_IG15: ; bbWeight=0.13, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG13: ; bbWeight=0.13, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, #15
bne G_M57106_IG34
- b G_M57106_IG12
- ;; size=12 bbWeight=0.13 PerfScore 0.34
-G_M57106_IG16: ; bbWeight=0.07, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x20]
+ ;; size=8 bbWeight=0.13 PerfScore 0.20
+G_M57106_IG14: ; bbWeight=0.13, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19]
+ movz x0, #0xD1FFAB1E // box for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
+ ; gcrRegs +[x0]
+ ldr x0, [x0, #0x08]
+ ;; size=20 bbWeight=0.13 PerfScore 1.01
+G_M57106_IG15: ; bbWeight=0.13, epilog, nogc, extend
+ ldr x25, [sp, #0x58]
+ ldp x23, x24, [sp, #0x48]
+ ldp x21, x22, [sp, #0x38]
+ ldp x19, x20, [sp, #0x28]
+ ldp fp, lr, [sp], #0x60
+ ret lr
+ ;; size=24 bbWeight=0.13 PerfScore 0.94
+G_M57106_IG16: ; bbWeight=0.07, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x0] +[x19-x20]
sxtw x1, w1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -209,13 +209,13 @@ G_M57106_IG16: ; bbWeight=0.07, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov w23, wzr
ldr w24, [x21, #0x08]
cmp w24, #0
- ble G_M57106_IG24
+ ble G_M57106_IG25
;; size=40 bbWeight=0.07 PerfScore 0.57
G_M57106_IG17: ; bbWeight=0.03, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w1, [x19, #0x08]
cmp w1, w24
- blt G_M57106_IG25
+ blt G_M57106_IG26
;; size=12 bbWeight=0.03 PerfScore 0.15
G_M57106_IG18: ; bbWeight=0.07, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
mov w1, #24
@@ -231,8 +231,8 @@ G_M57106_IG18: ; bbWeight=0.07, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
cmp x2, x3
- bne G_M57106_IG36
- cbz x0, G_M57106_IG22
+ bne G_M57106_IG37
+ cbz x0, G_M57106_IG23
;; size=52 bbWeight=0.07 PerfScore 1.37
G_M57106_IG19: ; bbWeight=0.07, gcrefRegs=380003 {x0 x1 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x22]
@@ -241,7 +241,7 @@ G_M57106_IG19: ; bbWeight=0.07, gcrefRegs=380003 {x0 x1 x19 x20 x21}, byr
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
cmp x2, x3
- bne G_M57106_IG35
+ bne G_M57106_IG36
;; size=24 bbWeight=0.07 PerfScore 0.40
G_M57106_IG20: ; bbWeight=0.07, gcrefRegs=380002 {x1 x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
@@ -259,14 +259,18 @@ G_M57106_IG21: ; bbWeight=0.07, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
add w23, w23, #1
cmp w24, w23
bgt G_M57106_IG18
- b G_M57106_IG24
- ;; size=28 bbWeight=0.07 PerfScore 0.33
-G_M57106_IG22: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+ ;; size=24 bbWeight=0.07 PerfScore 0.27
+G_M57106_IG22: ; bbWeight=0.03, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19-x20]
+ b G_M57106_IG25
+ ;; size=4 bbWeight=0.03 PerfScore 0.03
+G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x19-x20]
mov x2, xzr
; gcrRegs +[x2]
b G_M57106_IG21
;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG24: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
sxtw x1, w23
mov x0, x21
; gcrRegs +[x0]
@@ -275,19 +279,19 @@ G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
; gcr arg pop 0
add w23, w23, #1
cmp w24, w23
- bgt G_M57106_IG25
+ bgt G_M57106_IG26
;; size=24 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG24: ; bbWeight=0.07, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M57106_IG25: ; bbWeight=0.07, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19-x20]
mov x0, x21
; gcrRegs +[x0]
- b G_M57106_IG11
+ b G_M57106_IG09
;; size=8 bbWeight=0.07 PerfScore 0.10
-G_M57106_IG25: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG26: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
...
+0 (0.00%) : 520178.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -73,30 +73,22 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M35244_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
bl <unknown method>
; gcr arg pop 0
- cbz w0, G_M35244_IG03
+ cbz w0, G_M35244_IG55
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- beq G_M35244_IG04
+ bne G_M35244_IG55
;; size=24 bbWeight=1 PerfScore 7.00
-G_M35244_IG03: ; bbWeight=1.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[x19]
- ldp x21, x22, [sp, #0x20]
- ldp x19, x20, [sp, #0x10]
- ldp fp, lr, [sp], #0x30
- ret lr
- ;; size=16 bbWeight=1.28 PerfScore 5.14
-G_M35244_IG04: ; bbWeight=3.80, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[x19]
+G_M35244_IG03: ; bbWeight=3.80, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
sub w1, w0, #3
cmp w1, #5
- bls G_M35244_IG46
+ bls G_M35244_IG45
;; size=16 bbWeight=3.80 PerfScore 19.00
-G_M35244_IG05: ; bbWeight=3.40, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=3.40, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG03
+ bhi G_M35244_IG55
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -104,11 +96,11 @@ G_M35244_IG05: ; bbWeight=3.40, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
add x0, x0, x2
br x0
;; size=36 bbWeight=3.40 PerfScore 27.20
-G_M35244_IG06: ; bbWeight=0.07, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M35244_IG05: ; bbWeight=0.07, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x20-x21]
mov w22, #1
;; size=4 bbWeight=0.07 PerfScore 0.04
-G_M35244_IG07: ; bbWeight=0.20, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=0.20, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
sub w22, w22, #1
add x14, x21, #24
; byrRegs +[x14]
@@ -137,12 +129,12 @@ G_M35244_IG07: ; bbWeight=0.20, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
; byrRegs -[x14]
ldr x14, [x19, #0x08]
; gcrRegs +[x14]
- cbnz x14, G_M35244_IG10
+ cbnz x14, G_M35244_IG09
;; size=64 bbWeight=0.20 PerfScore 3.00
-G_M35244_IG08: ; bbWeight=0.20, gcrefRegs=384000 {x14 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
- cbz x14, G_M35244_IG26
+G_M35244_IG07: ; bbWeight=0.20, gcrefRegs=384000 {x14 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ cbz x14, G_M35244_IG25
;; size=4 bbWeight=0.20 PerfScore 0.20
-G_M35244_IG09: ; bbWeight=3.20, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=3.20, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x14]
add x14, x19, #8
; byrRegs +[x14]
@@ -151,80 +143,80 @@ G_M35244_IG09: ; bbWeight=3.20, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15 x19 x21]
; byrRegs -[x14]
- b G_M35244_IG40
+ b G_M35244_IG39
;; size=16 bbWeight=3.20 PerfScore 9.60
-G_M35244_IG10: ; bbWeight=0.10, gcrefRegs=384000 {x14 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=0.10, gcrefRegs=384000 {x14 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x14 x19 x21]
ldr x15, [x14]
movz x12, #0xD1FFAB1E
movk x12, #0xD1FFAB1E LSL #16
movk x12, #0xD1FFAB1E LSL #32
cmp x15, x12
- beq G_M35244_IG08
+ beq G_M35244_IG07
;; size=24 bbWeight=0.10 PerfScore 0.60
-G_M35244_IG11: ; bbWeight=0.05, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M35244_IG10: ; bbWeight=0.05, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x14]
mov x14, xzr
; gcrRegs +[x14]
- b G_M35244_IG08
+ b G_M35244_IG07
;; size=8 bbWeight=0.05 PerfScore 0.08
-G_M35244_IG12: ; bbWeight=0.87, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.87, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x14 x21]
mov w21, #1
;; size=4 bbWeight=0.87 PerfScore 0.43
-G_M35244_IG13: ; bbWeight=2.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
sub w21, w21, #1
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG16
+ cbz x22, G_M35244_IG15
;; size=12 bbWeight=2.40 PerfScore 4.80
-G_M35244_IG14: ; bbWeight=1.20, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.20, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
ldr x1, [x22]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x1, x0
- beq G_M35244_IG16
+ beq G_M35244_IG15
;; size=24 bbWeight=1.20 PerfScore 7.20
-G_M35244_IG15: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
mov x22, xzr
; gcrRegs +[x22]
;; size=4 bbWeight=0.60 PerfScore 0.30
-G_M35244_IG16: ; bbWeight=2.40, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG31
+G_M35244_IG15: ; bbWeight=2.40, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+ cbnz x22, G_M35244_IG30
;; size=4 bbWeight=2.40 PerfScore 2.40
-G_M35244_IG17: ; bbWeight=1.42, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=1.42, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
mov x22, x20
; gcrRegs +[x22]
- cbz x22, G_M35244_IG19
+ cbz x22, G_M35244_IG18
;; size=8 bbWeight=1.42 PerfScore 2.13
-G_M35244_IG18: ; bbWeight=0.71, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=0.71, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x22]
cmp x1, x0
- bne G_M35244_IG22
+ bne G_M35244_IG21
;; size=24 bbWeight=0.71 PerfScore 4.27
-G_M35244_IG19: ; bbWeight=1.42, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=1.42, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20]
ldr w1, [x22, #0x10]
cmp w21, w1
- bhs G_M35244_IG54
+ bhs G_M35244_IG53
ldr x1, [x22, #0x08]
; gcrRegs +[x1]
ldr w0, [x1, #0x08]
cmp w21, w0
- bhs G_M35244_IG55
+ bhs G_M35244_IG54
add x1, x1, #16
; gcrRegs -[x1]
; byrRegs +[x1]
ldr x20, [x1, w21, UXTW #3]
; gcrRegs +[x20]
;; size=36 bbWeight=1.42 PerfScore 22.04
-G_M35244_IG20: ; bbWeight=2.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=2.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
; byrRegs -[x1]
ldrb w1, [x20, #0x2E]
@@ -233,12 +225,12 @@ G_M35244_IG20: ; bbWeight=2.40, gcrefRegs=180000 {x19 x20}, byrefRegs=000
cmp w1, #24
ccmp w0, #1, z, ne
ccmp w2, #1, z, hi
- bhi G_M35244_IG40
+ bhi G_M35244_IG39
;; size=28 bbWeight=2.40 PerfScore 15.60
-G_M35244_IG21: ; bbWeight=0.20, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
- b G_M35244_IG33
+G_M35244_IG20: ; bbWeight=0.20, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+ b G_M35244_IG32
;; size=4 bbWeight=0.20 PerfScore 0.20
-G_M35244_IG22: ; bbWeight=0.36, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.36, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov x1, x20
; gcrRegs +[x1]
bl CORINFO_HELP_CHKCASTCLASS_SPECIAL
@@ -246,15 +238,15 @@ G_M35244_IG22: ; bbWeight=0.36, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcr arg pop 0
mov x22, x0
; gcrRegs +[x22]
- b G_M35244_IG19
+ b G_M35244_IG18
;; size=16 bbWeight=0.36 PerfScore 1.07
-G_M35244_IG23: ; bbWeight=2.40, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=2.40, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0 x22]
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG28
+ cbz x20, G_M35244_IG27
;; size=8 bbWeight=2.40 PerfScore 9.60
-G_M35244_IG24: ; bbWeight=1.69, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=1.69, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -263,66 +255,66 @@ G_M35244_IG24: ; bbWeight=1.69, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG12
+ cbz x0, G_M35244_IG11
;; size=24 bbWeight=1.69 PerfScore 6.74
-G_M35244_IG25: ; bbWeight=0.82, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0.82, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
- b G_M35244_IG13
+ b G_M35244_IG12
;; size=8 bbWeight=0.82 PerfScore 3.27
-G_M35244_IG26: ; bbWeight=0.20, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG25: ; bbWeight=0.20, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] +[x21]
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
mov x19, x1
- cbz x19, G_M35244_IG37
+ cbz x19, G_M35244_IG36
;; size=12 bbWeight=0.20 PerfScore 0.90
-G_M35244_IG27: ; bbWeight=0.10, gcrefRegs=380002 {x1 x19 x20 x21}, byrefRegs=0000 {}, byref
- b G_M35244_IG29
+G_M35244_IG26: ; bbWeight=0.10, gcrefRegs=380002 {x1 x19 x20 x21}, byrefRegs=0000 {}, byref
+ b G_M35244_IG28
;; size=4 bbWeight=0.10 PerfScore 0.10
-G_M35244_IG28: ; bbWeight=0.71, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG27: ; bbWeight=0.71, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x1 x21]
mov w21, wzr
- b G_M35244_IG13
+ b G_M35244_IG12
;; size=8 bbWeight=0.71 PerfScore 1.07
-G_M35244_IG29: ; bbWeight=0.10, gcrefRegs=380002 {x1 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0.10, gcrefRegs=380002 {x1 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x1 x21]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x2, [x19]
cmp x2, x0
- beq G_M35244_IG37
...
+0 (0.00%) : 40524.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -64,22 +64,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_IG18
+ cbz w0, G_M35244_IG48
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG18
+ bne G_M35244_IG48
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=3.71, 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_IG31
;; size=16 bbWeight=3.71 PerfScore 18.57
G_M35244_IG04: ; bbWeight=3.43, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG18
+ bhi G_M35244_IG48
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -90,7 +90,7 @@ G_M35244_IG04: ; bbWeight=3.43, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG05: ; bbWeight=2.43, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG21
+ cbz x20, G_M35244_IG20
;; size=8 bbWeight=2.43 PerfScore 9.71
G_M35244_IG06: ; bbWeight=1.82, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
@@ -101,7 +101,7 @@ G_M35244_IG06: ; bbWeight=1.82, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG20
+ cbz x0, G_M35244_IG19
;; size=24 bbWeight=1.82 PerfScore 7.29
G_M35244_IG07: ; bbWeight=1.05, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
ldr w21, [x0, #0x10]
@@ -127,7 +127,7 @@ G_M35244_IG10: ; bbWeight=0.61, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs +[x22]
;; size=4 bbWeight=0.61 PerfScore 0.30
G_M35244_IG11: ; bbWeight=2.43, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG19
+ cbnz x22, G_M35244_IG18
;; size=4 bbWeight=2.43 PerfScore 2.43
G_M35244_IG12: ; bbWeight=1.49, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
@@ -157,12 +157,12 @@ G_M35244_IG15: ; bbWeight=1.49, gcrefRegs=480000 {x19 x22}, byrefRegs=000
; gcrRegs -[x0]
ldr w0, [x22, #0x10]
cmp w21, w0
- bhs G_M35244_IG47
+ bhs G_M35244_IG46
ldr x0, [x22, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
cmp w21, w1
- bhs G_M35244_IG48
+ bhs G_M35244_IG47
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
@@ -178,7 +178,7 @@ G_M35244_IG16: ; bbWeight=2.43, gcrefRegs=180000 {x19 x20}, byrefRegs=000
cmp w0, #24
ccmp w1, #1, z, ne
ccmp w2, #1, z, hi
- bls G_M35244_IG34
+ bls G_M35244_IG33
;; size=28 bbWeight=2.43 PerfScore 15.79
G_M35244_IG17: ; bbWeight=2.43, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -186,71 +186,64 @@ G_M35244_IG17: ; bbWeight=2.43, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
; gcrRegs +[x19]
b G_M35244_IG03
;; size=8 bbWeight=2.43 PerfScore 3.64
-G_M35244_IG18: ; bbWeight=1.33, 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=1.33 PerfScore 5.31
-G_M35244_IG19: ; bbWeight=0.94, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19 x22]
+G_M35244_IG18: ; bbWeight=0.94, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x20] +[x22]
mov x20, x22
; gcrRegs +[x20]
b G_M35244_IG16
;; size=8 bbWeight=0.94 PerfScore 1.41
-G_M35244_IG20: ; bbWeight=0.77, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=0.77, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22]
mov w21, #1
b G_M35244_IG08
;; size=8 bbWeight=0.77 PerfScore 1.15
-G_M35244_IG21: ; bbWeight=0.61, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=0.61, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov w21, wzr
b G_M35244_IG08
;; size=8 bbWeight=0.61 PerfScore 0.91
-G_M35244_IG22: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG21: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x20]
ldr w1, [x19, #0x24]
cmp w1, #1
- bne G_M35244_IG46
+ bne G_M35244_IG45
;; size=12 bbWeight=0.29 PerfScore 1.29
-G_M35244_IG23: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
mov x19, x20
- cbz x19, G_M35244_IG26
+ cbz x19, G_M35244_IG25
;; size=12 bbWeight=0.29 PerfScore 1.29
-G_M35244_IG24: ; bbWeight=0.14, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=0.14, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x1, [x19]
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x1, x0
- beq G_M35244_IG26
+ beq G_M35244_IG25
;; size=24 bbWeight=0.14 PerfScore 0.86
-G_M35244_IG25: ; bbWeight=0.07, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0.07, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x19, xzr
; gcrRegs +[x19]
;; size=4 bbWeight=0.07 PerfScore 0.04
-G_M35244_IG26: ; bbWeight=0.29, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cbnz x19, G_M35244_IG39
+G_M35244_IG25: ; bbWeight=0.29, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ cbnz x19, G_M35244_IG38
;; size=4 bbWeight=0.29 PerfScore 0.29
-G_M35244_IG27: ; bbWeight=0.18, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG26: ; bbWeight=0.18, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19]
mov x19, x20
; gcrRegs +[x19]
- cbz x19, G_M35244_IG30
+ cbz x19, G_M35244_IG29
;; size=8 bbWeight=0.18 PerfScore 0.26
-G_M35244_IG28: ; bbWeight=0.09, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0.09, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x19]
cmp x1, x0
- beq G_M35244_IG30
+ beq G_M35244_IG29
;; size=24 bbWeight=0.09 PerfScore 0.53
-G_M35244_IG29: ; bbWeight=0.04, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; bbWeight=0.04, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x1, x20
; gcrRegs +[x1]
@@ -260,22 +253,22 @@ G_M35244_IG29: ; bbWeight=0.04, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
mov x19, x0
; gcrRegs +[x19]
;; size=12 bbWeight=0.04 PerfScore 0.09
-G_M35244_IG30: ; bbWeight=0.18, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0.18, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w0, [x19, #0x10]
- cbz w0, G_M35244_IG47
+ cbz w0, G_M35244_IG46
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
ldr w1, [x0, #0x08]
cmp w1, #0
- bls G_M35244_IG48
+ bls G_M35244_IG47
ldr x19, [x0, #0x10]
;; size=28 bbWeight=0.18 PerfScore 2.54
-G_M35244_IG31: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG30: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
b G_M35244_IG03
;; size=4 bbWeight=0.29 PerfScore 0.29
-G_M35244_IG32: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this
@@ -283,24 +276,24 @@ G_M35244_IG32: ; bbWeight=0.29, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
;; size=20 bbWeight=0.29 PerfScore 1.43
-G_M35244_IG33: ; bbWeight=0.29, epilog, nogc, extend
+G_M35244_IG32: ; bbWeight=0.29, 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.29 PerfScore 1.14
-G_M35244_IG34: ; bbWeight=0.14, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG33: ; bbWeight=0.14, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0] +[x20]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG35
+ cbz x0, G_M35244_IG34
ldrb w0, [x0, #0x2E]
; gcrRegs -[x0]
cmp w0, #32
beq G_M35244_IG17
;; size=20 bbWeight=0.14 PerfScore 1.21
-G_M35244_IG35: ; bbWeight=0.14, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG34: ; bbWeight=0.14, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -327,9 +320,9 @@ G_M35244_IG35: ; bbWeight=0.14, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcr arg pop 0
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
- cbz x1, G_M35244_IG41
+ cbz x1, G_M35244_IG40
;; size=72 bbWeight=0.14 PerfScore 2.71
-G_M35244_IG36: ; bbWeight=0.11, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG35: ; bbWeight=0.11, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x1]
ldr x1, [x19, #0x08]
; gcrRegs +[x1]
@@ -339,12 +332,12 @@ G_M35244_IG36: ; bbWeight=0.11, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbz x0, G_M35244_IG40
+ cbz x0, G_M35244_IG39
;; size=24 bbWeight=0.11 PerfScore 0.70
-G_M35244_IG37: ; bbWeight=0.06, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M35244_IG36: ; bbWeight=0.06, gcrefRegs=380001 {x0 x19 x20 x21}, byrefRegs=0000 {}, byref
ldr w22, [x0, #0x10]
;; size=4 bbWeight=0.06 PerfScore 0.19
-G_M35244_IG38: ; bbWeight=0.14, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M35244_IG37: ; bbWeight=0.14, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
...
+0 (0.00%) : 447584.dasm - System.Xml.Xsl.XsltOld.ForEachAction:Execute(System.Xml.Xsl.XsltOld.Processor,System.Xml.Xsl.XsltOld.ActionFrame):this (Tier1)
@@ -107,7 +107,7 @@ G_M23326_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M23326_IG02: ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
ldr w2, [x19, #0x48]
cmp w2, #5
- bne G_M23326_IG18
+ bne G_M23326_IG43
;; size=12 bbWeight=1 PerfScore 4.50
G_M23326_IG03: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x21]
@@ -138,7 +138,7 @@ G_M23326_IG05: ; bbWeight=0.59, gcrefRegs=580000 {x19 x20 x22}, byrefRegs
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
- bne G_M23326_IG40
+ bne G_M23326_IG37
;; size=32 bbWeight=0.59 PerfScore 5.61
G_M23326_IG06: ; bbWeight=0.57, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
movz x23, #0xD1FFAB1E
@@ -150,7 +150,7 @@ G_M23326_IG07: ; bbWeight=1.07, gcrefRegs=780000 {x19 x20 x21 x22}, byref
; gcrRegs +[x0]
ldr x1, [x0]
cmp x1, x23
- bne G_M23326_IG45
+ bne G_M23326_IG42
;; size=16 bbWeight=1.07 PerfScore 8.02
G_M23326_IG08: ; bbWeight=0.67, gcrefRegs=780001 {x0 x19 x20 x21 x22}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E // code for MS.Internal.Xml.XPath.ChildrenQuery:Advance():System.Xml.XPath.XPathNavigator:this
@@ -167,7 +167,7 @@ G_M23326_IG09: ; bbWeight=1.07, gcrefRegs=780001 {x0 x19 x20 x21 x22}, by
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x14]
- cbz x0, G_M23326_IG17
+ cbz x0, G_M23326_IG47
;; size=16 bbWeight=1.07 PerfScore 3.21
G_M23326_IG10: ; bbWeight=0.80, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
@@ -187,7 +187,7 @@ G_M23326_IG11: ; bbWeight=0.30, gcrefRegs=780000 {x19 x20 x21 x22}, byref
str w0, [x21, #0x38]
ldr x23, [x21, #0x30]
; gcrRegs +[x23]
- b G_M23326_IG41
+ b G_M23326_IG38
;; size=20 bbWeight=0.30 PerfScore 2.54
G_M23326_IG12: ; bbWeight=0.41, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
; gcrRegs -[x21 x23]
@@ -209,39 +209,184 @@ G_M23326_IG14: ; bbWeight=0.64, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs +[x0]
ldrb w0, [x0, #0x4C]
; gcrRegs -[x0]
- cbnz w0, G_M23326_IG63
+ cbnz w0, G_M23326_IG51
;; size=12 bbWeight=0.64 PerfScore 4.45
G_M23326_IG15: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- cbz w22, G_M23326_IG48
+ cbz w22, G_M23326_IG46
;; size=4 bbWeight=1 PerfScore 1.00
G_M23326_IG16: ; bbWeight=0.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
mov w0, #4
str w0, [x19, #0x48]
- b G_M23326_IG22
- ;; size=12 bbWeight=0.67 PerfScore 1.67
-G_M23326_IG17: ; bbWeight=0.27, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x22]
- mov x23, xzr
- ; gcrRegs +[x23]
- b G_M23326_IG41
- ;; size=8 bbWeight=0.27 PerfScore 0.40
-G_M23326_IG18: ; bbWeight=0.33, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x22-x23] +[x21]
- cmp w2, #5
- bhi G_M23326_IG21
- mov w2, w2
- adr x1, [@RWD00]
- ldr w1, [x1, x2, LSL #2]
- adr x0, [G_M23326_IG02]
- add x1, x1, x0
- br x1
- ;; size=32 bbWeight=0.33 PerfScore 2.50
-G_M23326_IG19: ; bbWeight=0.15, gcrefRegs=3080000 {x19 x24 x25}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x20-x21] +[x24-x25]
- mov x0, xzr
+ ;; size=8 bbWeight=0.67 PerfScore 1.00
+G_M23326_IG17: ; bbWeight=0.67, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+ ldr x24, [x19, #0x30]
+ ; gcrRegs +[x24]
+ ldr x0, [x20, #0x30]
; gcrRegs +[x0]
- ;; size=4 bbWeight=0.15 PerfScore 0.08
-G_M23326_IG20: ; bbWeight=0.67, gcrefRegs=3080001 {x0 x19 x24 x25}, byrefRegs=0000 {}, byref
+ mov x1, x0
+ ; gcrRegs +[x1]
+ ldr w2, [x1, #0x14]
+ cmp w2, #0
+ ble G_M23326_IG50
+ ;; size=24 bbWeight=0.67 PerfScore 7.33
+G_M23326_IG18: ; bbWeight=0.62, gcrefRegs=1180003 {x0 x1 x19 x20 x24}, byrefRegs=0000 {}, byref, isz
+ ldr x1, [x1, #0x08]
+ sub w2, w2, #1
+ ldr w3, [x1, #0x08]
+ cmp w2, w3
+ bhs G_M23326_IG64
+ add x1, x1, #16
+ ; gcrRegs -[x1]
+ ; byrRegs +[x1]
+ ldr x1, [x1, w2, UXTW #3]
+ ; gcrRegs +[x1]
+ ; byrRegs -[x1]
+ ;; size=28 bbWeight=0.62 PerfScore 7.18
+G_M23326_IG19: ; bbWeight=0.67, gcrefRegs=1180003 {x0 x1 x19 x20 x24}, byrefRegs=0000 {}, byref, isz
+ mov x23, x1
+ ; gcrRegs +[x23]
+ cbz x23, G_M23326_IG21
+ ;; size=8 bbWeight=0.67 PerfScore 1.00
+G_M23326_IG20: ; bbWeight=0.33, gcrefRegs=1980003 {x0 x1 x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
+ movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ ldr x3, [x23]
+ cmp x3, x2
+ bne G_M23326_IG59
+ ;; size=24 bbWeight=0.33 PerfScore 2.00
+G_M23326_IG21: ; bbWeight=0.67, gcrefRegs=1980001 {x0 x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x1]
+ movz x1, #0xD1FFAB1E // code for System.Xml.HWStack:Push():System.Object:this
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
+ ldr x1, [x1]
+ blr x1
+ mov x1, x0
+ ; gcrRegs +[x1]
+ mov x25, x1
+ ; gcrRegs +[x25]
+ cbz x25, G_M23326_IG23
+ ;; size=32 bbWeight=0.67 PerfScore 5.00
+G_M23326_IG22: ; bbWeight=0.33, gcrefRegs=3980002 {x1 x19 x20 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x2, [x25]
+ cmp x2, x0
+ bne G_M23326_IG60
+ ;; size=24 bbWeight=0.33 PerfScore 2.00
+G_M23326_IG23: ; bbWeight=0.67, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x1]
+ cbnz x25, G_M23326_IG25
+ ;; size=4 bbWeight=0.67 PerfScore 0.67
+G_M23326_IG24: ; bbWeight=0.50, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x25]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ mov x25, x0
+ ; gcrRegs +[x25]
+ ldr x0, [x20, #0x30]
+ ldr w1, [x0, #0x14]
+ cmp w1, #0
+ ble G_M23326_IG25
+ sub w1, w1, #1
+ sxtw x1, w1
+ ldr x0, [x0, #0x08]
+ mov x2, x25
+ ; gcrRegs +[x2]
+ bl CORINFO_HELP_ARRADDR_ST
+ ; gcrRegs -[x0 x2 x20]
+ ;; size=56 bbWeight=0.50 PerfScore 8.03
+G_M23326_IG25: ; bbWeight=0.67, gcrefRegs=3880000 {x19 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
+ cbz x23, G_M23326_IG27
+ ;; size=4 bbWeight=0.67 PerfScore 0.67
+G_M23326_IG26: ; bbWeight=0.56, gcrefRegs=3880000 {x19 x23 x24 x25}, byrefRegs=0000 {}, byref
+ ldrsb wzr, [x25]
+ ldr x15, [x23, #0x08]
+ ; gcrRegs +[x15]
+ add x14, x25, #8
+ ; byrRegs +[x14]
+ bl CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[x15 x23]
+ ; byrRegs -[x14]
+ ;; size=16 bbWeight=0.56 PerfScore 4.18
+G_M23326_IG27: ; bbWeight=0.67, gcrefRegs=3080000 {x19 x24 x25}, byrefRegs=0000 {}, byref, isz
+ ldrsb wzr, [x25]
+ ldr x1, [x19, #0x18]
+ ; gcrRegs +[x1]
+ mov x23, x1
+ ; gcrRegs +[x23]
+ cbz x23, G_M23326_IG30
+ ;; size=16 bbWeight=0.67 PerfScore 5.00
+G_M23326_IG28: ; bbWeight=0.33, gcrefRegs=3880002 {x1 x19 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x2, [x23]
+ cmp x2, x0
+ beq G_M23326_IG30
+ ;; size=24 bbWeight=0.33 PerfScore 2.00
+G_M23326_IG29: ; bbWeight=0.17, gcrefRegs=3080002 {x1 x19 x24 x25}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x23]
+ bl CORINFO_HELP_CHKCASTCLASS_SPECIAL
+ ; gcrRegs -[x1] +[x0]
+ mov x23, x0
+ ; gcrRegs +[x23]
+ ;; size=8 bbWeight=0.17 PerfScore 0.25
+G_M23326_IG30: ; bbWeight=0.67, gcrefRegs=3880000 {x19 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
+ ldr x0, [x23, #0x08]
+ ; gcrRegs +[x0]
+ cbz x0, G_M23326_IG48
+ ldr x1, [x0]
+ movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ cmp x1, x2
+ bne G_M23326_IG61
+ ldr w26, [x0, #0x10]
+ ;; size=36 bbWeight=0.67 PerfScore 8.67
+G_M23326_IG31: ; bbWeight=0.67, gcrefRegs=3880000 {x19 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
+ cmp w26, #0
+ ble G_M23326_IG48
+ ;; size=8 bbWeight=0.67 PerfScore 1.00
+G_M23326_IG32: ; bbWeight=0.52, gcrefRegs=3880000 {x19 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
+ ldr x0, [x23, #0x08]
+ ; gcrRegs +[x0]
+ ldr x1, [x0]
+ movz x2, #0xD1FFAB1E
+ movk x2, #0xD1FFAB1E LSL #16
+ movk x2, #0xD1FFAB1E LSL #32
+ cmp x1, x2
+ bne G_M23326_IG63
+ ;; size=28 bbWeight=0.52 PerfScore 4.64
+G_M23326_IG33: ; bbWeight=0.52, gcrefRegs=3080001 {x0 x19 x24 x25}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x23]
+ ldr w1, [x0, #0x10]
+ cmp w1, #0
+ ble G_M23326_IG62
+ ldr x1, [x0, #0x08]
+ ; gcrRegs +[x1]
+ ldr w0, [x1, #0x08]
+ ; gcrRegs -[x0]
+ cmp w0, #0
+ bls G_M23326_IG64
+ ldr x1, [x1, #0x10]
+ ;; size=32 bbWeight=0.52 PerfScore 7.74
+G_M23326_IG34: ; bbWeight=0.52, gcrefRegs=3080002 {x1 x19 x24 x25}, byrefRegs=0000 {}, byref
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_CHKCASTCLASS
...
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| benchmarks.run.linux.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| benchmarks.run_pgo.linux.arm64.checked.mch |
7 |
1 |
0 |
6 |
-4 |
+0 |
| benchmarks.run_tiered.linux.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| coreclr_tests.run.linux.arm64.checked.mch |
11 |
0 |
1 |
10 |
-0 |
+4 |
| libraries.crossgen2.linux.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries.pmi.linux.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries_tests.run.linux.arm64.Release.mch |
14 |
5 |
0 |
9 |
-140 |
+0 |
| librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| realworld.run.linux.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| smoke_tests.nativeaot.linux.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
32 |
6 |
1 |
25 |
-144 |
+4 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.linux.arm64.checked.mch |
36,750 |
3,694 |
33,056 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.linux.arm64.checked.mch |
150,824 |
57,618 |
93,206 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_tiered.linux.arm64.checked.mch |
64,740 |
48,874 |
15,866 |
0 (0.00%) |
0 (0.00%) |
| coreclr_tests.run.linux.arm64.checked.mch |
636,247 |
390,444 |
245,803 |
0 (0.00%) |
0 (0.00%) |
| libraries.crossgen2.linux.arm64.checked.mch |
265,473 |
15 |
265,458 |
0 (0.00%) |
0 (0.00%) |
| libraries.pmi.linux.arm64.checked.mch |
297,587 |
6 |
297,581 |
0 (0.00%) |
0 (0.00%) |
| libraries_tests.run.linux.arm64.Release.mch |
735,172 |
490,071 |
245,101 |
0 (0.00%) |
0 (0.00%) |
| librariestestsnotieredcompilation.run.linux.arm64.Release.mch |
305,215 |
21,620 |
283,595 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.linux.arm64.checked.mch |
33,342 |
147 |
33,195 |
0 (0.00%) |
0 (0.00%) |
| smoke_tests.nativeaot.linux.arm64.checked.mch |
19,000 |
7 |
18,993 |
0 (0.00%) |
0 (0.00%) |
|
2,544,350 |
1,012,496 |
1,531,854 |
0 (0.00%) |
0 (0.00%) |
jit-analyze output
benchmarks.run_pgo.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 77518372 (overridden on cmd)
Total bytes of diff: 77518368 (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 : 21218.dasm (-0.52 % of base)
1 total files with Code Size differences (1 improved, 0 regressed), 6 unchanged.
Top method improvements (bytes):
-4 (-0.52 % of base) : 21218.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (percentages):
-4 (-0.52 % of base) : 21218.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
1 total methods with Code Size differences (1 improved, 0 regressed).
coreclr_tests.run.linux.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 518928384 (overridden on cmd)
Total bytes of diff: 518928388 (overridden on cmd)
Total bytes of delta: 4 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Detail diffs
Top file regressions (bytes):
4 : 523249.dasm (0.46 % of base)
1 total files with Code Size differences (0 improved, 1 regressed), 10 unchanged.
Top method regressions (bytes):
4 (0.46 % of base) : 523249.dasm - DefaultNamespace.GCVariant2:runTest(int,int):ubyte:this (Tier1-OSR)
Top method regressions (percentages):
4 (0.46 % of base) : 523249.dasm - DefaultNamespace.GCVariant2:runTest(int,int):ubyte:this (Tier1-OSR)
1 total methods with Code Size differences (0 improved, 1 regressed).
libraries_tests.run.linux.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 383432472 (overridden on cmd)
Total bytes of diff: 383432332 (overridden on cmd)
Total bytes of delta: -140 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file improvements (bytes):
-116 : 84138.dasm (-2.41 % of base)
-12 : 453371.dasm (-0.46 % of base)
-4 : 64715.dasm (-0.25 % of base)
-4 : 672472.dasm (-0.43 % of base)
-4 : 636139.dasm (-0.63 % of base)
5 total files with Code Size differences (5 improved, 0 regressed), 9 unchanged.
Top method improvements (bytes):
-116 (-2.41 % of base) : 84138.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
-12 (-0.46 % of base) : 453371.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-4 (-0.25 % of base) : 64715.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
-4 (-0.43 % of base) : 672472.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
-4 (-0.63 % of base) : 636139.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
Top method improvements (percentages):
-116 (-2.41 % of base) : 84138.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
-4 (-0.63 % of base) : 636139.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
-12 (-0.46 % of base) : 453371.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-4 (-0.43 % of base) : 672472.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
-4 (-0.25 % of base) : 64715.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
5 total methods with Code Size differences (5 improved, 0 regressed).
linux x64
Diffs are based on 2,535,371 contexts (984,668 MinOpts, 1,550,703 FullOpts).
Overall (-134 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.linux.x64.checked.mch |
67,166,891 |
-13 |
| coreclr_tests.run.linux.x64.checked.mch |
418,408,742 |
-57 |
| libraries_tests.run.linux.x64.Release.mch |
331,729,893 |
-64 |
FullOpts (-134 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.linux.x64.checked.mch |
48,174,268 |
-13 |
| coreclr_tests.run.linux.x64.checked.mch |
130,639,266 |
-57 |
| libraries_tests.run.linux.x64.Release.mch |
147,894,249 |
-64 |
Example diffs
benchmarks.run_pgo.linux.x64.checked.mch
-9 (-1.60%) : 78304.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -56,20 +56,20 @@ G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG20
+ je G_M35244_IG26
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG20
+ jne G_M35244_IG26
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea edi, [rax-0x03]
cmp edi, 5
- jbe G_M35244_IG24
+ jbe G_M35244_IG22
;; size=16 bbWeight=2.99 PerfScore 11.22
G_M35244_IG04: ; bbWeight=2.96, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG20
+ ja G_M35244_IG26
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
@@ -105,7 +105,7 @@ G_M35244_IG09: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M35244_IG10: ; bbWeight=1.99, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
test r13, r13
- jne G_M35244_IG22
+ jne G_M35244_IG20
;; size=9 bbWeight=1.99 PerfScore 2.49
G_M35244_IG11: ; bbWeight=1.56, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
@@ -129,18 +129,18 @@ G_M35244_IG13: ; bbWeight=0.39, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
mov r13, rax
; gcrRegs +[r13]
;; size=12 bbWeight=0.39 PerfScore 1.36
-G_M35244_IG14: ; bbWeight=1.56, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=1.56, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG26
+ jae SHORT G_M35244_IG24
mov rdi, gword ptr [r13+0x08]
; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae G_M35244_IG27
+ jae SHORT G_M35244_IG25
mov esi, r14d
mov r14, gword ptr [rdi+8*rsi+0x10]
; gcrRegs +[r14]
- ;; size=32 bbWeight=1.56 PerfScore 19.09
+ ;; size=24 bbWeight=1.56 PerfScore 19.09
G_M35244_IG15: ; bbWeight=1.99, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi r13]
movzx rdi, byte ptr [r14+0x2E]
@@ -170,42 +170,29 @@ G_M35244_IG18: ; bbWeight=1.01, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG23
+ je SHORT G_M35244_IG21
;; size=23 bbWeight=1.01 PerfScore 2.79
-G_M35244_IG19: ; bbWeight=0.76, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M35244_IG21
- ;; size=2 bbWeight=0.76 PerfScore 1.52
-G_M35244_IG20: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rax rbx r15]
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=9 bbWeight=0.02 PerfScore 0.06
-G_M35244_IG21: ; bbWeight=0.76, gcVars=0000000000000000 {}, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rax rbx r15]
+G_M35244_IG19: ; bbWeight=0.76, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
mov r14d, dword ptr [rax+0x10]
jmp G_M35244_IG07
;; size=9 bbWeight=0.76 PerfScore 3.03
-G_M35244_IG22: ; bbWeight=0.43, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=0.43, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax r15] +[r13]
mov r14, r13
; gcrRegs +[r14]
jmp SHORT G_M35244_IG15
;; size=5 bbWeight=0.43 PerfScore 0.98
-G_M35244_IG23: ; bbWeight=0.26, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.26, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13-r14] +[r15]
mov r14d, 1
jmp G_M35244_IG07
;; size=11 bbWeight=0.26 PerfScore 0.58
-G_M35244_IG24: ; bbWeight=0.03, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=0.03, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov rdi, rbx
; gcrRegs +[rdi]
;; size=3 bbWeight=0.03 PerfScore 0.01
-G_M35244_IG25: ; bbWeight=0.03, epilog, nogc, extend
+G_M35244_IG23: ; bbWeight=0.03, epilog, nogc, extend
pop rbx
pop r13
pop r14
@@ -214,17 +201,28 @@ G_M35244_IG25: ; bbWeight=0.03, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
;; size=14 bbWeight=0.03 PerfScore 0.15
-G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx rdi]
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG27: ; bbWeight=0, epilog, nogc, extend
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG28: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -308,7 +306,7 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
cmp r14d, r15d
jl SHORT G_M35244_IG32
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG20
+ je G_M35244_IG26
jmp G_M35244_IG28
;; size=20 bbWeight=0 PerfScore 0.00
G_M35244_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -326,7 +324,7 @@ G_M35244_IG35: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rbx, rax
; gcrRegs +[rbx]
test rbx, rbx
- je G_M35244_IG20
+ je G_M35244_IG26
jmp G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00
RWD00 dd G_M35244_IG31 - G_M35244_IG02
@@ -334,7 +332,7 @@ RWD00 dd G_M35244_IG31 - G_M35244_IG02
dd G_M35244_IG35 - G_M35244_IG02
dd G_M35244_IG34 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG20 - G_M35244_IG02
+ dd G_M35244_IG26 - G_M35244_IG02
dd G_M35244_IG28 - G_M35244_IG02
dd G_M35244_IG28 - G_M35244_IG02
dd G_M35244_IG28 - G_M35244_IG02
@@ -342,7 +340,7 @@ RWD00 dd G_M35244_IG31 - G_M35244_IG02
dd G_M35244_IG31 - G_M35244_IG02
-; Total bytes of code 563, prolog size 16, PerfScore 115.10, instruction count 147, allocated bytes for code 563 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 554, prolog size 16, PerfScore 113.52, instruction count 147, allocated bytes for code 554 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
-6 (-1.42%) : 136566.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)
@@ -54,12 +54,12 @@ G_M417_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
G_M417_IG02: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
call <unknown method>
test eax, eax
- je G_M417_IG14
+ je G_M417_IG13
mov r13d, dword ptr [r15+0x28]
cmp r13d, 1
jne SHORT G_M417_IG09
;; size=23 bbWeight=1 PerfScore 5.50
-G_M417_IG03: ; bbWeight=0.58, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M417_IG03: ; bbWeight=0.58, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r14]
mov rsi, gword ptr [r15+0x08]
; gcrRegs +[rsi]
@@ -69,27 +69,16 @@ G_M417_IG03: ; bbWeight=0.58, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}
; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rbx rsi rdi]
- ;; size=19 bbWeight=0.58 PerfScore 5.08
-G_M417_IG04: ; bbWeight=0.70, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
- nop
- ;; size=1 bbWeight=0.70 PerfScore 0.17
-G_M417_IG05: ; bbWeight=0.70, epilog, nogc, extend
- add rsp, 32
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=13 bbWeight=0.70 PerfScore 2.62
-G_M417_IG06: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M417_IG07
+ ;; size=21 bbWeight=0.58 PerfScore 6.24
+G_M417_IG04: ; bbWeight=0.10, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14]
mov r13, r15
; gcrRegs +[r13]
cmp dword ptr [r15+0x28], 2
- jne SHORT G_M417_IG08
+ jne SHORT G_M417_IG06
;; size=10 bbWeight=0.10 PerfScore 0.43
-G_M417_IG07: ; bbWeight=0.79, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.79, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [r13+0x10]
; gcrRegs +[rdi]
mov rsi, r14
@@ -101,9 +90,9 @@ G_M417_IG07: ; bbWeight=0.79, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs
; gcrRegs -[rdx rsi rdi]
mov r13, gword ptr [r13+0x18]
cmp dword ptr [r13+0x28], 2
- je SHORT G_M417_IG07
+ je SHORT G_M417_IG05
;; size=29 bbWeight=0.79 PerfScore 11.40
-G_M417_IG08: ; bbWeight=0.10, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M417_IG06: ; bbWeight=0.10, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
mov rdi, r13
; gcrRegs +[rdi]
mov rsi, r14
@@ -112,12 +101,23 @@ G_M417_IG08: ; bbWeight=0.10, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs
; gcrRegs +[rdx]
call [System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this]
; gcrRegs -[rdx rbx rsi rdi r13-r14]
- jmp SHORT G_M417_IG04
- ;; size=17 bbWeight=0.10 PerfScore 0.58
-G_M417_IG09: ; bbWeight=0.42, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=15 bbWeight=0.10 PerfScore 0.38
+G_M417_IG07: ; bbWeight=0.70, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0.70 PerfScore 0.17
+G_M417_IG08: ; bbWeight=0.70, epilog, nogc, extend
+ add rsp, 32
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=13 bbWeight=0.70 PerfScore 2.62
+G_M417_IG09: ; bbWeight=0.42, gcVars=0000000000000000 {}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx r14]
cmp r13d, 17
- ja SHORT G_M417_IG04
+ ja SHORT G_M417_IG07
mov edi, r13d
lea rsi, [reloc @RWD00]
mov esi, dword ptr [rsi+4*rdi]
@@ -135,9 +135,9 @@ G_M417_IG10: ; bbWeight=0.02, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=000
cmp dword ptr [rdi], edi
call [System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this]
; gcrRegs -[rdx rbx rsi rdi r14]
- jmp SHORT G_M417_IG04
+ jmp SHORT G_M417_IG07
;; size=20 bbWeight=0.02 PerfScore 0.17
-G_M417_IG11: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M417_IG11: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14]
mov rdi, gword ptr [r15+0x10]
; gcrRegs +[rdi]
@@ -157,21 +157,9 @@ G_M417_IG11: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {
cmp dword ptr [rdi], edi
call [System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this]
; gcrRegs -[rdx rbx rsi rdi r14]
- jmp G_M417_IG04
- ;; size=41 bbWeight=0 PerfScore 0.00
-G_M417_IG12: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx r14]
- mov rsi, gword ptr [r14+0x80]
- ; gcrRegs +[rsi]
- cmp byte ptr [rbx], bl
- lea rdx, [rbp-0x40]
- mov rdi, rbx
- ; gcrRegs +[rdi]
- call [<unknown method>]
- ; gcrRegs -[rbx rsi rdi r14]
- jmp G_M417_IG04
- ;; size=27 bbWeight=0 PerfScore 0.00
-G_M417_IG13: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M417_IG07
+ ;; size=38 bbWeight=0 PerfScore 0.00
+G_M417_IG12: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14]
mov rsi, gword ptr [r14+0x88]
; gcrRegs +[rsi]
@@ -181,24 +169,24 @@ G_M417_IG13: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {
; gcrRegs +[rdi]
call [<unknown method>]
; gcrRegs -[rbx rsi rdi r14]
- jmp G_M417_IG04
- ;; size=27 bbWeight=0 PerfScore 0.00
-G_M417_IG14: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M417_IG07
+ ;; size=24 bbWeight=0 PerfScore 0.00
+G_M417_IG13: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r14]
mov rdi, qword ptr [r15]
mov rsi, qword ptr [rdi+0x38]
mov rsi, qword ptr [rsi]
mov rsi, qword ptr [rsi+0x40]
test rsi, rsi
- je SHORT G_M417_IG15
- jmp SHORT G_M417_IG16
+ je SHORT G_M417_IG14
+ jmp SHORT G_M417_IG15
;; size=21 bbWeight=0 PerfScore 0.00
-G_M417_IG15: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M417_IG14: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
mov rsi, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov rsi, rax
;; size=18 bbWeight=0 PerfScore 0.00
-G_M417_IG16: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M417_IG15: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, rsi
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -216,16 +204,16 @@ G_M417_IG16: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {
mov rsi, qword ptr [rsi]
mov rax, qword ptr [rsi+0x48]
test rax, rax
- je SHORT G_M417_IG17
+ je SHORT G_M417_IG16
mov rdi, rax
- jmp SHORT G_M417_IG18
+ jmp SHORT G_M417_IG17
;; size=57 bbWeight=0 PerfScore 0.00
-G_M417_IG17: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
+G_M417_IG16: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
mov rsi, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov rdi, rax
;; size=18 bbWeight=0 PerfScore 0.00
-G_M417_IG18: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
+G_M417_IG17: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
mov rsi, r13
; gcrRegs +[rsi]
mov rdx, r14
@@ -234,29 +222,41 @@ G_M417_IG18: ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=00
; gcrRegs +[rcx]
call [System.Threading.StackHelper:CallOnEmptyStack[System.__Canon,System.__Canon](System.Action`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon)]
; gcrRegs -[rcx rdx rbx rsi r13-r14]
- jmp G_M417_IG04
+ jmp G_M417_IG07
;; size=20 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+G_M417_IG18: ; bbWeight=0, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[rbx r14]
+ mov rsi, gword ptr [r14+0x80]
+ ; gcrRegs +[rsi]
+ cmp byte ptr [rbx], bl
+ lea rdx, [rbp-0x40]
+ mov rdi, rbx
+ ; gcrRegs +[rdi]
+ call [<unknown method>]
+ ; gcrRegs -[rbx rsi rdi r14]
+ jmp G_M417_IG07
+ ;; size=27 bbWeight=0 PerfScore 0.00
+RWD00 dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG06 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02
dd G_M417_IG10 - G_M417_IG02
dd G_M417_IG11 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG13 - G_M417_IG02
- dd G_M417_IG13 - G_M417_IG02
- dd G_M417_IG13 - G_M417_IG02
- dd G_M417_IG13 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG12 - G_M417_IG02
dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG12 - G_M417_IG02
+ dd G_M417_IG12 - G_M417_IG02
+ dd G_M417_IG18 - G_M417_IG02
+ dd G_M417_IG18 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG10 - G_M417_IG02
-; Total bytes of code 422, prolog size 21, PerfScore 36.49, instruction count 116, allocated bytes for code 422 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
+; Total bytes of code 416, prolog size 21, PerfScore 37.45, instruction count 116, allocated bytes for code 416 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
; ============================================================
Unwind Info:
-1 (-0.12%) : 44886.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
@@ -110,7 +110,7 @@ G_M37647_IG06: ; bbWeight=98.97, gcrefRegs=C009 {rax rbx r14 r15}, byrefR
mov edx, ecx
movzx rdx, byte ptr [rax+rdx+0x10]
cmp edx, 3
- ja SHORT G_M37647_IG10
+ ja SHORT G_M37647_IG09
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rdi, G_M37647_IG02
@@ -122,7 +122,7 @@ G_M37647_IG07: ; bbWeight=0.02, gcrefRegs=C009 {rax rbx r14 r15}, byrefRe
; GC ptr vars +{V06}
jmp G_M37647_IG18
;; size=9 bbWeight=0.02 PerfScore 0.05
-G_M37647_IG08: ; bbWeight=31.01, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M37647_IG08: ; bbWeight=31.01, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref
; GC ptr vars -{V06}
mov gword ptr [rbp+0x78], rax
; GC ptr vars +{V06}
@@ -142,9 +142,19 @@ G_M37647_IG08: ; bbWeight=31.01, gcrefRegs=C009 {rax rbx r14 r15}, byrefR
mov rax, gword ptr [rbp+0x78]
; gcrRegs +[rax]
mov esi, dword ptr [rbp+0x74]
- jmp SHORT G_M37647_IG10
- ;; size=43 bbWeight=31.01 PerfScore 480.69
-G_M37647_IG09: ; bbWeight=18.61, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=41 bbWeight=31.01 PerfScore 418.67
+G_M37647_IG09: ; bbWeight=98.97, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; GC ptr vars -{V06}
+ inc esi
+ cmp esi, r13d
+ jl SHORT G_M37647_IG06
+ ;; size=7 bbWeight=98.97 PerfScore 148.45
+G_M37647_IG10: ; bbWeight=0.03, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref
+ mov gword ptr [rbp+0x78], rax
+ ; GC ptr vars +{V06}
+ jmp G_M37647_IG18
+ ;; size=9 bbWeight=0.03 PerfScore 0.10
+G_M37647_IG11: ; bbWeight=18.61, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; GC ptr vars -{V06}
mov gword ptr [rbp+0x78], rax
; GC ptr vars +{V06}
@@ -164,42 +174,9 @@ G_M37647_IG09: ; bbWeight=18.61, gcVars=0000000000000000 {}, gcrefRegs=C0
mov rax, gword ptr [rbp+0x78]
; gcrRegs +[rax]
mov esi, dword ptr [rbp+0x74]
- ;; size=41 bbWeight=18.61 PerfScore 251.20
-G_M37647_IG10: ; bbWeight=98.97, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars -{V06}
- inc esi
- cmp esi, r13d
- jl G_M37647_IG06
- ;; size=11 bbWeight=98.97 PerfScore 148.45
-G_M37647_IG11: ; bbWeight=0.03, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref
- mov gword ptr [rbp+0x78], rax
- ; GC ptr vars +{V06}
- jmp G_M37647_IG18
- ;; size=9 bbWeight=0.03 PerfScore 0.10
-G_M37647_IG12: ; bbWeight=24.41, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref, isz
- ; GC ptr vars -{V06}
- mov gword ptr [rbp+0x78], rax
- ; GC ptr vars +{V06}
- mov dword ptr [rbp+0x74], esi
- mov r9d, esi
- mov r10, gword ptr [rbx+8*r9+0x10]
- ; gcrRegs +[r10]
- mov rdx, gword ptr [r15+8*r9+0x10]
- ; gcrRegs +[rdx]
- mov rsi, r10
- ; gcrRegs +[rsi]
- mov rcx, gword ptr [r14+8*r9+0x10]
- ; gcrRegs +[rcx]
- xor edi, edi
- call [EMFloatClass:AddSubInternalFPF(ubyte,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF)]
- ; gcrRegs -[rax rcx rdx rsi r10]
- ; gcr arg pop 0
- mov rax, gword ptr [rbp+0x78]
- ; gcrRegs +[rax]
- mov esi, dword ptr [rbp+0x74]
- jmp SHORT G_M37647_IG10
- ;; size=45 bbWeight=24.41 PerfScore 384.48
-G_M37647_IG13: ; bbWeight=24.94, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M37647_IG09
+ ;; size=43 bbWeight=18.61 PerfScore 288.42
+G_M37647_IG12: ; bbWeight=24.94, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V06}
mov gword ptr [rbp+0x78], rax
; GC ptr vars +{V06}
@@ -220,8 +197,31 @@ G_M37647_IG13: ; bbWeight=24.94, gcVars=0000000000000000 {}, gcrefRegs=C0
mov rax, gword ptr [rbp+0x78]
; gcrRegs +[rax]
mov esi, dword ptr [rbp+0x74]
- jmp SHORT G_M37647_IG10
+ jmp SHORT G_M37647_IG09
;; size=48 bbWeight=24.94 PerfScore 392.75
+G_M37647_IG13: ; bbWeight=24.41, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ ; GC ptr vars -{V06}
+ mov gword ptr [rbp+0x78], rax
+ ; GC ptr vars +{V06}
+ mov dword ptr [rbp+0x74], esi
+ mov r9d, esi
+ mov r10, gword ptr [rbx+8*r9+0x10]
+ ; gcrRegs +[r10]
+ mov rdx, gword ptr [r15+8*r9+0x10]
+ ; gcrRegs +[rdx]
+ mov rsi, r10
+ ; gcrRegs +[rsi]
+ mov rcx, gword ptr [r14+8*r9+0x10]
+ ; gcrRegs +[rcx]
+ xor edi, edi
+ call [EMFloatClass:AddSubInternalFPF(ubyte,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF)]
+ ; gcrRegs -[rax rcx rdx rsi r10]
+ ; gcr arg pop 0
+ mov rax, gword ptr [rbp+0x78]
+ ; gcrRegs +[rax]
+ mov esi, dword ptr [rbp+0x74]
+ jmp G_M37647_IG09
+ ;; size=48 bbWeight=24.41 PerfScore 384.48
G_M37647_IG14: ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V06}
mov edx, esi
@@ -388,17 +388,17 @@ G_M37647_IG24: ; bbWeight=0, epilog, nogc, extend
pop rbp
ret
;; size=18 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M37647_IG12 - G_M37647_IG02
- dd G_M37647_IG13 - G_M37647_IG02
+RWD00 dd G_M37647_IG13 - G_M37647_IG02
+ dd G_M37647_IG12 - G_M37647_IG02
dd G_M37647_IG08 - G_M37647_IG02
- dd G_M37647_IG09 - G_M37647_IG02
+ dd G_M37647_IG11 - G_M37647_IG02
RWD16 dd G_M37647_IG21 - G_M37647_IG02
dd G_M37647_IG20 - G_M37647_IG02
dd G_M37647_IG15 - G_M37647_IG02
dd G_M37647_IG16 - G_M37647_IG02
-; Total bytes of code 858, prolog size 96, PerfScore 3238.26, instruction count 216, allocated bytes for code 858 (MethodHash=73346cf0) for method EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
+; Total bytes of code 857, prolog size 96, PerfScore 3213.45, instruction count 216, allocated bytes for code 857 (MethodHash=73346cf0) for method EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
; ============================================================
Unwind Info:
+9 (+1.26%) : 78234.dasm - System.Text.RegularExpressions.RegexCompiler+<>cDisplayClass158_0:gEmitNode|12(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
@@ -57,23 +57,23 @@ G_M17183_IG02: ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000
mov rax, gword ptr [rax+0x10]
mov rax, gword ptr [rax+0x10]
cmp dword ptr [rax+0x20], 19
- je G_M17183_IG23
+ je G_M17183_IG11
;; size=22 bbWeight=1 PerfScore 10.00
G_M17183_IG03: ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
call <unknown method>
test eax, eax
- je G_M17183_IG28
+ je G_M17183_IG16
test byte ptr [rbx+0x28], 64
- jne G_M17183_IG29
+ jne G_M17183_IG17
;; size=23 bbWeight=1 PerfScore 6.25
G_M17183_IG04: ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
movzx rax, byte ptr [rbx+0x2E]
add eax, -3
cmp eax, 22
- jne SHORT G_M17183_IG08
+ jne SHORT G_M17183_IG06
;; size=12 bbWeight=1 PerfScore 3.50
-G_M17183_IG05: ; bbWeight=0.58, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+G_M17183_IG05: ; bbWeight=0.58, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
movzx rcx, r14b
mov rdi, r15
; gcrRegs +[rdi]
@@ -83,25 +83,12 @@ G_M17183_IG05: ; bbWeight=0.58, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0
; gcrRegs +[rdx]
call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitConcatenation|15(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this]
; gcrRegs -[rdx rbx rsi rdi r13 r15]
- ;; size=19 bbWeight=0.58 PerfScore 2.32
-G_M17183_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- nop
- ;; size=1 bbWeight=1 PerfScore 0.25
-G_M17183_IG07: ; bbWeight=1, epilog, nogc, extend
- vzeroupper
- add rsp, 40
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=18 bbWeight=1 PerfScore 5.25
-G_M17183_IG08: ; bbWeight=0.42, gcVars=0000000000000000 {}, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M17183_IG09
+ ;; size=21 bbWeight=0.58 PerfScore 3.47
+G_M17183_IG06: ; bbWeight=0.42, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r13 r15]
cmp eax, 43
- ja SHORT G_M17183_IG06
+ ja SHORT G_M17183_IG09
mov edx, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rdx]
@@ -109,7 +96,7 @@ G_M17183_IG08: ; bbWeight=0.42, gcVars=0000000000000000 {}, gcrefRegs=A00
add rdi, rsi
jmp rdi
;; size=29 bbWeight=0.42 PerfScore 3.05
-G_M17183_IG09: ; bbWeight=0.42, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M17183_IG07: ; bbWeight=0.42, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
movzx rdx, r14b
mov rdi, r15
@@ -120,9 +107,9 @@ G_M17183_IG09: ; bbWeight=0.42, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs +[rcx]
call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleChar|16(System.Text.RegularExpressions.RegexNode,ubyte,System.Reflection.Emit.LocalBuilder):this]
; gcrRegs -[rcx rbx rsi rdi r15]
- jmp SHORT G_M17183_IG06
+ jmp SHORT G_M17183_IG09
;; size=20 bbWeight=0.42 PerfScore 2.52
-G_M17183_IG10: ; bbWeight=0.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M17183_IG08: ; bbWeight=0.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx r15]
mov rdi, r15
; gcrRegs +[rdi]
@@ -130,160 +117,50 @@ G_M17183_IG10: ; bbWeight=0.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs +[rsi]
call [<unknown method>]
; gcrRegs -[rbx rsi rdi r15]
- jmp SHORT G_M17183_IG06
- ;; size=14 bbWeight=0.00 PerfScore 0.00
-G_M17183_IG11: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rbx r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- call [<unknown method>]
- ; gcrRegs -[rbx rsi rdi r15]
- jmp SHORT G_M17183_IG06
- ;; size=14 bbWeight=0 PerfScore 0.00
-G_M17183_IG12: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rbx r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- call [<unknown method>]
- ; gcrRegs -[rbx rsi rdi r15]
- jmp SHORT G_M17183_IG06
- ;; size=14 bbWeight=0 PerfScore 0.00
-G_M17183_IG13: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rbx r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitAlternation|4(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rbx rsi rdi r15]
- jmp SHORT G_M17183_IG06
- ;; size=14 bbWeight=0 PerfScore 0.00
-G_M17183_IG14: ; bbWeight=0, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx r13 r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- mov rdx, r13
- ; gcrRegs +[rdx]
- call [<unknown method>]
- ; gcrRegs -[rdx rbx rsi rdi r13 r15]
- jmp G_M17183_IG06
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M17183_IG15: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- call [<unknown method>]
- ; gcrRegs -[rbx rsi rdi r15]
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG16: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitBackreferenceConditional|6(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rbx rsi rdi r15]
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG17: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitExpressionConditional|7(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rbx rsi rdi r15]
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG18: ; bbWeight=0, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx r13 r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- mov rdx, r13
- ; gcrRegs +[rdx]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitCapture|8(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rdx rbx rsi rdi r13 r15]
- jmp G_M17183_IG06
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M17183_IG19: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitPositiveLookaroundAssertion|10(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rbx rsi rdi r15]
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG20: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitNegativeLookaroundAssertion|11(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rbx rsi rdi r15]
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG21: ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
- ; gcrRegs +[r15]
- mov rdi, gword ptr [r15+0x08]
- ; gcrRegs +[rdi]
- mov esi, dword ptr [r15+0x40]
- call [<unknown method>]
- ; gcrRegs -[rdi r15]
- jmp G_M17183_IG06
- ;; size=19 bbWeight=0 PerfScore 0.00
-G_M17183_IG22: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx r15]
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rsi, rbx
- ; gcrRegs +[rsi]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitUpdateBumpalong|14(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rbx rsi rdi r15]
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG23: ; bbWeight=0, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+ ;; size=12 bbWeight=0.00 PerfScore 0.00
+G_M17183_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=1 PerfScore 0.25
+G_M17183_IG10: ; bbWeight=1, epilog, nogc, extend
+ vzeroupper
+ add rsp, 40
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=18 bbWeight=1 PerfScore 5.25
+G_M17183_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx r13 r15]
mov rdi, gword ptr [r15+0x08]
; gcrRegs +[rdi]
mov rdi, gword ptr [rdi+0x10]
mov rdi, gword ptr [rdi+0x10]
;; size=12 bbWeight=0 PerfScore 0.00
-G_M17183_IG24: ; bbWeight=0, nogc, extend
+G_M17183_IG12: ; bbWeight=0, nogc, extend
vmovdqu ymm0, ymmword ptr [rdi+0x48]
vmovdqu ymmword ptr [rbp-0x50], ymm0
mov rsi, qword ptr [rdi+0x68]
mov qword ptr [rbp-0x30], rsi
;; size=18 bbWeight=0 PerfScore 0.00
-G_M17183_IG25: ; bbWeight=0, isz, extend
+G_M17183_IG13: ; bbWeight=0, isz, extend
lea rdi, bword ptr [rbp-0x50]
; gcrRegs -[rdi]
; byrRegs +[rdi]
cmp byte ptr [rbp-0x50], 0
- jne SHORT G_M17183_IG26
+ jne SHORT G_M17183_IG14
xor rsi, rsi
; gcrRegs +[rsi]
- jmp SHORT G_M17183_IG27
...
+17 (+3.25%) : 24298.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -52,37 +52,37 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rdi
; gcrRegs +[rbx]
;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je SHORT G_M35244_IG09
+ je G_M35244_IG26
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG09
- ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG26
+ ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea edi, [rax-0x03]
cmp edi, 5
- jbe G_M35244_IG24
+ jbe G_M35244_IG23
;; size=16 bbWeight=3.97 PerfScore 14.89
-G_M35244_IG04: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG26
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
lea rax, G_M35244_IG02
add rdi, rax
jmp rdi
- ;; size=32 bbWeight=2.97 PerfScore 22.28
-G_M35244_IG05: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=36 bbWeight=2.97 PerfScore 22.28
+G_M35244_IG05: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r15, gword ptr [rbx+0x08]
; gcrRegs +[r15]
test r15, r15
- je SHORT G_M35244_IG08
- ;; size=9 bbWeight=2.97 PerfScore 9.65
+ je G_M35244_IG18
+ ;; size=13 bbWeight=2.97 PerfScore 9.65
G_M35244_IG06: ; bbWeight=2.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, r15
; gcrRegs +[rsi]
@@ -91,64 +91,50 @@ G_M35244_IG06: ; bbWeight=2.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG10
+ je SHORT G_M35244_IG08
;; size=23 bbWeight=2.45 PerfScore 6.73
G_M35244_IG07: ; bbWeight=0.88, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
mov r14d, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG11
+ jmp SHORT G_M35244_IG09
;; size=6 bbWeight=0.88 PerfScore 3.50
-G_M35244_IG08: ; bbWeight=0.52, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=1.57, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- xor r14d, r14d
- jmp SHORT G_M35244_IG11
- ;; size=5 bbWeight=0.52 PerfScore 1.17
-G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx r15]
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=9 bbWeight=0.00 PerfScore 0.01
-G_M35244_IG10: ; bbWeight=1.57, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx r15]
mov r14d, 1
;; size=6 bbWeight=1.57 PerfScore 0.39
-G_M35244_IG11: ; bbWeight=2.97, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=2.97, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
dec r14d
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG14
+ je SHORT G_M35244_IG12
;; size=11 bbWeight=2.97 PerfScore 5.20
-G_M35244_IG12: ; bbWeight=1.49, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.49, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [r13], rsi
- je SHORT G_M35244_IG14
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1.49 PerfScore 6.31
-G_M35244_IG13: ; bbWeight=0.74, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.74, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
xor r13, r13
; gcrRegs +[r13]
;; size=3 bbWeight=0.74 PerfScore 0.19
-G_M35244_IG14: ; bbWeight=2.97, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2.97, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
test r13, r13
- jne SHORT G_M35244_IG20
+ jne SHORT G_M35244_IG19
;; size=5 bbWeight=2.97 PerfScore 3.71
-G_M35244_IG15: ; bbWeight=1.08, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.08, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG16
;; size=8 bbWeight=1.08 PerfScore 1.63
-G_M35244_IG16: ; bbWeight=0.54, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.54, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [r13], rdi
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG16
;; size=16 bbWeight=0.54 PerfScore 2.30
-G_M35244_IG17: ; bbWeight=0.27, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=0.27, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov rsi, r15
; gcrRegs +[rsi]
@@ -158,52 +144,57 @@ G_M35244_IG17: ; bbWeight=0.27, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
mov r13, rax
; gcrRegs +[r13]
;; size=12 bbWeight=0.27 PerfScore 0.95
-G_M35244_IG18: ; bbWeight=1.08, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=1.08, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG35
+ jae G_M35244_IG36
;; size=10 bbWeight=1.08 PerfScore 4.34
-G_M35244_IG19: ; bbWeight=1.08, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=1.08, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [r13+0x08]
; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae SHORT G_M35244_IG26
+ jae SHORT G_M35244_IG25
mov esi, r14d
mov r15, gword ptr [rdi+8*rsi+0x10]
; gcrRegs +[r15]
- jmp SHORT G_M35244_IG21
+ jmp SHORT G_M35244_IG20
;; size=20 bbWeight=1.08 PerfScore 11.12
-G_M35244_IG20: ; bbWeight=1.89, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdi r15]
+G_M35244_IG18: ; bbWeight=0.52, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rdi r13]
+ xor r14d, r14d
+ jmp SHORT G_M35244_IG09
+ ;; size=5 bbWeight=0.52 PerfScore 1.17
+G_M35244_IG19: ; bbWeight=1.89, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r15] +[r13]
mov r15, r13
; gcrRegs +[r15]
;; size=3 bbWeight=1.89 PerfScore 0.47
-G_M35244_IG21: ; bbWeight=2.97, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=2.97, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
movzx rdi, byte ptr [r15+0x2E]
cmp edi, 24
- je SHORT G_M35244_IG28
+ je SHORT G_M35244_IG29
;; size=10 bbWeight=2.97 PerfScore 9.65
-G_M35244_IG22: ; bbWeight=2.97, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG21: ; bbWeight=2.97, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
lea esi, [rdi-0x1A]
cmp esi, 1
- jbe SHORT G_M35244_IG28
+ jbe SHORT G_M35244_IG29
add edi, -33
cmp edi, 1
- jbe SHORT G_M35244_IG28
+ jbe SHORT G_M35244_IG29
;; size=16 bbWeight=2.97 PerfScore 9.64
-G_M35244_IG23: ; bbWeight=2.97, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=2.97, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, r15
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=8 bbWeight=2.97 PerfScore 6.68
-G_M35244_IG24: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG23: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov rdi, rbx
; gcrRegs +[rdi]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG25: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG24: ; bbWeight=1, epilog, nogc, extend
pop rbx
pop r13
pop r14
@@ -212,12 +203,23 @@ G_M35244_IG25: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
;; size=14 bbWeight=1 PerfScore 4.50
-G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx rdi]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG27: ; bbWeight=0, epilog, nogc, extend
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG28: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -229,16 +231,16 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[r15]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG29
+ je SHORT G_M35244_IG30
mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
cmp byte ptr [rdi+0x2E], 32
- je SHORT G_M35244_IG23
+ je SHORT G_M35244_IG22
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -269,9 +271,9 @@ G_M35244_IG29: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
...
+17 (+3.25%) : 129274.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -52,37 +52,37 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rdi
; gcrRegs +[rbx]
;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je SHORT G_M35244_IG09
+ je G_M35244_IG25
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG09
- ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG25
+ ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea edi, [rax-0x03]
cmp edi, 5
- jbe G_M35244_IG23
+ jbe G_M35244_IG22
;; size=16 bbWeight=3.99 PerfScore 14.94
-G_M35244_IG04: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG25
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
lea rax, G_M35244_IG02
add rdi, rax
jmp rdi
- ;; size=32 bbWeight=2.99 PerfScore 22.39
-G_M35244_IG05: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=36 bbWeight=2.99 PerfScore 22.39
+G_M35244_IG05: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r15, gword ptr [rbx+0x08]
; gcrRegs +[r15]
test r15, r15
- je SHORT G_M35244_IG08
- ;; size=9 bbWeight=2.99 PerfScore 9.70
+ je G_M35244_IG17
+ ;; size=13 bbWeight=2.99 PerfScore 9.70
G_M35244_IG06: ; bbWeight=2.47, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, r15
; gcrRegs +[rsi]
@@ -91,64 +91,50 @@ G_M35244_IG06: ; bbWeight=2.47, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG10
+ je SHORT G_M35244_IG08
;; size=23 bbWeight=2.47 PerfScore 6.80
G_M35244_IG07: ; bbWeight=0.88, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
mov r14d, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG11
+ jmp SHORT G_M35244_IG09
;; size=6 bbWeight=0.88 PerfScore 3.52
-G_M35244_IG08: ; bbWeight=0.51, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=1.59, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- xor r14d, r14d
- jmp SHORT G_M35244_IG11
- ;; size=5 bbWeight=0.51 PerfScore 1.15
-G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx r15]
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=9 bbWeight=0.00 PerfScore 0.00
-G_M35244_IG10: ; bbWeight=1.59, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx r15]
mov r14d, 1
;; size=6 bbWeight=1.59 PerfScore 0.40
-G_M35244_IG11: ; bbWeight=2.99, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=2.99, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
dec r14d
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG14
+ je SHORT G_M35244_IG12
;; size=11 bbWeight=2.99 PerfScore 5.22
-G_M35244_IG12: ; bbWeight=1.49, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.49, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [r13], rsi
- je SHORT G_M35244_IG14
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1.49 PerfScore 6.34
-G_M35244_IG13: ; bbWeight=0.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
xor r13, r13
; gcrRegs +[r13]
;; size=3 bbWeight=0.75 PerfScore 0.19
-G_M35244_IG14: ; bbWeight=2.99, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2.99, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
test r13, r13
- jne SHORT G_M35244_IG19
+ jne SHORT G_M35244_IG18
;; size=5 bbWeight=2.99 PerfScore 3.73
-G_M35244_IG15: ; bbWeight=1.07, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.07, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG16
;; size=8 bbWeight=1.07 PerfScore 1.61
-G_M35244_IG16: ; bbWeight=0.54, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.54, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [r13], rdi
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG16
;; size=16 bbWeight=0.54 PerfScore 2.28
-G_M35244_IG17: ; bbWeight=0.27, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=0.27, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov rsi, r15
; gcrRegs +[rsi]
@@ -158,50 +144,55 @@ G_M35244_IG17: ; bbWeight=0.27, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
mov r13, rax
; gcrRegs +[r13]
;; size=12 bbWeight=0.27 PerfScore 0.94
-G_M35244_IG18: ; bbWeight=1.07, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=1.07, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG34
+ jae G_M35244_IG35
mov rdi, gword ptr [r13+0x08]
; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae SHORT G_M35244_IG25
+ jae SHORT G_M35244_IG24
mov esi, r14d
mov r15, gword ptr [rdi+8*rsi+0x10]
; gcrRegs +[r15]
- jmp SHORT G_M35244_IG20
+ jmp SHORT G_M35244_IG19
;; size=30 bbWeight=1.07 PerfScore 15.31
-G_M35244_IG19: ; bbWeight=1.91, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdi r15]
+G_M35244_IG17: ; bbWeight=0.51, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rdi r13]
+ xor r14d, r14d
+ jmp SHORT G_M35244_IG09
+ ;; size=5 bbWeight=0.51 PerfScore 1.15
+G_M35244_IG18: ; bbWeight=1.91, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r15] +[r13]
mov r15, r13
; gcrRegs +[r15]
;; size=3 bbWeight=1.91 PerfScore 0.48
-G_M35244_IG20: ; bbWeight=2.99, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=2.99, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
movzx rdi, byte ptr [r15+0x2E]
cmp edi, 24
- je SHORT G_M35244_IG27
+ je SHORT G_M35244_IG28
;; size=10 bbWeight=2.99 PerfScore 9.70
-G_M35244_IG21: ; bbWeight=2.92, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=2.92, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
lea esi, [rdi-0x1A]
cmp esi, 1
- jbe SHORT G_M35244_IG27
+ jbe SHORT G_M35244_IG28
add edi, -33
cmp edi, 1
- jbe SHORT G_M35244_IG27
+ jbe SHORT G_M35244_IG28
;; size=16 bbWeight=2.92 PerfScore 9.51
-G_M35244_IG22: ; bbWeight=2.99, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=2.99, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, r15
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=8 bbWeight=2.99 PerfScore 6.72
-G_M35244_IG23: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov rdi, rbx
; gcrRegs +[rdi]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG24: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
pop rbx
pop r13
pop r14
@@ -210,12 +201,23 @@ G_M35244_IG24: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
;; size=14 bbWeight=1 PerfScore 4.50
-G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rbx rdi]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -227,16 +229,16 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[r15]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG28
+ je SHORT G_M35244_IG29
mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
cmp byte ptr [rdi+0x2E], 32
- je SHORT G_M35244_IG22
+ je SHORT G_M35244_IG21
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -267,9 +269,9 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
call [System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this]
; gcrRegs -[rdx rbx rdi r14]
; gcr arg pop 0
...
coreclr_tests.run.linux.x64.checked.mch
-7 (-1.28%) : 445350.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -56,9 +56,9 @@ G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG21
+ je G_M35244_IG32
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG21
+ jne G_M35244_IG32
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
@@ -69,7 +69,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG21
+ ja G_M35244_IG32
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
@@ -91,7 +91,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- je G_M35244_IG23
+ je G_M35244_IG21
;; size=27 bbWeight=1.55 PerfScore 4.25
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
mov r14d, dword ptr [rax+0x10]
@@ -143,11 +143,11 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG31
+ jae G_M35244_IG30
mov rdi, gword ptr [r13+0x08]
; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae G_M35244_IG32
+ jae G_M35244_IG31
mov esi, r14d
mov r15, gword ptr [rdi+8*rsi+0x10]
; gcrRegs +[r15]
@@ -156,13 +156,13 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcrRegs -[rdi r13]
movzx rdi, byte ptr [r15+0x2E]
cmp edi, 24
- je SHORT G_M35244_IG24
+ je SHORT G_M35244_IG23
lea esi, [rdi-0x1A]
cmp esi, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
add edi, -33
cmp edi, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
;; size=26 bbWeight=2 PerfScore 13.00
G_M35244_IG17: ; bbWeight=2, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
@@ -190,33 +190,24 @@ G_M35244_IG20: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=200
; gcrRegs +[r15]
jmp SHORT G_M35244_IG16
;; size=5 bbWeight=0.72 PerfScore 1.62
-G_M35244_IG21: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx r13 r15]
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.33
-G_M35244_IG22: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx r15]
- xor r14d, r14d
- jmp G_M35244_IG08
- ;; size=8 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r13]
mov r14d, 1
jmp G_M35244_IG08
;; size=11 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ xor r14d, r14d
+ jmp G_M35244_IG08
+ ;; size=8 bbWeight=0.45 PerfScore 1.02
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG24
mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
cmp byte ptr [rdi+0x2E], 32
je SHORT G_M35244_IG17
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -249,7 +240,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M35244_IG17
;; size=72 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -258,9 +249,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov r15d, eax
mov r14d, 1
- jmp SHORT G_M35244_IG28
+ jmp SHORT G_M35244_IG27
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov esi, r14d
@@ -275,20 +266,20 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc r14d
;; size=26 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r14d, r15d
- jl SHORT G_M35244_IG27
+ jl SHORT G_M35244_IG26
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG21
- jmp SHORT G_M35244_IG33
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ je SHORT G_M35244_IG32
+ jmp SHORT G_M35244_IG34
+ ;; size=13 bbWeight=0 PerfScore 0.00
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x20]
mov dword ptr [rbx+0x24], edi
;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x24], 1
- je SHORT G_M35244_IG33
+ je SHORT G_M35244_IG34
mov rdi, rbx
; gcrRegs +[rdi]
call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this]
@@ -297,20 +288,31 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rbx, rax
; gcrRegs +[rbx]
test rbx, rbx
- je G_M35244_IG21
+ je SHORT G_M35244_IG32
jmp G_M35244_IG03
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx]
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG33: ; bbWeight=0, epilog, nogc, extend
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG34: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -322,20 +324,20 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 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_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_IG32 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
-; Total bytes of code 545, prolog size 16, PerfScore 110.61, instruction count 146, allocated bytes for code 545 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 538, prolog size 16, PerfScore 108.27, instruction count 147, allocated bytes for code 538 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
-7 (-1.28%) : 332141.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -56,9 +56,9 @@ G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG21
+ je G_M35244_IG32
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG21
+ jne G_M35244_IG32
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
@@ -69,7 +69,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG21
+ ja G_M35244_IG32
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
@@ -91,7 +91,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- je G_M35244_IG23
+ je G_M35244_IG21
;; size=27 bbWeight=1.55 PerfScore 4.25
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
mov r14d, dword ptr [rax+0x10]
@@ -143,11 +143,11 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG31
+ jae G_M35244_IG30
mov rdi, gword ptr [r13+0x08]
; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae G_M35244_IG32
+ jae G_M35244_IG31
mov esi, r14d
mov r15, gword ptr [rdi+8*rsi+0x10]
; gcrRegs +[r15]
@@ -156,13 +156,13 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcrRegs -[rdi r13]
movzx rdi, byte ptr [r15+0x2E]
cmp edi, 24
- je SHORT G_M35244_IG24
+ je SHORT G_M35244_IG23
lea esi, [rdi-0x1A]
cmp esi, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
add edi, -33
cmp edi, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
;; size=26 bbWeight=2 PerfScore 13.00
G_M35244_IG17: ; bbWeight=2, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
@@ -190,33 +190,24 @@ G_M35244_IG20: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=200
; gcrRegs +[r15]
jmp SHORT G_M35244_IG16
;; size=5 bbWeight=0.72 PerfScore 1.62
-G_M35244_IG21: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx r13 r15]
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.33
-G_M35244_IG22: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx r15]
- xor r14d, r14d
- jmp G_M35244_IG08
- ;; size=8 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r13]
mov r14d, 1
jmp G_M35244_IG08
;; size=11 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ xor r14d, r14d
+ jmp G_M35244_IG08
+ ;; size=8 bbWeight=0.45 PerfScore 1.02
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG24
mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
cmp byte ptr [rdi+0x2E], 32
je SHORT G_M35244_IG17
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -249,7 +240,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M35244_IG17
;; size=72 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -258,9 +249,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov r15d, eax
mov r14d, 1
- jmp SHORT G_M35244_IG28
+ jmp SHORT G_M35244_IG27
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov esi, r14d
@@ -275,20 +266,20 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc r14d
;; size=26 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r14d, r15d
- jl SHORT G_M35244_IG27
+ jl SHORT G_M35244_IG26
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG21
- jmp SHORT G_M35244_IG33
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ je SHORT G_M35244_IG32
+ jmp SHORT G_M35244_IG34
+ ;; size=13 bbWeight=0 PerfScore 0.00
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x20]
mov dword ptr [rbx+0x24], edi
;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x24], 1
- je SHORT G_M35244_IG33
+ je SHORT G_M35244_IG34
mov rdi, rbx
; gcrRegs +[rdi]
call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this]
@@ -297,20 +288,31 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rbx, rax
; gcrRegs +[rbx]
test rbx, rbx
- je G_M35244_IG21
+ je SHORT G_M35244_IG32
jmp G_M35244_IG03
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx]
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG33: ; bbWeight=0, epilog, nogc, extend
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG34: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -322,20 +324,20 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 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_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_IG32 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
-; Total bytes of code 546, prolog size 16, PerfScore 111.25, instruction count 146, allocated bytes for code 546 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 539, prolog size 16, PerfScore 108.91, instruction count 147, allocated bytes for code 539 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
-7 (-1.28%) : 467533.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -56,9 +56,9 @@ G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG21
+ je G_M35244_IG32
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG21
+ jne G_M35244_IG32
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
@@ -69,7 +69,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG21
+ ja G_M35244_IG32
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
@@ -91,7 +91,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- je G_M35244_IG23
+ je G_M35244_IG21
;; size=27 bbWeight=1.55 PerfScore 4.25
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
mov r14d, dword ptr [rax+0x10]
@@ -143,11 +143,11 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG31
+ jae G_M35244_IG30
mov rdi, gword ptr [r13+0x08]
; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae G_M35244_IG32
+ jae G_M35244_IG31
mov esi, r14d
mov r15, gword ptr [rdi+8*rsi+0x10]
; gcrRegs +[r15]
@@ -156,13 +156,13 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcrRegs -[rdi r13]
movzx rdi, byte ptr [r15+0x2E]
cmp edi, 24
- je SHORT G_M35244_IG24
+ je SHORT G_M35244_IG23
lea esi, [rdi-0x1A]
cmp esi, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
add edi, -33
cmp edi, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
;; size=26 bbWeight=2 PerfScore 13.00
G_M35244_IG17: ; bbWeight=2, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
@@ -190,33 +190,24 @@ G_M35244_IG20: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=200
; gcrRegs +[r15]
jmp SHORT G_M35244_IG16
;; size=5 bbWeight=0.72 PerfScore 1.62
-G_M35244_IG21: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx r13 r15]
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.33
-G_M35244_IG22: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx r15]
- xor r14d, r14d
- jmp G_M35244_IG08
- ;; size=8 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r13]
mov r14d, 1
jmp G_M35244_IG08
;; size=11 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ xor r14d, r14d
+ jmp G_M35244_IG08
+ ;; size=8 bbWeight=0.45 PerfScore 1.02
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG24
mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
cmp byte ptr [rdi+0x2E], 32
je SHORT G_M35244_IG17
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -249,7 +240,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M35244_IG17
;; size=72 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15] +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -258,9 +249,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov r15d, eax
mov r14d, 1
- jmp SHORT G_M35244_IG28
+ jmp SHORT G_M35244_IG27
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov esi, r14d
@@ -275,20 +266,20 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc r14d
;; size=26 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp r14d, r15d
- jl SHORT G_M35244_IG27
+ jl SHORT G_M35244_IG26
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG21
- jmp SHORT G_M35244_IG33
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ je SHORT G_M35244_IG32
+ jmp SHORT G_M35244_IG34
+ ;; size=13 bbWeight=0 PerfScore 0.00
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x20]
mov dword ptr [rbx+0x24], edi
;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x24], 1
- je SHORT G_M35244_IG33
+ je SHORT G_M35244_IG34
mov rdi, rbx
; gcrRegs +[rdi]
call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this]
@@ -297,20 +288,31 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rbx, rax
; gcrRegs +[rbx]
test rbx, rbx
- je G_M35244_IG21
+ je SHORT G_M35244_IG32
jmp G_M35244_IG03
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx]
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG33: ; bbWeight=0, epilog, nogc, extend
+ pop rbx
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG34: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rdi, rbx
; gcrRegs +[rdi]
@@ -322,20 +324,20 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 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_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_IG32 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
-; Total bytes of code 546, prolog size 16, PerfScore 111.25, instruction count 146, allocated bytes for code 546 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 539, prolog size 16, PerfScore 108.91, instruction count 147, allocated bytes for code 539 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
-1 (-0.11%) : 464286.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
@@ -106,7 +106,7 @@ G_M19663_IG06: ; bbWeight=98.97, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR
mov edi, esi
movzx rdi, byte ptr [rcx+rdi+0x10]
cmp edi, 3
- ja SHORT G_M19663_IG09
+ ja SHORT G_M19663_IG08
mov esi, edi
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
@@ -114,7 +114,7 @@ G_M19663_IG06: ; bbWeight=98.97, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR
add rdi, r8
jmp rdi
;; size=63 bbWeight=98.97 PerfScore 1533.96
-G_M19663_IG07: ; bbWeight=31.06, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M19663_IG07: ; bbWeight=31.06, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref
mov gword ptr [rbp+0x78], rcx
; GC ptr vars +{V06}
mov dword ptr [rbp+0x74], eax
@@ -133,10 +133,17 @@ G_M19663_IG07: ; bbWeight=31.06, gcrefRegs=C00A {rcx rbx r14 r15}, byrefR
mov eax, dword ptr [rbp+0x74]
mov rcx, gword ptr [rbp+0x78]
; gcrRegs +[rcx]
- jmp SHORT G_M19663_IG09
- ;; size=44 bbWeight=31.06 PerfScore 395.98
-G_M19663_IG08: ; bbWeight=18.63, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=42 bbWeight=31.06 PerfScore 333.87
+G_M19663_IG08: ; bbWeight=98.97, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V06}
+ inc eax
+ cmp eax, r13d
+ jl SHORT G_M19663_IG06
+ ;; size=7 bbWeight=98.97 PerfScore 148.45
+G_M19663_IG09: ; bbWeight=0.03, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref
+ jmp G_M19663_IG17
+ ;; size=5 bbWeight=0.03 PerfScore 0.07
+G_M19663_IG10: ; bbWeight=18.63, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov gword ptr [rbp+0x78], rcx
; GC ptr vars +{V06}
mov dword ptr [rbp+0x74], eax
@@ -155,41 +162,9 @@ G_M19663_IG08: ; bbWeight=18.63, gcVars=0000000000000000 {}, gcrefRegs=C0
mov eax, dword ptr [rbp+0x74]
mov rcx, gword ptr [rbp+0x78]
; gcrRegs +[rcx]
- ;; size=42 bbWeight=18.63 PerfScore 200.32
-G_M19663_IG09: ; bbWeight=98.97, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars -{V06}
- inc eax
- cmp eax, r13d
- jl G_M19663_IG06
- ;; size=11 bbWeight=98.97 PerfScore 148.45
-G_M19663_IG10: ; bbWeight=0.03, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref
- jmp G_M19663_IG17
- ;; size=5 bbWeight=0.03 PerfScore 0.07
-G_M19663_IG11: ; bbWeight=24.30, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, byref, isz
- mov gword ptr [rbp+0x78], rcx
- ; GC ptr vars +{V06}
- mov dword ptr [rbp+0x74], eax
- mov r8d, eax
- shl r8, 4
- lea rsi, bword ptr [rbx+r8+0x10]
- ; byrRegs +[rsi]
- lea r9, bword ptr [r15+r8+0x10]
- ; byrRegs +[r9]
- mov rdx, r9
- ; byrRegs +[rdx]
- lea rcx, bword ptr [r14+r8+0x10]
- ; gcrRegs -[rcx]
- ; byrRegs +[rcx]
- xor edi, edi
- call [EMFloat:AddSubInternalFPF(ubyte,byref,byref,byref)]
- ; byrRegs -[rcx rdx rsi r9]
- ; gcr arg pop 0
- mov eax, dword ptr [rbp+0x74]
- mov rcx, gword ptr [rbp+0x78]
- ; gcrRegs +[rcx]
- jmp SHORT G_M19663_IG09
- ;; size=49 bbWeight=24.30 PerfScore 321.94
-G_M19663_IG12: ; bbWeight=24.98, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M19663_IG08
+ ;; size=44 bbWeight=18.63 PerfScore 237.59
+G_M19663_IG11: ; bbWeight=24.98, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V06}
mov gword ptr [rbp+0x78], rcx
; GC ptr vars +{V06}
@@ -212,8 +187,33 @@ G_M19663_IG12: ; bbWeight=24.98, gcVars=0000000000000000 {}, gcrefRegs=C0
mov eax, dword ptr [rbp+0x74]
mov rcx, gword ptr [rbp+0x78]
; gcrRegs +[rcx]
- jmp SHORT G_M19663_IG09
+ jmp SHORT G_M19663_IG08
;; size=52 bbWeight=24.98 PerfScore 330.93
+G_M19663_IG12: ; bbWeight=24.30, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ ; GC ptr vars -{V06}
+ mov gword ptr [rbp+0x78], rcx
+ ; GC ptr vars +{V06}
+ mov dword ptr [rbp+0x74], eax
+ mov r8d, eax
+ shl r8, 4
+ lea rsi, bword ptr [rbx+r8+0x10]
+ ; byrRegs +[rsi]
+ lea r9, bword ptr [r15+r8+0x10]
+ ; byrRegs +[r9]
+ mov rdx, r9
+ ; byrRegs +[rdx]
+ lea rcx, bword ptr [r14+r8+0x10]
+ ; gcrRegs -[rcx]
+ ; byrRegs +[rcx]
+ xor edi, edi
+ call [EMFloat:AddSubInternalFPF(ubyte,byref,byref,byref)]
+ ; byrRegs -[rcx rdx rsi r9]
+ ; gcr arg pop 0
+ mov eax, dword ptr [rbp+0x74]
+ mov rcx, gword ptr [rbp+0x78]
+ ; gcrRegs +[rcx]
+ jmp G_M19663_IG08
+ ;; size=52 bbWeight=24.30 PerfScore 321.94
G_M19663_IG13: ; bbWeight=1.00, gcVars=0000000000000000 {}, gcrefRegs=C00A {rcx rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V06}
mov edi, eax
@@ -387,17 +387,17 @@ G_M19663_IG22: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M19663_IG11 - G_M19663_IG02
- dd G_M19663_IG12 - G_M19663_IG02
+RWD00 dd G_M19663_IG12 - G_M19663_IG02
+ dd G_M19663_IG11 - G_M19663_IG02
dd G_M19663_IG07 - G_M19663_IG02
- dd G_M19663_IG08 - G_M19663_IG02
+ dd G_M19663_IG10 - G_M19663_IG02
RWD16 dd G_M19663_IG21 - G_M19663_IG02
dd G_M19663_IG20 - G_M19663_IG02
dd G_M19663_IG14 - G_M19663_IG02
dd G_M19663_IG15 - G_M19663_IG02
-; Total bytes of code 873, prolog size 96, PerfScore 2998.86, instruction count 218, allocated bytes for code 873 (MethodHash=0767b330) for method EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
+; Total bytes of code 872, prolog size 96, PerfScore 2974.01, instruction count 218, allocated bytes for code 872 (MethodHash=0767b330) for method EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
; ============================================================
Unwind Info:
+4 (+0.49%) : 464229.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
@@ -118,12 +118,12 @@ G_M16822_IG05: ; bbWeight=105, gcrefRegs=8008 {rbx r15}, byrefRegs=0002 {
; gcrRegs +[rax]
mov edx, dword ptr [rax+0x08]
test edx, edx
- je G_M16822_IG26
+ je G_M16822_IG27
mov r9d, dword ptr [rax+0x10]
imul r10d, r9d, 0x3E322
mov rax, r8
cmp edx, 1
- jbe G_M16822_IG26
+ jbe G_M16822_IG27
imul r11d, dword ptr [rax+0x14], 0xD1FFAB1E
add r10d, r11d
mov edx, 0xD1FFAB1E
@@ -167,7 +167,7 @@ G_M16822_IG06: ; bbWeight=51.83, gcrefRegs=8108 {rbx r8 r15}, byrefRegs=0
G_M16822_IG07: ; bbWeight=105, gcrefRegs=8108 {rbx r8 r15}, byrefRegs=0A02 {rcx r9 r11}, byref, isz
lea r13d, [rdi+rdi]
cmp r13d, dword ptr [r15+0x08]
- jae G_M16822_IG26
+ jae G_M16822_IG27
mov eax, r13d
mov dword ptr [r15+4*rax+0x10], r10d
mov r12d, dword ptr [rcx]
@@ -210,7 +210,7 @@ G_M16822_IG08: ; bbWeight=51.83, gcrefRegs=8008 {rbx r15}, byrefRegs=0002
G_M16822_IG09: ; bbWeight=105, gcrefRegs=8008 {rbx r15}, byrefRegs=0002 {rcx}, byref
inc r13d
cmp r13d, dword ptr [r15+0x08]
- jae G_M16822_IG26
+ jae G_M16822_IG27
mov eax, r13d
mov dword ptr [r15+4*rax+0x10], edx
add edx, r12d
@@ -226,7 +226,7 @@ G_M16822_IG10: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
movsxd r13, eax
xor edi, edi
test r14d, r14d
- jle G_M16822_IG24
+ jle G_M16822_IG25
;; size=19 bbWeight=1 PerfScore 2.75
G_M16822_IG11: ; bbWeight=105, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov edx, 0xD1FFAB1E
@@ -239,7 +239,7 @@ G_M16822_IG11: ; bbWeight=105, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {
mov r12d, edi
sub r12d, eax
cmp r12d, 2
- ja G_M16822_IG23
+ ja G_M16822_IG15
mov eax, r12d
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rax]
@@ -247,20 +247,20 @@ G_M16822_IG11: ; bbWeight=105, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {
add rcx, rdx
jmp rcx
;; size=60 bbWeight=105 PerfScore 1338.75
-G_M16822_IG12: ; bbWeight=35.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16822_IG12: ; bbWeight=35.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
lea eax, [rdi+rdi]
cmp eax, dword ptr [r15+0x08]
- jae G_M16822_IG26
+ jae G_M16822_IG27
mov ecx, eax
mov ecx, dword ptr [r15+4*rcx+0x10]
inc eax
cmp eax, dword ptr [r15+0x08]
- jae G_M16822_IG26
+ jae G_M16822_IG27
mov eax, dword ptr [r15+4*rax+0x10]
lea edx, [rax-0x01]
test eax, eax
- jle G_M16822_IG23
- ;; size=48 bbWeight=35.50 PerfScore 523.62
+ jle SHORT G_M16822_IG15
+ ;; size=44 bbWeight=35.50 PerfScore 523.62
G_M16822_IG13: ; bbWeight=35.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov esi, dword ptr [rbx+0x08]
;; size=3 bbWeight=35.50 PerfScore 71.00
@@ -275,7 +275,7 @@ G_M16822_IG14: ; bbWeight=941419.43, gcrefRegs=8008 {rbx r15}, byrefRegs=
mov r9d, ecx
sub r9d, r8d
cmp eax, esi
- jae G_M16822_IG26
+ jae G_M16822_IG27
lea rax, bword ptr [rbx+4*rax+0x10]
; byrRegs +[rax]
mov r8d, 1
@@ -288,27 +288,34 @@ G_M16822_IG14: ; bbWeight=941419.43, gcrefRegs=8008 {rbx r15}, byrefRegs=
test eax, eax
jg SHORT G_M16822_IG14
;; size=67 bbWeight=941419.43 PerfScore 10355613.71
-G_M16822_IG15: ; bbWeight=35.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- jmp G_M16822_IG23
- ;; size=5 bbWeight=35.50 PerfScore 71.00
-G_M16822_IG16: ; bbWeight=34.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M16822_IG15: ; bbWeight=105, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ inc edi
+ cmp edi, r14d
+ jl G_M16822_IG11
+ ;; size=11 bbWeight=105 PerfScore 157.50
+G_M16822_IG16: ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbx r15]
+ jmp G_M16822_IG25
+ ;; size=5 bbWeight=0.99 PerfScore 1.98
+G_M16822_IG17: ; bbWeight=34.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs +[rbx r15]
lea eax, [rdi+rdi]
cmp eax, dword ptr [r15+0x08]
- jae G_M16822_IG26
+ jae G_M16822_IG27
mov esi, eax
mov ecx, dword ptr [r15+4*rsi+0x10]
inc eax
cmp eax, dword ptr [r15+0x08]
- jae G_M16822_IG26
+ jae G_M16822_IG27
mov eax, dword ptr [r15+4*rax+0x10]
lea edx, [rax-0x01]
test eax, eax
- jle G_M16822_IG23
- ;; size=48 bbWeight=34.75 PerfScore 512.56
-G_M16822_IG17: ; bbWeight=34.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ jle SHORT G_M16822_IG15
+ ;; size=44 bbWeight=34.75 PerfScore 512.56
+G_M16822_IG18: ; bbWeight=34.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov esi, dword ptr [rbx+0x08]
;; size=3 bbWeight=34.75 PerfScore 69.50
-G_M16822_IG18: ; bbWeight=921530.29, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M16822_IG19: ; bbWeight=921530.29, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov eax, ecx
sar eax, 5
mov r8d, ecx
@@ -319,7 +326,7 @@ G_M16822_IG18: ; bbWeight=921530.29, gcrefRegs=8008 {rbx r15}, byrefRegs=
mov r9d, ecx
sub r9d, r8d
cmp eax, esi
- jae G_M16822_IG26
+ jae G_M16822_IG27
lea rax, bword ptr [rbx+4*rax+0x10]
; byrRegs +[rax]
mov r8d, 1
@@ -331,29 +338,29 @@ G_M16822_IG18: ; bbWeight=921530.29, gcrefRegs=8008 {rbx r15}, byrefRegs=
; byrRegs -[rax]
lea edx, [rax-0x01]
test eax, eax
- jg SHORT G_M16822_IG18
+ jg SHORT G_M16822_IG19
;; size=70 bbWeight=921530.29 PerfScore 10367215.71
-G_M16822_IG19: ; bbWeight=34.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M16822_IG23
- ;; size=2 bbWeight=34.75 PerfScore 69.50
-G_M16822_IG20: ; bbWeight=34.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M16822_IG20: ; bbWeight=34.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ jmp G_M16822_IG15
+ ;; size=5 bbWeight=34.75 PerfScore 69.50
+G_M16822_IG21: ; bbWeight=34.75, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
lea eax, [rdi+rdi]
cmp eax, dword ptr [r15+0x08]
- jae G_M16822_IG26
+ jae G_M16822_IG27
mov esi, eax
mov ecx, dword ptr [r15+4*rsi+0x10]
inc eax
cmp eax, dword ptr [r15+0x08]
- jae SHORT G_M16822_IG26
+ jae SHORT G_M16822_IG27
mov eax, dword ptr [r15+4*rax+0x10]
lea edx, [rax-0x01]
test eax, eax
- jle SHORT G_M16822_IG23
- ;; size=40 bbWeight=34.75 PerfScore 512.56
-G_M16822_IG21: ; bbWeight=34.72, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ jle G_M16822_IG15
+ ;; size=44 bbWeight=34.75 PerfScore 512.56
+G_M16822_IG22: ; bbWeight=34.72, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov esi, dword ptr [rbx+0x08]
;; size=3 bbWeight=34.72 PerfScore 69.43
-G_M16822_IG22: ; bbWeight=34715.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M16822_IG23: ; bbWeight=34715.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov eax, ecx
sar eax, 5
mov r8d, ecx
@@ -364,7 +371,7 @@ G_M16822_IG22: ; bbWeight=34715.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0
mov r9d, ecx
sub r9d, r8d
cmp eax, esi
- jae SHORT G_M16822_IG26
+ jae SHORT G_M16822_IG27
lea rax, bword ptr [rbx+4*rax+0x10]
; byrRegs +[rax]
mov r8d, 1
@@ -375,21 +382,19 @@ G_M16822_IG22: ; bbWeight=34715.25, gcrefRegs=8008 {rbx r15}, byrefRegs=0
; byrRegs -[rax]
lea edx, [rax-0x01]
test eax, eax
- jg SHORT G_M16822_IG22
+ jg SHORT G_M16822_IG23
;; size=63 bbWeight=34715.25 PerfScore 381867.75
-G_M16822_IG23: ; bbWeight=105, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- inc edi
- cmp edi, r14d
- jl G_M16822_IG11
- ;; size=11 bbWeight=105 PerfScore 157.50
-G_M16822_IG24: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M16822_IG24: ; bbWeight=34.72, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ jmp G_M16822_IG15
+ ;; size=5 bbWeight=34.72 PerfScore 69.43
+G_M16822_IG25: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx r15]
call <unknown method>
; gcr arg pop 0
cdqe
sub rax, r13
;; size=10 bbWeight=1 PerfScore 1.50
-G_M16822_IG25: ; bbWeight=1, epilog, nogc, extend
+G_M16822_IG26: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
pop rbx
pop r12
@@ -399,17 +404,17 @@ G_M16822_IG25: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M16822_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M16822_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
RWD00 dd G_M16822_IG12 - G_M16822_IG02
- dd G_M16822_IG16 - G_M16822_IG02
- dd G_M16822_IG20 - G_M16822_IG02
+ dd G_M16822_IG17 - G_M16822_IG02
+ dd G_M16822_IG21 - G_M16822_IG02
-; Total bytes of code 821, prolog size 25, PerfScore 21118664.51, instruction count 242, allocated bytes for code 821 (MethodHash=7135be49) for method BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
+; Total bytes of code 825, prolog size 25, PerfScore 21118664.93, instruction count 243, allocated bytes for code 825 (MethodHash=7135be49) for method BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
; ============================================================
Unwind Info:
+6 (+1.13%) : 481333.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -20,10 +20,10 @@
; V08 loc7 [V08,T19] ( 5, 0 ) int -> r14
; V09 loc8 [V09,T20] ( 3, 0 ) ref -> rbx class-hnd exact <System.Text.RegularExpressions.RegexNode>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T18] ( 5, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T18] ( 5, 0 ) ref -> r14 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T15] ( 4, 4.00) int -> r14 "Inline return value spill temp"
; V13 tmp3 [V13,T14] ( 3, 4.18) ref -> rax class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T11] ( 6, 6 ) ref -> r13 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T11] ( 6, 6 ) ref -> r15 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T07] ( 2, 8.00) ref -> r13 "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 -> r13 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
@@ -52,31 +52,31 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rdi
; gcrRegs +[rbx]
;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je SHORT G_M35244_IG09
+ je G_M35244_IG32
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG09
- ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG32
+ ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea edi, [rax-0x03]
cmp edi, 5
- jbe G_M35244_IG21
+ jbe G_M35244_IG19
;; size=16 bbWeight=3 PerfScore 11.25
-G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG32
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
lea rax, G_M35244_IG02
add rdi, rax
jmp rdi
- ;; size=32 bbWeight=2 PerfScore 15.00
+ ;; size=36 bbWeight=2 PerfScore 15.00
G_M35244_IG05: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r15]
mov r14d, 1
@@ -86,48 +86,35 @@ G_M35244_IG06: ; bbWeight=2.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG11
+ je SHORT G_M35244_IG09
;; size=11 bbWeight=2.00 PerfScore 3.50
G_M35244_IG07: ; bbWeight=1.00, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [r13], rsi
- je SHORT G_M35244_IG11
+ je SHORT G_M35244_IG09
;; size=16 bbWeight=1.00 PerfScore 4.25
-G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
- jmp SHORT G_M35244_IG10
- ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG09: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx r15]
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.33
-G_M35244_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx r15]
xor r13, r13
; gcrRegs +[r13]
;; size=3 bbWeight=0.50 PerfScore 0.13
-G_M35244_IG11: ; bbWeight=2.00, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG09: ; bbWeight=2.00, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
test r13, r13
- jne G_M35244_IG23
+ jne G_M35244_IG21
;; size=9 bbWeight=2.00 PerfScore 2.50
-G_M35244_IG12: ; bbWeight=1.28, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.28, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG13
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG13: ; bbWeight=0.64, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=0.64, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [r13], rdi
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG13
;; size=16 bbWeight=0.64 PerfScore 2.72
-G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG12: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov rsi, r15
; gcrRegs +[rsi]
@@ -137,43 +124,44 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
mov r13, rax
; gcrRegs +[r13]
;; size=11 bbWeight=0.32 PerfScore 0.48
-G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+G_M35244_IG13: ; bbWeight=1.28, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG32
+ jae G_M35244_IG30
mov rdi, gword ptr [r13+0x08]
; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae G_M35244_IG33
+ jae G_M35244_IG31
mov esi, r14d
- mov r13, gword ptr [rdi+8*rsi+0x10]
+ mov r15, gword ptr [rdi+8*rsi+0x10]
+ ; gcrRegs +[r15]
;; size=32 bbWeight=1.28 PerfScore 15.68
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdi]
- movzx rdi, byte ptr [r13+0x2E]
+G_M35244_IG14: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rdi r13]
+ movzx rdi, byte ptr [r15+0x2E]
cmp edi, 24
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG23
lea esi, [rdi-0x1A]
cmp esi, 1
- jbe SHORT G_M35244_IG25
+ jbe SHORT G_M35244_IG23
add edi, -33
cmp edi, 1
- jbe SHORT G_M35244_IG25
+ jbe SHORT G_M35244_IG23
;; size=26 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
- mov rbx, r13
+ mov rbx, r15
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 4.50
-G_M35244_IG18: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r13]
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r15]
mov r15, gword ptr [rbx+0x08]
; gcrRegs +[r15]
test r15, r15
- je SHORT G_M35244_IG24
+ je SHORT G_M35244_IG22
;; size=9 bbWeight=2 PerfScore 6.50
-G_M35244_IG19: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG17: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov rsi, r15
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
@@ -183,16 +171,16 @@ G_M35244_IG19: ; bbWeight=1.55, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
test rax, rax
je G_M35244_IG05
;; size=27 bbWeight=1.55 PerfScore 4.25
-G_M35244_IG20: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG18: ; bbWeight=1.09, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
mov r14d, dword ptr [rax+0x10]
jmp G_M35244_IG06
;; size=9 bbWeight=1.09 PerfScore 4.36
-G_M35244_IG21: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r15]
mov rdi, rbx
; gcrRegs +[rdi]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG20: ; bbWeight=1, epilog, nogc, extend
pop rbx
pop r13
pop r14
@@ -201,38 +189,39 @@ G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
;; size=14 bbWeight=1 PerfScore 4.50
-G_M35244_IG23: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG21: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rdi] +[r13]
- jmp SHORT G_M35244_IG16
- ;; size=2 bbWeight=0.72 PerfScore 1.44
-G_M35244_IG24: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r13] +[r15]
+ mov r15, r13
+ ; gcrRegs +[r15]
+ jmp SHORT G_M35244_IG14
+ ;; size=5 bbWeight=0.72 PerfScore 1.62
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r13]
xor r14d, r14d
jmp G_M35244_IG06
;; size=8 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r15] +[r13]
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG26
+ je SHORT G_M35244_IG24
mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
cmp byte ptr [rdi+0x2E], 32
- je SHORT G_M35244_IG17
+ je SHORT G_M35244_IG15
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
; gcr arg pop 0
- mov r15, rax
- ; gcrRegs +[r15]
- mov edi, dword ptr [r13+0x28]
- mov byte ptr [r15+0x2E], 32
- mov dword ptr [r15+0x28], edi
- mov rdi, r15
+ mov r14, rax
+ ; gcrRegs +[r14]
+ mov edi, dword ptr [r15+0x28]
+ mov byte ptr [r14+0x2E], 32
+ mov dword ptr [r14+0x28], edi
+ mov rdi, r14
; gcrRegs +[rdi]
- mov rsi, r13
+ mov rsi, r15
; gcrRegs +[rsi]
call [System.Text.RegularExpressions.RegexNode:AddChild(System.Text.RegularExpressions.RegexNode):this]
; gcrRegs -[rax rsi rdi]
...
libraries_tests.run.linux.x64.Release.mch
-25 (-3.40%) : 460629.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -13,22 +13,22 @@
; V01 loc0 [V01,T02] ( 22, 9.54) ref -> rbx class-hnd <System.Text.RegularExpressions.RegexNode>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V03 loc2 [V03,T04] ( 3, 9.14) ubyte -> rax
-; V04 loc3 [V04,T07] ( 4, 7.29) ubyte -> r13
+; V04 loc3 [V04,T07] ( 4, 7.29) ubyte -> rdi
;* V05 loc4 [V05,T17] ( 0, 0 ) ubyte -> zero-ref
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V07 loc6 [V07,T33] ( 2, 0 ) int -> r15
; V08 loc7 [V08,T31] ( 5, 0 ) int -> r14
; V09 loc8 [V09,T32] ( 3, 0 ) ref -> rbx class-hnd exact <System.Text.RegularExpressions.RegexNode>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T18] ( 5, 1.43) ref -> r15 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T18] ( 5, 1.43) ref -> r14 class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T14] ( 4, 3.71) int -> r14 "Inline return value spill temp"
; V13 tmp3 [V13,T15] ( 3, 3.53) ref -> rax class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T12] ( 6, 5.86) ref -> r12 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T12] ( 6, 5.86) ref -> r15 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T06] ( 2, 7.43) ref -> r13 "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.38) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
; V18 tmp8 [V18,T01] ( 4, 10.85) int -> r14 "Inlining Arg"
-; V19 tmp9 [V19,T08] ( 3, 7.13) ref -> rdi class-hnd "Inlining Arg" <<unknown class>>
+; V19 tmp9 [V19,T08] ( 3, 7.13) ref -> r13 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.57) int -> rdi "Inlining Arg"
; V22 tmp12 [V22,T29] ( 4, 0.29) int -> rsi "Inline return value spill temp"
@@ -40,49 +40,47 @@
; V28 tmp18 [V28,T24] ( 3, 0.67) ref -> rbx class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
; V29 tmp19 [V29,T21] ( 3, 1.10) ref -> rbx class-hnd "Inlining Arg" <<unknown class>>
; V30 tmp20 [V30,T09] ( 3, 7.13) ref -> rdi "arr expr"
-; V31 tmp21 [V31,T22] ( 3, 1.10) ref -> rsi "arr expr"
+; V31 tmp21 [V31,T22] ( 3, 1.10) ref -> rdi "arr expr"
; V32 tmp22 [V32,T10] ( 5, 6.96) ref -> r13 "CastInstOf QMark result"
; V33 tmp23 [V33,T23] ( 5, 1.07) ref -> rbx "CastInstOf QMark result"
; V34 cse0 [V34,T03] ( 10, 9.34) ref -> r15 multi-def "CSE - aggressive"
; V35 cse1 [V35,T28] ( 3, 0.43) ref -> rdi "CSE - conservative"
-; V36 rat0 [V36,T05] ( 5, 8.91) ref -> rdi "replacement local"
-; V37 rat1 [V37,T16] ( 3, 2.97) long -> rax "CSE for expectedClsNode"
+; V36 rat0 [V36,T05] ( 5, 8.91) ref -> r13 "replacement local"
+; V37 rat1 [V37,T16] ( 3, 2.97) long -> rdi "CSE for expectedClsNode"
; V38 rat2 [V38,T19] ( 5, 1.37) ref -> rbx "replacement local"
; V39 rat3 [V39,T27] ( 3, 0.46) long -> rdi "CSE for expectedClsNode"
; V40 rat4 [V40,T00] ( 3, 17.14) int -> rax "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
push r13
- push r12
push rbx
- push rax
- lea rbp, [rsp+0x30]
+ lea rbp, [rsp+0x20]
mov rbx, rdi
; gcrRegs +[rbx]
- ;; size=19 bbWeight=1 PerfScore 7.75
+ ;; size=16 bbWeight=1 PerfScore 5.75
G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG22
+ je G_M35244_IG49
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG22
+ jne G_M35244_IG49
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3.14, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea edi, [rax-0x03]
cmp edi, 5
- jbe G_M35244_IG34
+ jbe G_M35244_IG32
;; size=16 bbWeight=3.14 PerfScore 11.79
G_M35244_IG04: ; bbWeight=2.86, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG22
+ ja G_M35244_IG49
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
@@ -94,9 +92,9 @@ G_M35244_IG05: ; bbWeight=1.86, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
mov r15, gword ptr [rbx+0x08]
; gcrRegs +[r15]
test r15, r15
- je G_M35244_IG23
+ je G_M35244_IG21
;; size=13 bbWeight=1.86 PerfScore 6.04
-G_M35244_IG06: ; bbWeight=1.49, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=1.49, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
mov rsi, r15
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
@@ -104,8 +102,8 @@ G_M35244_IG06: ; bbWeight=1.49, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- jne SHORT G_M35244_IG15
- ;; size=23 bbWeight=1.49 PerfScore 4.09
+ jne G_M35244_IG20
+ ;; size=27 bbWeight=1.49 PerfScore 4.09
G_M35244_IG07: ; bbWeight=0.93, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov r14d, 1
@@ -118,8 +116,8 @@ G_M35244_IG08: ; bbWeight=1.86, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
je SHORT G_M35244_IG11
;; size=11 bbWeight=1.86 PerfScore 3.25
G_M35244_IG09: ; bbWeight=0.93, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
- mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
- cmp qword ptr [r13], rdi
+ mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
+ cmp qword ptr [r13], rsi
je SHORT G_M35244_IG11
;; size=16 bbWeight=0.93 PerfScore 3.95
G_M35244_IG10: ; bbWeight=0.46, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
@@ -129,132 +127,117 @@ G_M35244_IG10: ; bbWeight=0.46, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
;; size=3 bbWeight=0.46 PerfScore 0.12
G_M35244_IG11: ; bbWeight=1.86, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
test r13, r13
- jne SHORT G_M35244_IG16
+ jne SHORT G_M35244_IG19
;; size=5 bbWeight=1.86 PerfScore 2.32
G_M35244_IG12: ; bbWeight=1.19, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
- mov rdi, r15
- ; gcrRegs +[rdi]
- test rdi, rdi
- je SHORT G_M35244_IG21
+ mov r13, r15
+ ; gcrRegs +[r13]
+ test r13, r13
+ je SHORT G_M35244_IG15
;; size=8 bbWeight=1.19 PerfScore 1.78
-G_M35244_IG13: ; bbWeight=0.59, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
- mov rax, 0xD1FFAB1E ; <unknown class>
- cmp qword ptr [rdi], rax
- je SHORT G_M35244_IG21
- ;; size=15 bbWeight=0.59 PerfScore 2.53
-G_M35244_IG14: ; bbWeight=7.14, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdi]
- jmp SHORT G_M35244_IG20
- ;; size=2 bbWeight=7.14 PerfScore 14.29
-G_M35244_IG15: ; bbWeight=0.56, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rax]
- mov r14d, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG08
- ;; size=6 bbWeight=0.56 PerfScore 2.23
-G_M35244_IG16: ; bbWeight=0.67, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax r15] +[r13]
- mov r12, r13
- ; gcrRegs +[r12]
- ;; size=3 bbWeight=0.67 PerfScore 0.17
-G_M35244_IG17: ; bbWeight=1.86, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
+G_M35244_IG13: ; bbWeight=0.59, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+ mov rdi, 0xD1FFAB1E ; <unknown class>
+ cmp qword ptr [r13], rdi
+ je SHORT G_M35244_IG15
+ ;; size=16 bbWeight=0.59 PerfScore 2.53
+G_M35244_IG14: ; bbWeight=0.30, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
- movzx r13, byte ptr [r12+0x2E]
- cmp r13d, 24
- je G_M35244_IG36
- lea edi, [r13-0x1A]
- cmp edi, 1
- jbe G_M35244_IG36
- ;; size=29 bbWeight=1.86 PerfScore 9.29
-G_M35244_IG18: ; bbWeight=1.71, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
- add r13d, -33
- cmp r13d, 1
- jbe G_M35244_IG36
- ;; size=14 bbWeight=1.71 PerfScore 2.57
-G_M35244_IG19: ; bbWeight=1.86, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
- mov rbx, r12
- ; gcrRegs +[rbx]
- jmp G_M35244_IG03
- ;; size=8 bbWeight=1.86 PerfScore 4.18
-G_M35244_IG20: ; bbWeight=0.30, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r12] +[r15]
mov rsi, r15
; gcrRegs +[rsi]
- mov rdi, rax
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rsi r15] +[rax]
; gcr arg pop 0
- mov rdi, rax
- ; gcrRegs +[rdi]
- ;; size=14 bbWeight=0.30 PerfScore 0.52
-G_M35244_IG21: ; bbWeight=1.19, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+ mov r13, rax
+ ; gcrRegs +[r13]
+ ;; size=11 bbWeight=0.30 PerfScore 0.45
+G_M35244_IG15: ; bbWeight=1.19, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- cmp r14d, dword ptr [rdi+0x10]
- jae G_M35244_IG49
- mov rdi, gword ptr [rdi+0x08]
+ cmp r14d, dword ptr [r13+0x10]
+ jae G_M35244_IG47
+ mov rdi, gword ptr [r13+0x08]
+ ; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae G_M35244_IG50
+ jae G_M35244_IG48
mov eax, r14d
- mov r12, gword ptr [rdi+8*rax+0x10]
- ; gcrRegs +[r12]
- jmp SHORT G_M35244_IG17
- ;; size=34 bbWeight=1.19 PerfScore 16.94
-G_M35244_IG22: ; bbWeight=1.14, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rdi r12]
- add rsp, 8
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=15 bbWeight=1.14 PerfScore 4.86
-G_M35244_IG23: ; bbWeight=0.37, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx r15]
+ mov r15, gword ptr [rdi+8*rax+0x10]
+ ; gcrRegs +[r15]
+ ;; size=32 bbWeight=1.19 PerfScore 14.56
+G_M35244_IG16: ; bbWeight=1.86, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rdi r13]
+ movzx rdi, byte ptr [r15+0x2E]
+ cmp edi, 24
+ je G_M35244_IG34
+ lea eax, [rdi-0x1A]
+ cmp eax, 1
+ jbe G_M35244_IG34
+ ;; size=26 bbWeight=1.86 PerfScore 9.29
+G_M35244_IG17: ; bbWeight=1.71, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ add edi, -33
+ cmp edi, 1
+ jbe G_M35244_IG34
+ ;; size=12 bbWeight=1.71 PerfScore 2.57
+G_M35244_IG18: ; bbWeight=1.86, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbx]
+ mov rbx, r15
+ ; gcrRegs +[rbx]
...
-16 (-1.84%) : 637481.dasm - System.Collections.Concurrent.ConcurrentQueue`1+d__26[byte]:MoveNext():ubyte:this (Tier1)
@@ -94,16 +94,16 @@ G_M19889_IG05: ; bbWeight=0.95, gcrefRegs=4008 {rbx r14}, byrefRegs=0000
mov rax, gword ptr [r14+0x08]
; gcrRegs +[rax]
cmp r13d, dword ptr [rax+0x08]
- jae G_M19889_IG29
+ jae G_M19889_IG28
mov eax, dword ptr [rax+8*r15+0x10]
; gcrRegs -[rax]
and eax, dword ptr [r14+0x18]
cmp eax, r12d
- jne G_M19889_IG37
+ jne G_M19889_IG36
mov rax, gword ptr [r14+0x08]
; gcrRegs +[rax]
cmp r13d, dword ptr [rax+0x08]
- jae G_M19889_IG29
+ jae G_M19889_IG28
movsx rax, byte ptr [rax+8*r15+0x14]
; gcrRegs -[rax]
mov byte ptr [rbx+0x38], al
@@ -126,7 +126,7 @@ G_M19889_IG07: ; bbWeight=1.00, epilog, nogc, extend
G_M19889_IG08: ; bbWeight=0.05, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
cmp r15d, 5
- ja G_M19889_IG27
+ ja G_M19889_IG24
mov edi, r15d
lea rax, [reloc @RWD00]
mov eax, dword ptr [rax+4*rdi]
@@ -171,7 +171,7 @@ G_M19889_IG12: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
G_M19889_IG13: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rbx+0x30]
cmp edi, dword ptr [rbx+0x2C]
- jl G_M19889_IG30
+ jl G_M19889_IG29
;; size=12 bbWeight=0.00 PerfScore 0.01
G_M19889_IG14: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, gword ptr [rbx+0x08]
@@ -179,7 +179,7 @@ G_M19889_IG14: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
mov r13, gword ptr [rbx+0x10]
; gcrRegs +[r13]
cmp rdi, r13
- je G_M19889_IG27
+ je G_M19889_IG24
mov r12, gword ptr [rdi+0x10]
; gcrRegs +[r12]
lea rdi, bword ptr [rbx+0x18]
@@ -257,7 +257,7 @@ G_M19889_IG20: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
cmp r15, gword ptr [rbx+0x10]
jne G_M19889_IG15
;; size=30 bbWeight=0.00 PerfScore 0.04
-G_M19889_IG21: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG21: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r15]
xor rdi, rdi
; gcrRegs +[rdi]
@@ -275,8 +275,8 @@ G_M19889_IG21: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
xor esi, esi
mov dword ptr [rbx+0x30], esi
cmp dword ptr [rbx+0x30], edi
- jge G_M19889_IG27
- ;; size=41 bbWeight=0.00 PerfScore 0.02
+ jge SHORT G_M19889_IG24
+ ;; size=37 bbWeight=0.00 PerfScore 0.02
G_M19889_IG22: ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, gword ptr [rbx+0x10]
; gcrRegs +[rdi]
@@ -298,9 +298,19 @@ G_M19889_IG23: ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
;; size=20 bbWeight=0.01 PerfScore 0.11
G_M19889_IG24: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
- jmp G_M19889_IG27
- ;; size=5 bbWeight=0.00 PerfScore 0.00
-G_M19889_IG25: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ xor eax, eax
+ ;; size=2 bbWeight=0.00 PerfScore 0.00
+G_M19889_IG25: ; bbWeight=0.00, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=15 bbWeight=0.00 PerfScore 0.00
+G_M19889_IG26: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx]
mov dword ptr [rbx+0x20], -1
mov rdi, gword ptr [rbx+0x08]
@@ -330,10 +340,10 @@ G_M19889_IG25: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
cmp rdi, gword ptr [rbx+0x10]
- je G_M19889_IG32
+ je SHORT G_M19889_IG31
mov r14d, dword ptr [rdi+0xA0]
- ;; size=88 bbWeight=0.00 PerfScore 0.04
-G_M19889_IG26: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=84 bbWeight=0.00 PerfScore 0.04
+G_M19889_IG27: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
@@ -353,28 +363,15 @@ G_M19889_IG26: ; bbWeight=0.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
and edi, r14d
mov dword ptr [rbx+0x2C], edi
cmp eax, edi
- jl SHORT G_M19889_IG33
+ jl SHORT G_M19889_IG32
jmp G_M19889_IG09
;; size=56 bbWeight=0.00 PerfScore 0.02
-G_M19889_IG27: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M19889_IG28: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx r13]
- xor eax, eax
- ;; size=2 bbWeight=0.00 PerfScore 0.00
-G_M19889_IG28: ; bbWeight=0.00, epilog, nogc, extend
- add rsp, 8
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=15 bbWeight=0.00 PerfScore 0.00
-G_M19889_IG29: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M19889_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx]
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
@@ -386,22 +383,22 @@ G_M19889_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov dword ptr [rbx+0x20], 3
jmp G_M19889_IG06
;; size=28 bbWeight=0 PerfScore 0.00
-G_M19889_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov dword ptr [rbx+0x20], -1
mov ecx, dword ptr [rbx+0x30]
inc ecx
mov dword ptr [rbx+0x30], ecx
jmp G_M19889_IG13
;; size=20 bbWeight=0 PerfScore 0.00
-G_M19889_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov r14d, dword ptr [rbx+0x24]
- jmp G_M19889_IG26
- ;; size=9 bbWeight=0 PerfScore 0.00
-G_M19889_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M19889_IG27
+ ;; size=6 bbWeight=0 PerfScore 0.00
+G_M19889_IG32: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov dword ptr [rbx+0x30], eax
- jmp SHORT G_M19889_IG36
+ jmp SHORT G_M19889_IG35
;; size=5 bbWeight=0 PerfScore 0.00
-G_M19889_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov esi, dword ptr [rbx+0x30]
@@ -412,19 +409,19 @@ G_M19889_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov dword ptr [rbx+0x20], 1
jmp G_M19889_IG06
;; size=28 bbWeight=0 PerfScore 0.00
-G_M19889_IG35: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M19889_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov dword ptr [rbx+0x20], -1
mov ecx, dword ptr [rbx+0x30]
inc ecx
mov dword ptr [rbx+0x30], ecx
;; size=15 bbWeight=0 PerfScore 0.00
-G_M19889_IG36: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M19889_IG35: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rbx+0x30]
cmp edi, dword ptr [rbx+0x2C]
- jl SHORT G_M19889_IG34
+ jl SHORT G_M19889_IG33
jmp G_M19889_IG14
;; size=13 bbWeight=0 PerfScore 0.00
-G_M19889_IG37: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+G_M19889_IG36: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
; gcrRegs +[r14]
lea rdi, [rbp-0x30]
mov esi, 20
@@ -432,15 +429,15 @@ G_M19889_IG37: ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M19889_IG05
;; size=20 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M19889_IG25 - G_M19889_IG02
- dd G_M19889_IG35 - G_M19889_IG02
+RWD00 dd G_M19889_IG26 - G_M19889_IG02
+ dd G_M19889_IG34 - G_M19889_IG02
dd G_M19889_IG11 - G_M19889_IG02
- dd G_M19889_IG31 - G_M19889_IG02
+ dd G_M19889_IG30 - G_M19889_IG02
dd G_M19889_IG03 - G_M19889_IG02
dd G_M19889_IG23 - G_M19889_IG02
-; Total bytes of code 868, prolog size 19, PerfScore 61.55, instruction count 222, allocated bytes for code 868 (MethodHash=a906b24e) for method System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[byte]:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 852, prolog size 19, PerfScore 61.54, instruction count 221, allocated bytes for code 852 (MethodHash=a906b24e) for method System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[byte]:MoveNext():ubyte:this (Tier1)
; ============================================================
Unwind Info:
-31 (-1.57%) : 465905.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
@@ -101,23 +101,23 @@ G_M38617_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=39 bbWeight=1 PerfScore 10.50
G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
test rbx, rbx
- je G_M38617_IG18
+ je G_M38617_IG36
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+SequenceType
cmp qword ptr [r15], rdi
- jne G_M38617_IG20
+ jne G_M38617_IG38
mov rdi, gword ptr [r15+0x10]
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+ItemType
cmp qword ptr [rdi], rax
- jne G_M38617_IG19
+ jne G_M38617_IG37
mov r14d, dword ptr [rdi+0x0C]
;; size=55 bbWeight=1 PerfScore 13.75
G_M38617_IG03: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
cmp r14d, 2
- jg G_M38617_IG22
+ jg G_M38617_IG12
cmp r14d, 1
- jne G_M38617_IG21
+ jne G_M38617_IG11
mov rdi, rbx
; gcrRegs +[rdi]
call <unknown method>
@@ -132,7 +132,7 @@ G_M38617_IG03: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
; gcr arg pop 0
mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+ItemType
cmp qword ptr [rax], rdi
- jne G_M38617_IG15
+ jne G_M38617_IG10
;; size=59 bbWeight=1 PerfScore 11.50
G_M38617_IG04: ; bbWeight=0.93, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, byref
mov r12d, dword ptr [rax+0x0C]
@@ -140,18 +140,18 @@ G_M38617_IG04: ; bbWeight=0.93, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0
G_M38617_IG05: ; bbWeight=1, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r12d, 1
- je G_M38617_IG36
+ je G_M38617_IG33
cmp r12d, 2
- je G_M38617_IG35
+ je G_M38617_IG32
add r12d, -12
- jne G_M38617_IG30
+ jne G_M38617_IG27
;; size=30 bbWeight=1 PerfScore 3.75
G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V00}
mov rdi, 0xD1FFAB1E
; gcrRegs +[rdi]
cmp r13, rdi
- je G_M38617_IG33
+ je G_M38617_IG30
mov rdi, 0xD1FFAB1E ; System.Xml.Schema.XmlAtomicValue
; gcrRegs -[rdi]
call CORINFO_HELP_NEWSFAST
@@ -212,7 +212,7 @@ G_M38617_IG06: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=2008 {
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
cmp esi, dword ptr [rdi+0x08]
- jge G_M38617_IG34
+ jge G_M38617_IG31
;; size=182 bbWeight=1 PerfScore 30.50
G_M38617_IG07: ; bbWeight=1, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
@@ -227,81 +227,22 @@ G_M38617_IG07: ; bbWeight=1, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {},
call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[rdx rdi r13]
; gcr arg pop 0
- jmp G_M38617_IG16
- ;; size=29 bbWeight=1 PerfScore 9.00
-G_M38617_IG08: ; bbWeight=0, gcVars=0000000000140100 {V00 V06 V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rbx]
- ; GC ptr vars +{V00 V06 V08 V09 V18 V20}
- jmp SHORT G_M38617_IG10
- ;; size=2 bbWeight=0 PerfScore 0.00
-G_M38617_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, gword ptr [rbp-0x40]
- ; gcrRegs +[rdi]
- mov r11, 0xD1FFAB1E ; code for <unknown method>
- call [r11]<unknown method>
- ; gcrRegs -[rdi] +[rax]
- ; gcr arg pop 0
- mov rdi, rax
- ; gcrRegs +[rdi]
- call [System.Xml.Xsl.Runtime.XmlQueryRuntime:EnsureNavigator(System.Object):System.Xml.XPath.XPathNavigator]
- ; gcrRegs -[rdi]
- ; gcr arg pop 0
- mov rsi, rax
- ; gcrRegs +[rsi]
- mov rdi, gword ptr [rbp-0x38]
- ; gcrRegs +[rdi]
- call [System.Xml.Xsl.Runtime.XmlQuerySequence`1[System.__Canon]:Add(System.__Canon):this]
- ; gcrRegs -[rax rsi rdi]
- ; gcr arg pop 0
- ;; size=39 bbWeight=0 PerfScore 0.00
-G_M38617_IG10: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x40]
- ; gcrRegs +[rdi]
- mov r11, 0xD1FFAB1E ; code for <unknown method>
- call [r11]<unknown method>
- ; gcrRegs -[rdi]
- ; gcr arg pop 0
- test eax, eax
- jne SHORT G_M38617_IG09
- ;; size=21 bbWeight=0 PerfScore 0.00
-G_M38617_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, rsp
- call G_M38617_IG39
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M38617_IG12: ; bbWeight=0, nogc, extend
- nop
- ;; size=1 bbWeight=0 PerfScore 0.00
-G_M38617_IG13: ; bbWeight=0, gcVars=0000000000040100 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars -{V08 V09 V18 V20}
- mov rdi, gword ptr [rbp-0x38]
- ; gcrRegs +[rdi]
- mov rbx, rdi
- ; gcrRegs +[rbx]
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M38617_IG14: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rdi]
- ; GC ptr vars -{V06}
- mov rsi, rbx
- ; gcrRegs +[rsi]
- mov rdi, 0xD1FFAB1E ; System.Xml.Xsl.Runtime.XmlQueryNodeSequence
- call CORINFO_HELP_CHKCASTCLASS
- ; gcrRegs -[rbx rsi] +[rax]
- ; gcr arg pop 0
- mov rdi, rax
- ; gcrRegs +[rdi]
- mov rax, gword ptr [rbp-0x30]
- mov rsi, gword ptr [rax+0x68]
- ; gcrRegs +[rsi]
- cmp dword ptr [rdi], edi
- ; GC ptr vars -{V00}
- call [System.Xml.Xsl.Runtime.XmlQueryNodeSequence:DocOrderDistinct(System.Collections.Generic.IComparer`1[System.Xml.XPath.XPathNavigator]):System.Xml.Xsl.Runtime.XmlQueryNodeSequence:this]
- ; gcrRegs -[rsi rdi]
- ; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- jmp SHORT G_M38617_IG16
- ;; size=42 bbWeight=0 PerfScore 0.00
-G_M38617_IG15: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=24 bbWeight=1 PerfScore 7.00
+G_M38617_IG08: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ mov rax, rbx
+ ; gcrRegs +[rax]
+ ;; size=3 bbWeight=1 PerfScore 0.25
+G_M38617_IG09: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=15 bbWeight=1 PerfScore 4.25
+G_M38617_IG10: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=2009 {rax rbx r13}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r13]
; GC ptr vars +{V00 V08}
mov rdi, rax
@@ -315,108 +256,34 @@ G_M38617_IG15: ; bbWeight=0.07, gcVars=0000000000000100 {V00}, gcrefRegs=
mov r12d, eax
jmp G_M38617_IG05
;; size=21 bbWeight=0.07 PerfScore 0.66
-G_M38617_IG16: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[r13]
- ; GC ptr vars -{V00 V08}
- mov rax, rbx
- ; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 0.25
-G_M38617_IG17: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=15 bbWeight=1 PerfScore 4.25
-G_M38617_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rbx]
- call [<unknown method>]
- ; gcrRegs +[rax]
- ; gcr arg pop 0
- mov r14, rax
- ; gcrRegs +[r14]
- mov rdi, 0xD1FFAB1E ; <unknown class>
- mov esi, 1
- call CORINFO_HELP_NEWARR_1_OBJ
- ; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- mov rdi, 0xD1FFAB1E
- ; gcrRegs +[rdi]
- mov gword ptr [rbx+0x10], rdi
- mov rdi, 0xD1FFAB1E ; <unknown class>
- ; gcrRegs -[rdi]
- call CORINFO_HELP_NEWSFAST
- ; gcr arg pop 0
- mov r12, rax
- ; gcrRegs +[r12]
- mov rdi, r12
- ; gcrRegs +[rdi]
- mov rsi, r14
- ; gcrRegs +[rsi]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [<unknown method>]
- ; gcrRegs -[rax rdx rbx rsi rdi r14]
- ; gcr arg pop 0
- mov rdi, r12
- ; gcrRegs +[rdi]
- call CORINFO_HELP_THROW
- ; gcrRegs -[rdi r12]
- ; gcr arg pop 0
- ;; size=87 bbWeight=0 PerfScore 0.00
-G_M38617_IG19: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rdi r15]
- ; GC ptr vars +{V00 V08}
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x60]
- call [rax+0x38]<unknown method>
- ; gcrRegs -[rdi]
- ; gcr arg pop 0
- mov r14d, eax
- jmp G_M38617_IG03
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M38617_IG20: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
- mov rdi, r15
- ; gcrRegs +[rdi]
- mov rax, qword ptr [r15]
- mov rax, qword ptr [rax+0x60]
- call [rax+0x38]<unknown method>
- ; gcrRegs -[rdi]
- ; gcr arg pop 0
- mov r14d, eax
- jmp G_M38617_IG03
- ;; size=21 bbWeight=0 PerfScore 0.00
-G_M38617_IG21: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M38617_IG11: ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r13] +[r15]
...
+5 (+0.58%) : 542155.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -74,48 +74,36 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rdi
; gcrRegs +[rbx]
;; size=19 bbWeight=1 PerfScore 7.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je SHORT G_M35244_IG03
+ je G_M35244_IG56
test dword ptr [rbx+0x28], 0x440
- je SHORT G_M35244_IG04
- ;; size=18 bbWeight=1 PerfScore 6.25
-G_M35244_IG03: ; bbWeight=1.23, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx]
- add rsp, 8
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=15 bbWeight=1.23 PerfScore 5.23
-G_M35244_IG04: ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx]
+ jne G_M35244_IG56
+ ;; size=26 bbWeight=1 PerfScore 6.25
+G_M35244_IG03: ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea edi, [rax-0x03]
cmp edi, 5
- jbe G_M35244_IG42
+ jbe G_M35244_IG41
;; size=16 bbWeight=4 PerfScore 15.00
-G_M35244_IG05: ; bbWeight=3.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=3.40, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG03
+ ja G_M35244_IG56
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
lea rax, G_M35244_IG02
add rdi, rax
jmp rdi
- ;; size=32 bbWeight=3.40 PerfScore 25.50
-G_M35244_IG06: ; bbWeight=0.07, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+ ;; size=36 bbWeight=3.40 PerfScore 25.50
+G_M35244_IG05: ; bbWeight=0.07, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r14-r15]
mov r13d, 1
;; size=6 bbWeight=0.07 PerfScore 0.02
-G_M35244_IG07: ; bbWeight=0.20, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=0.20, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
dec r13d
lea rdi, bword ptr [r14+0x18]
; byrRegs +[rdi]
@@ -141,13 +129,13 @@ G_M35244_IG07: ; bbWeight=0.20, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
test rdi, rdi
- jne SHORT G_M35244_IG10
+ jne SHORT G_M35244_IG09
;; size=48 bbWeight=0.20 PerfScore 2.10
-G_M35244_IG08: ; bbWeight=0.20, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=0.20, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
test rdi, rdi
- je G_M35244_IG27
+ je G_M35244_IG26
;; size=9 bbWeight=0.20 PerfScore 0.25
-G_M35244_IG09: ; bbWeight=3.20, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=3.20, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
lea rdi, bword ptr [rbx+0x08]
; byrRegs +[rdi]
@@ -156,28 +144,28 @@ G_M35244_IG09: ; bbWeight=3.20, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rbx rsi r14]
; byrRegs -[rdi]
- jmp G_M35244_IG41
+ jmp G_M35244_IG40
;; size=17 bbWeight=3.20 PerfScore 12.00
-G_M35244_IG10: ; bbWeight=0.10, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=0.10, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi r14]
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rdi], rsi
- je SHORT G_M35244_IG08
+ je SHORT G_M35244_IG07
;; size=15 bbWeight=0.10 PerfScore 0.43
-G_M35244_IG11: ; bbWeight=0.05, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.05, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
xor rdi, rdi
; gcrRegs +[rdi]
- jmp SHORT G_M35244_IG08
+ jmp SHORT G_M35244_IG07
;; size=4 bbWeight=0.05 PerfScore 0.11
-G_M35244_IG12: ; bbWeight=2.60, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=2.60, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi r14-r15]
mov r15, gword ptr [rbx+0x08]
; gcrRegs +[r15]
test r15, r15
- je G_M35244_IG29
+ je G_M35244_IG28
;; size=13 bbWeight=2.60 PerfScore 8.45
-G_M35244_IG13: ; bbWeight=1.83, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=1.83, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, r15
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
@@ -185,80 +173,80 @@ G_M35244_IG13: ; bbWeight=1.83, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG14
;; size=23 bbWeight=1.83 PerfScore 5.02
-G_M35244_IG14: ; bbWeight=0.89, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.89, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
mov r14d, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=6 bbWeight=0.89 PerfScore 3.54
-G_M35244_IG15: ; bbWeight=0.94, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=0.94, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov r14d, 1
;; size=6 bbWeight=0.94 PerfScore 0.24
-G_M35244_IG16: ; bbWeight=2.60, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2.60, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
dec r14d
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG19
+ je SHORT G_M35244_IG18
;; size=11 bbWeight=2.60 PerfScore 4.55
-G_M35244_IG17: ; bbWeight=1.30, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=1.30, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [r13], rsi
- je SHORT G_M35244_IG19
+ je SHORT G_M35244_IG18
;; size=16 bbWeight=1.30 PerfScore 5.53
-G_M35244_IG18: ; bbWeight=0.65, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG17: ; bbWeight=0.65, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
xor r13, r13
; gcrRegs +[r13]
;; size=3 bbWeight=0.65 PerfScore 0.16
-G_M35244_IG19: ; bbWeight=2.60, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG18: ; bbWeight=2.60, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
test r13, r13
- jne G_M35244_IG32
+ jne G_M35244_IG31
;; size=9 bbWeight=2.60 PerfScore 3.25
-G_M35244_IG20: ; bbWeight=1.54, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=1.54, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG22
+ je SHORT G_M35244_IG21
;; size=8 bbWeight=1.54 PerfScore 2.31
-G_M35244_IG21: ; bbWeight=0.77, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=0.77, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [r13], rdi
- jne SHORT G_M35244_IG26
+ jne SHORT G_M35244_IG25
;; size=16 bbWeight=0.77 PerfScore 3.27
-G_M35244_IG22: ; bbWeight=1.54, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=1.54, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG55
+ jae G_M35244_IG54
mov rdi, gword ptr [r13+0x08]
; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae G_M35244_IG56
+ jae G_M35244_IG55
mov eax, r14d
mov r15, gword ptr [rdi+8*rax+0x10]
; gcrRegs +[r15]
;; size=32 bbWeight=1.54 PerfScore 18.87
-G_M35244_IG23: ; bbWeight=2.60, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=2.60, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi r13]
movzx rdi, byte ptr [r15+0x2E]
cmp edi, 24
- je SHORT G_M35244_IG34
+ je SHORT G_M35244_IG33
lea eax, [rdi-0x1A]
cmp eax, 1
- jbe SHORT G_M35244_IG34
+ jbe SHORT G_M35244_IG33
;; size=18 bbWeight=2.60 PerfScore 13.00
-G_M35244_IG24: ; bbWeight=2.40, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=2.40, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
add edi, -33
cmp edi, 1
- jbe SHORT G_M35244_IG34
+ jbe SHORT G_M35244_IG33
;; size=8 bbWeight=2.40 PerfScore 3.60
-G_M35244_IG25: ; bbWeight=2.60, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=2.60, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
- jmp G_M35244_IG41
+ jmp G_M35244_IG40
;; size=5 bbWeight=2.60 PerfScore 5.20
-G_M35244_IG26: ; bbWeight=0.39, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG25: ; bbWeight=0.39, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx]
mov rsi, r15
; gcrRegs +[rsi]
@@ -267,61 +255,61 @@ G_M35244_IG26: ; bbWeight=0.39, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcr arg pop 0
mov r13, rax
; gcrRegs +[r13]
- jmp SHORT G_M35244_IG22
+ jmp SHORT G_M35244_IG21
;; size=13 bbWeight=0.39 PerfScore 1.35
-G_M35244_IG27: ; bbWeight=0.20, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0.20, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r13] +[r14-r15]
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
mov r12, rsi
; gcrRegs +[r12]
test r12, r12
- je G_M35244_IG38
+ je G_M35244_IG37
;; size=16 bbWeight=0.20 PerfScore 0.70
-G_M35244_IG28: ; bbWeight=0.10, gcrefRegs=D040 {rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0.10, gcrefRegs=D040 {rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx]
- jmp SHORT G_M35244_IG30
+ jmp SHORT G_M35244_IG29
;; size=2 bbWeight=0.10 PerfScore 0.20
-G_M35244_IG29: ; bbWeight=0.77, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; bbWeight=0.77, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi r12 r14] +[rbx]
xor r14d, r14d
...
+5 (+0.59%) : 153396.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -72,46 +72,36 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rdi
; gcrRegs +[rbx]
;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je SHORT G_M35244_IG03
+ je G_M35244_IG54
test dword ptr [rbx+0x28], 0x440
- je SHORT G_M35244_IG04
- ;; size=18 bbWeight=1 PerfScore 6.25
-G_M35244_IG03: ; bbWeight=1.34, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx]
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=9 bbWeight=1.34 PerfScore 4.68
-G_M35244_IG04: ; bbWeight=3.83, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx]
+ jne G_M35244_IG54
+ ;; size=26 bbWeight=1 PerfScore 6.25
+G_M35244_IG03: ; bbWeight=3.83, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea edi, [rax-0x03]
cmp edi, 5
- jbe G_M35244_IG43
+ jbe G_M35244_IG42
;; size=16 bbWeight=3.83 PerfScore 14.38
-G_M35244_IG05: ; bbWeight=3.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=3.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG03
+ ja G_M35244_IG54
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
lea rax, G_M35244_IG02
add rdi, rax
jmp rdi
- ;; size=32 bbWeight=3.50 PerfScore 26.25
-G_M35244_IG06: ; bbWeight=0.05, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+ ;; size=36 bbWeight=3.50 PerfScore 26.25
+G_M35244_IG05: ; bbWeight=0.05, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r14-r15]
mov r13d, 1
;; size=6 bbWeight=0.05 PerfScore 0.01
-G_M35244_IG07: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
dec r13d
lea rdi, bword ptr [r14+0x18]
; byrRegs +[rdi]
@@ -137,13 +127,13 @@ G_M35244_IG07: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
test rdi, rdi
- jne SHORT G_M35244_IG10
+ jne SHORT G_M35244_IG09
;; size=48 bbWeight=0.17 PerfScore 1.75
-G_M35244_IG08: ; bbWeight=0.17, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=0.17, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
test rdi, rdi
- je G_M35244_IG28
+ je G_M35244_IG27
;; size=9 bbWeight=0.17 PerfScore 0.21
-G_M35244_IG09: ; bbWeight=2.67, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=2.67, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
lea rdi, bword ptr [rbx+0x08]
; byrRegs +[rdi]
@@ -152,58 +142,58 @@ G_M35244_IG09: ; bbWeight=2.67, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rbx rsi r14]
; byrRegs -[rdi]
- jmp G_M35244_IG30
+ jmp G_M35244_IG29
;; size=17 bbWeight=2.67 PerfScore 10.00
-G_M35244_IG10: ; bbWeight=0.08, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=0.08, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi r14]
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rdi], rsi
- je SHORT G_M35244_IG08
+ je SHORT G_M35244_IG07
;; size=15 bbWeight=0.08 PerfScore 0.35
-G_M35244_IG11: ; bbWeight=0.04, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.04, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
xor rdi, rdi
; gcrRegs +[rdi]
- jmp SHORT G_M35244_IG08
+ jmp SHORT G_M35244_IG07
;; size=4 bbWeight=0.04 PerfScore 0.09
-G_M35244_IG12: ; bbWeight=0.79, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.79, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi r14]
mov r14d, 1
;; size=6 bbWeight=0.79 PerfScore 0.20
-G_M35244_IG13: ; bbWeight=2.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
dec r14d
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG16
+ je SHORT G_M35244_IG15
;; size=11 bbWeight=2.50 PerfScore 4.38
-G_M35244_IG14: ; bbWeight=1.25, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.25, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [r13], rsi
- je SHORT G_M35244_IG16
+ je SHORT G_M35244_IG15
;; size=16 bbWeight=1.25 PerfScore 5.31
-G_M35244_IG15: ; bbWeight=0.62, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=0.62, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
xor r13, r13
; gcrRegs +[r13]
;; size=3 bbWeight=0.62 PerfScore 0.16
-G_M35244_IG16: ; bbWeight=2.50, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=2.50, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
test r13, r13
- jne G_M35244_IG38
+ jne G_M35244_IG37
;; size=9 bbWeight=2.50 PerfScore 3.12
-G_M35244_IG17: ; bbWeight=1.65, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=1.65, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG20
+ je SHORT G_M35244_IG19
;; size=8 bbWeight=1.65 PerfScore 2.47
-G_M35244_IG18: ; bbWeight=0.82, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG17: ; bbWeight=0.82, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [r13], rdi
- je SHORT G_M35244_IG20
+ je SHORT G_M35244_IG19
;; size=16 bbWeight=0.82 PerfScore 3.50
-G_M35244_IG19: ; bbWeight=0.41, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG18: ; bbWeight=0.41, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov rsi, r15
; gcrRegs +[rsi]
@@ -213,41 +203,41 @@ G_M35244_IG19: ; bbWeight=0.41, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
mov r13, rax
; gcrRegs +[r13]
;; size=11 bbWeight=0.41 PerfScore 0.62
-G_M35244_IG20: ; bbWeight=1.65, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=1.65, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG53
+ jae G_M35244_IG52
mov rdi, gword ptr [r13+0x08]
; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae G_M35244_IG54
+ jae G_M35244_IG53
mov eax, r14d
mov r15, gword ptr [rdi+8*rax+0x10]
; gcrRegs +[r15]
;; size=32 bbWeight=1.65 PerfScore 20.20
-G_M35244_IG21: ; bbWeight=2.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=2.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi r13]
movzx rdi, byte ptr [r15+0x2E]
cmp edi, 24
- je SHORT G_M35244_IG23
+ je SHORT G_M35244_IG22
lea eax, [rdi-0x1A]
cmp eax, 1
- jbe SHORT G_M35244_IG23
+ jbe SHORT G_M35244_IG22
;; size=18 bbWeight=2.50 PerfScore 12.50
-G_M35244_IG22: ; bbWeight=2.33, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=2.33, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
add edi, -33
cmp edi, 1
- ja G_M35244_IG30
+ ja G_M35244_IG29
;; size=12 bbWeight=2.33 PerfScore 3.50
-G_M35244_IG23: ; bbWeight=0.17, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.17, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rdi, gword ptr [rbx+0x18]
; gcrRegs +[rdi]
test rdi, rdi
- je SHORT G_M35244_IG24
+ je SHORT G_M35244_IG23
cmp byte ptr [rdi+0x2E], 32
- je G_M35244_IG30
+ je G_M35244_IG29
;; size=19 bbWeight=0.17 PerfScore 1.21
-G_M35244_IG24: ; bbWeight=0.17, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=0.17, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -266,9 +256,9 @@ G_M35244_IG24: ; bbWeight=0.17, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs -[rax rsi rdi]
; gcr arg pop 0
cmp gword ptr [rbx+0x08], 0
- je SHORT G_M35244_IG27
+ je SHORT G_M35244_IG26
;; size=50 bbWeight=0.17 PerfScore 2.17
-G_M35244_IG25: ; bbWeight=0.11, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0.11, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
@@ -276,27 +266,27 @@ G_M35244_IG25: ; bbWeight=0.11, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- je G_M35244_IG06
+ je G_M35244_IG05
;; size=28 bbWeight=0.11 PerfScore 0.48
-G_M35244_IG26: ; bbWeight=0.05, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref
- jmp G_M35244_IG41
+G_M35244_IG25: ; bbWeight=0.05, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref
+ jmp G_M35244_IG40
;; size=5 bbWeight=0.05 PerfScore 0.11
-G_M35244_IG27: ; bbWeight=0.06, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0.06, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
xor r13d, r13d
- jmp G_M35244_IG07
+ jmp G_M35244_IG06
;; size=8 bbWeight=0.06 PerfScore 0.13
-G_M35244_IG28: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
mov rbx, rsi
test rbx, rbx
- jne SHORT G_M35244_IG33
+ jne SHORT G_M35244_IG32
;; size=12 bbWeight=0.17 PerfScore 0.58
-G_M35244_IG29: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
...
+5 (+0.60%) : 112815.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -72,46 +72,36 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rdi
; gcrRegs +[rbx]
;; size=16 bbWeight=1 PerfScore 5.75
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je SHORT G_M35244_IG03
+ je G_M35244_IG55
test dword ptr [rbx+0x28], 0x440
- je SHORT G_M35244_IG04
- ;; size=18 bbWeight=1 PerfScore 6.25
-G_M35244_IG03: ; bbWeight=1.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx]
- pop rbx
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=9 bbWeight=1.28 PerfScore 4.49
-G_M35244_IG04: ; bbWeight=3.67, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx]
+ jne G_M35244_IG55
+ ;; size=26 bbWeight=1 PerfScore 6.25
+G_M35244_IG03: ; bbWeight=3.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea edi, [rax-0x03]
cmp edi, 5
- jbe G_M35244_IG46
+ jbe G_M35244_IG45
;; size=16 bbWeight=3.67 PerfScore 13.75
-G_M35244_IG05: ; bbWeight=3.33, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=3.33, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG03
+ ja G_M35244_IG55
mov esi, eax
lea rdi, [reloc @RWD00]
mov edi, dword ptr [rdi+4*rsi]
lea rax, G_M35244_IG02
add rdi, rax
jmp rdi
- ;; size=32 bbWeight=3.33 PerfScore 25.00
-G_M35244_IG06: ; bbWeight=0.06, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+ ;; size=36 bbWeight=3.33 PerfScore 25.00
+G_M35244_IG05: ; bbWeight=0.06, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r14-r15]
mov r13d, 1
;; size=6 bbWeight=0.06 PerfScore 0.02
-G_M35244_IG07: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG06: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
dec r13d
lea rdi, bword ptr [r14+0x18]
; byrRegs +[rdi]
@@ -137,13 +127,13 @@ G_M35244_IG07: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
test rdi, rdi
- jne SHORT G_M35244_IG10
+ jne SHORT G_M35244_IG09
;; size=48 bbWeight=0.17 PerfScore 1.75
-G_M35244_IG08: ; bbWeight=0.17, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG07: ; bbWeight=0.17, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
test rdi, rdi
- je G_M35244_IG28
+ je G_M35244_IG27
;; size=9 bbWeight=0.17 PerfScore 0.21
-G_M35244_IG09: ; bbWeight=2.67, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG08: ; bbWeight=2.67, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
lea rdi, bword ptr [rbx+0x08]
; byrRegs +[rdi]
@@ -152,28 +142,28 @@ G_M35244_IG09: ; bbWeight=2.67, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rbx rsi r14]
; byrRegs -[rdi]
- jmp G_M35244_IG40
+ jmp G_M35244_IG39
;; size=17 bbWeight=2.67 PerfScore 10.00
-G_M35244_IG10: ; bbWeight=0.08, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=0.08, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi r14]
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rdi], rsi
- je SHORT G_M35244_IG08
+ je SHORT G_M35244_IG07
;; size=15 bbWeight=0.08 PerfScore 0.35
-G_M35244_IG11: ; bbWeight=0.04, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.04, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
xor rdi, rdi
; gcrRegs +[rdi]
- jmp SHORT G_M35244_IG08
+ jmp SHORT G_M35244_IG07
;; size=4 bbWeight=0.04 PerfScore 0.09
-G_M35244_IG12: ; bbWeight=2.33, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=2.33, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi r14-r15]
mov r15, gword ptr [rbx+0x08]
; gcrRegs +[r15]
test r15, r15
- je G_M35244_IG27
+ je G_M35244_IG26
;; size=13 bbWeight=2.33 PerfScore 7.58
-G_M35244_IG13: ; bbWeight=1.64, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=1.64, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, r15
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; <unknown class>
@@ -181,50 +171,50 @@ G_M35244_IG13: ; bbWeight=1.64, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG14
;; size=23 bbWeight=1.64 PerfScore 4.51
-G_M35244_IG14: ; bbWeight=0.79, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=0.79, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
mov r14d, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG16
+ jmp SHORT G_M35244_IG15
;; size=6 bbWeight=0.79 PerfScore 3.18
-G_M35244_IG15: ; bbWeight=0.84, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG14: ; bbWeight=0.84, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov r14d, 1
;; size=6 bbWeight=0.84 PerfScore 0.21
-G_M35244_IG16: ; bbWeight=2.33, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=2.33, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
dec r14d
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG19
+ je SHORT G_M35244_IG18
;; size=11 bbWeight=2.33 PerfScore 4.08
-G_M35244_IG17: ; bbWeight=1.17, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=1.17, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [r13], rsi
- je SHORT G_M35244_IG19
+ je SHORT G_M35244_IG18
;; size=16 bbWeight=1.17 PerfScore 4.96
-G_M35244_IG18: ; bbWeight=0.58, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG17: ; bbWeight=0.58, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
xor r13, r13
; gcrRegs +[r13]
;; size=3 bbWeight=0.58 PerfScore 0.15
-G_M35244_IG19: ; bbWeight=2.33, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG18: ; bbWeight=2.33, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
test r13, r13
- jne G_M35244_IG30
+ jne G_M35244_IG29
;; size=9 bbWeight=2.33 PerfScore 2.92
-G_M35244_IG20: ; bbWeight=1.38, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=1.38, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[r13]
mov r13, r15
; gcrRegs +[r13]
test r13, r13
- je SHORT G_M35244_IG23
+ je SHORT G_M35244_IG22
;; size=8 bbWeight=1.38 PerfScore 2.07
-G_M35244_IG21: ; bbWeight=0.69, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=0.69, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [r13], rdi
- je SHORT G_M35244_IG23
+ je SHORT G_M35244_IG22
;; size=16 bbWeight=0.69 PerfScore 2.94
-G_M35244_IG22: ; bbWeight=0.35, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.35, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov rsi, r15
; gcrRegs +[rsi]
@@ -234,78 +224,78 @@ G_M35244_IG22: ; bbWeight=0.35, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
mov r13, rax
; gcrRegs +[r13]
;; size=11 bbWeight=0.35 PerfScore 0.52
-G_M35244_IG23: ; bbWeight=1.38, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=1.38, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r14d, dword ptr [r13+0x10]
- jae G_M35244_IG54
+ jae G_M35244_IG53
mov rdi, gword ptr [r13+0x08]
; gcrRegs +[rdi]
cmp r14d, dword ptr [rdi+0x08]
- jae G_M35244_IG55
+ jae G_M35244_IG54
mov eax, r14d
mov r15, gword ptr [rdi+8*rax+0x10]
; gcrRegs +[r15]
;; size=32 bbWeight=1.38 PerfScore 16.94
-G_M35244_IG24: ; bbWeight=2.33, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=2.33, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi r13]
movzx rdi, byte ptr [r15+0x2E]
cmp edi, 24
- je SHORT G_M35244_IG33
+ je SHORT G_M35244_IG32
lea eax, [rdi-0x1A]
cmp eax, 1
- jbe SHORT G_M35244_IG33
+ jbe SHORT G_M35244_IG32
;; size=18 bbWeight=2.33 PerfScore 11.67
-G_M35244_IG25: ; bbWeight=2.17, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG24: ; bbWeight=2.17, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
add edi, -33
cmp edi, 1
- jbe SHORT G_M35244_IG33
+ jbe SHORT G_M35244_IG32
;; size=8 bbWeight=2.17 PerfScore 3.25
-G_M35244_IG26: ; bbWeight=2.33, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=2.33, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
- jmp G_M35244_IG40
+ jmp G_M35244_IG39
;; size=5 bbWeight=2.33 PerfScore 4.67
-G_M35244_IG27: ; bbWeight=0.70, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0.70, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx]
xor r14d, r14d
- jmp G_M35244_IG16
+ jmp G_M35244_IG15
;; size=8 bbWeight=0.70 PerfScore 1.56
-G_M35244_IG28: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+G_M35244_IG27: ; bbWeight=0.17, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r14]
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
mov rbx, rsi
test rbx, rbx
- je G_M35244_IG39
+ je G_M35244_IG38
;; size=16 bbWeight=0.17 PerfScore 0.58
-G_M35244_IG29: ; bbWeight=0.08, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M35244_IG31
+G_M35244_IG28: ; bbWeight=0.08, gcrefRegs=C048 {rbx rsi r14 r15}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M35244_IG30
;; size=2 bbWeight=0.08 PerfScore 0.17
-G_M35244_IG30: ; bbWeight=0.95, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0.95, gcrefRegs=2008 {rbx r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi r14-r15] +[r13]
mov r15, r13
...
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| benchmarks.run.linux.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| benchmarks.run_pgo.linux.x64.checked.mch |
12 |
7 |
4 |
1 |
-70 |
+57 |
| benchmarks.run_tiered.linux.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| coreclr_tests.run.linux.x64.checked.mch |
15 |
13 |
2 |
0 |
-67 |
+10 |
| libraries.crossgen2.linux.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries.pmi.linux.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries_tests.run.linux.x64.Release.mch |
17 |
8 |
7 |
2 |
-97 |
+33 |
| librariestestsnotieredcompilation.run.linux.x64.Release.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| realworld.run.linux.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| smoke_tests.nativeaot.linux.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
44 |
28 |
13 |
3 |
-234 |
+100 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.linux.x64.checked.mch |
31,764 |
2,052 |
29,712 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.linux.x64.checked.mch |
155,049 |
57,390 |
97,659 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_tiered.linux.x64.checked.mch |
58,135 |
43,840 |
14,295 |
0 (0.00%) |
0 (0.00%) |
| coreclr_tests.run.linux.x64.checked.mch |
608,390 |
362,472 |
245,918 |
0 (0.00%) |
0 (0.00%) |
| libraries.crossgen2.linux.x64.checked.mch |
265,301 |
15 |
265,286 |
0 (0.00%) |
0 (0.00%) |
| libraries.pmi.linux.x64.checked.mch |
298,707 |
6 |
298,701 |
0 (0.00%) |
0 (0.00%) |
| libraries_tests.run.linux.x64.Release.mch |
751,536 |
496,905 |
254,631 |
0 (0.00%) |
0 (0.00%) |
| librariestestsnotieredcompilation.run.linux.x64.Release.mch |
305,837 |
21,933 |
283,904 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.linux.x64.checked.mch |
33,245 |
45 |
33,200 |
0 (0.00%) |
0 (0.00%) |
| smoke_tests.nativeaot.linux.x64.checked.mch |
27,407 |
10 |
27,397 |
0 (0.00%) |
0 (0.00%) |
|
2,535,371 |
984,668 |
1,550,703 |
0 (0.00%) |
0 (0.00%) |
jit-analyze output
benchmarks.run_pgo.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 67166891 (overridden on cmd)
Total bytes of diff: 67166878 (overridden on cmd)
Total bytes of delta: -13 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
17 : 129274.dasm (3.25 % of base)
17 : 24298.dasm (3.25 % of base)
14 : 101196.dasm (1.23 % of base)
9 : 78234.dasm (1.26 % of base)
Top file improvements (bytes):
-51 : 32924.dasm (-8.85 % of base)
-9 : 78304.dasm (-1.60 % of base)
-6 : 136566.dasm (-1.42 % of base)
-1 : 42930.dasm (-0.11 % of base)
-1 : 44886.dasm (-0.12 % of base)
-1 : 44844.dasm (-0.12 % of base)
-1 : 42973.dasm (-0.11 % of base)
11 total files with Code Size differences (7 improved, 4 regressed), 1 unchanged.
Top method regressions (bytes):
17 (3.25 % of base) : 129274.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
17 (3.25 % of base) : 24298.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
14 (1.23 % of base) : 101196.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetTypeOrReturnType(Microsoft.CodeAnalysis.CSharp.Symbol,byref,byref,byref) (Tier1)
9 (1.26 % of base) : 78234.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitNode|12(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
Top method improvements (bytes):
-51 (-8.85 % of base) : 32924.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-9 (-1.60 % of base) : 78304.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-6 (-1.42 % of base) : 136566.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
-1 (-0.11 % of base) : 42930.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.11 % of base) : 42973.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.12 % of base) : 44886.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.12 % of base) : 44844.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
Top method regressions (percentages):
17 (3.25 % of base) : 129274.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
17 (3.25 % of base) : 24298.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
9 (1.26 % of base) : 78234.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitNode|12(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
14 (1.23 % of base) : 101196.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetTypeOrReturnType(Microsoft.CodeAnalysis.CSharp.Symbol,byref,byref,byref) (Tier1)
Top method improvements (percentages):
-51 (-8.85 % of base) : 32924.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-9 (-1.60 % of base) : 78304.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-6 (-1.42 % of base) : 136566.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
-1 (-0.12 % of base) : 44886.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.12 % of base) : 44844.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.11 % of base) : 42930.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.11 % of base) : 42973.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
11 total methods with Code Size differences (7 improved, 4 regressed).
coreclr_tests.run.linux.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 418408742 (overridden on cmd)
Total bytes of diff: 418408685 (overridden on cmd)
Total bytes of delta: -57 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
6 : 481333.dasm (1.13 % of base)
4 : 464229.dasm (0.49 % of base)
Top file improvements (bytes):
-7 : 332141.dasm (-1.28 % of base)
-7 : 310788.dasm (-1.28 % of base)
-7 : 465007.dasm (-1.28 % of base)
-7 : 476691.dasm (-1.28 % of base)
-7 : 497108.dasm (-0.90 % of base)
-7 : 432844.dasm (-1.28 % of base)
-7 : 467533.dasm (-1.28 % of base)
-7 : 445350.dasm (-1.28 % of base)
-7 : 470526.dasm (-1.28 % of base)
-1 : 464329.dasm (-0.12 % of base)
-1 : 464283.dasm (-0.11 % of base)
-1 : 464286.dasm (-0.11 % of base)
-1 : 464332.dasm (-0.12 % of base)
15 total files with Code Size differences (13 improved, 2 regressed), 0 unchanged.
Top method regressions (bytes):
6 (1.13 % of base) : 481333.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
4 (0.49 % of base) : 464229.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
Top method improvements (bytes):
-7 (-0.90 % of base) : 497108.dasm - DefaultNamespace.GCVariant2:runTest(int,int):ubyte:this (Tier1-OSR)
-7 (-1.28 % of base) : 332141.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 310788.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 465007.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 476691.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 432844.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 467533.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 445350.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 470526.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-1 (-0.11 % of base) : 464283.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.11 % of base) : 464286.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.12 % of base) : 464329.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.12 % of base) : 464332.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
Top method regressions (percentages):
6 (1.13 % of base) : 481333.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
4 (0.49 % of base) : 464229.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
Top method improvements (percentages):
-7 (-1.28 % of base) : 445350.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 332141.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 310788.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 465007.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 476691.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 432844.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 467533.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.28 % of base) : 470526.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-0.90 % of base) : 497108.dasm - DefaultNamespace.GCVariant2:runTest(int,int):ubyte:this (Tier1-OSR)
-1 (-0.12 % of base) : 464329.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.12 % of base) : 464332.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.11 % of base) : 464283.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.11 % of base) : 464286.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
15 total methods with Code Size differences (13 improved, 2 regressed).
libraries_tests.run.linux.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 331729893 (overridden on cmd)
Total bytes of diff: 331729829 (overridden on cmd)
Total bytes of delta: -64 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
7 : 714255.dasm (0.54 % of base)
5 : 542155.dasm (0.58 % of base)
5 : 112815.dasm (0.60 % of base)
5 : 153396.dasm (0.59 % of base)
5 : 175615.dasm (0.58 % of base)
4 : 67695.dasm (0.45 % of base)
2 : 688242.dasm (0.35 % of base)
Top file improvements (bytes):
-31 : 465905.dasm (-1.57 % of base)
-25 : 460629.dasm (-3.40 % of base)
-16 : 637481.dasm (-1.84 % of base)
-7 : 691345.dasm (-0.95 % of base)
-7 : 524359.dasm (-1.04 % of base)
-7 : 43745.dasm (-0.97 % of base)
-2 : 93990.dasm (-0.20 % of base)
-2 : 57248.dasm (-0.18 % of base)
15 total files with Code Size differences (8 improved, 7 regressed), 2 unchanged.
Top method regressions (bytes):
7 (0.54 % of base) : 714255.dasm - System.Text.RegularExpressions.Tests.MonoTests+<ValidateRegex_MemberData>d__1:MoveNext():ubyte:this (Tier1)
5 (0.58 % of base) : 542155.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (0.60 % of base) : 112815.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (0.59 % of base) : 153396.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (0.58 % of base) : 175615.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
4 (0.45 % of base) : 67695.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMoveableVariable(Microsoft.CodeAnalysis.CSharp.BoundExpression,byref):ubyte:this (Tier1)
2 (0.35 % of base) : 688242.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:MakeSlot(Microsoft.CodeAnalysis.CSharp.BoundExpression):int:this (Tier1)
Top method improvements (bytes):
-31 (-1.57 % of base) : 465905.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-25 (-3.40 % of base) : 460629.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-16 (-1.84 % of base) : 637481.dasm - System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[byte]:MoveNext():ubyte:this (Tier1)
-7 (-0.95 % of base) : 691345.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
-7 (-1.04 % of base) : 524359.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-0.97 % of base) : 43745.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-2 (-0.20 % of base) : 93990.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
-2 (-0.18 % of base) : 57248.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
Top method regressions (percentages):
5 (0.60 % of base) : 112815.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (0.59 % of base) : 153396.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (0.58 % of base) : 542155.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (0.58 % of base) : 175615.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
7 (0.54 % of base) : 714255.dasm - System.Text.RegularExpressions.Tests.MonoTests+<ValidateRegex_MemberData>d__1:MoveNext():ubyte:this (Tier1)
4 (0.45 % of base) : 67695.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsMoveableVariable(Microsoft.CodeAnalysis.CSharp.BoundExpression,byref):ubyte:this (Tier1)
2 (0.35 % of base) : 688242.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:MakeSlot(Microsoft.CodeAnalysis.CSharp.BoundExpression):int:this (Tier1)
Top method improvements (percentages):
-25 (-3.40 % of base) : 460629.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-16 (-1.84 % of base) : 637481.dasm - System.Collections.Concurrent.ConcurrentQueue`1+<Enumerate>d__26[byte]:MoveNext():ubyte:this (Tier1)
-31 (-1.57 % of base) : 465905.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-7 (-1.04 % of base) : 524359.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-0.97 % of base) : 43745.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-0.95 % of base) : 691345.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
-2 (-0.20 % of base) : 93990.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
-2 (-0.18 % of base) : 57248.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
15 total methods with Code Size differences (8 improved, 7 regressed).
windows arm64
Diffs are based on 2,376,931 contexts (945,150 MinOpts, 1,431,781 FullOpts).
MISSED contexts: 5 (0.00%)
Overall (-20 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.windows.arm64.checked.mch |
46,555,288 |
-4 |
| coreclr_tests.run.windows.arm64.checked.mch |
505,264,984 |
+0 |
| libraries_tests.run.windows.arm64.Release.mch |
321,619,196 |
-16 |
FullOpts (-20 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.windows.arm64.checked.mch |
30,069,536 |
-4 |
| coreclr_tests.run.windows.arm64.checked.mch |
163,807,860 |
+0 |
| libraries_tests.run.windows.arm64.Release.mch |
117,557,144 |
-16 |
Example diffs
benchmarks.run_pgo.windows.arm64.checked.mch
-4 (-0.53%) : 86302.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_IG26
ldr w1, [x19, #0x28]
mov w0, #0xD1FFAB1E
tst w1, w0
- bne G_M35244_IG14
+ bne G_M35244_IG26
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=2.00, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w20, [x19, #0x2E]
sub w1, w20, #3
cmp w1, #5
- bls G_M35244_IG25
+ bls G_M35244_IG22
;; size=16 bbWeight=2.00 PerfScore 10.02
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_IG26
mov w1, w1
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -89,7 +89,7 @@ G_M35244_IG06: ; bbWeight=0.72, gcrefRegs=180000 {x19 x20}, byrefRegs=000
bl CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
- cbnz x0, G_M35244_IG15
+ cbnz x0, G_M35244_IG28
mov w21, #1
;; size=28 bbWeight=0.72 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_IG17
+ cbz x23, G_M35244_IG14
;; 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_IG18
+ bls G_M35244_IG15
;; size=28 bbWeight=1.00 PerfScore 6.53
G_M35244_IG12: ; bbWeight=1.00, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
@@ -136,37 +136,7 @@ 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.01, 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.01 PerfScore 0.07
-G_M35244_IG15: ; bbWeight=0, 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 PerfScore 0.00
-G_M35244_IG16: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x20]
- 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, #0xD1FFAB1E 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_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0] +[x20]
+G_M35244_IG14: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
; gcrRegs +[x1]
movz x0, #0xD1FFAB1E
@@ -177,11 +147,11 @@ G_M35244_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcr arg pop 0
ldr w1, [x0, #0x10]
cmp w22, w1
- bhs G_M35244_IG27
+ bhs G_M35244_IG24
ldr x0, [x0, #0x08]
ldr w1, [x0, #0x08]
cmp w22, w1
- bhs G_M35244_IG28
+ bhs G_M35244_IG25
add x0, x0, #16
; gcrRegs -[x0]
; byrRegs +[x0]
@@ -189,18 +159,18 @@ G_M35244_IG17: ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
; gcrRegs +[x23]
b G_M35244_IG11
;; size=60 bbWeight=0 PerfScore 0.00
-G_M35244_IG18: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG15: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x0]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
- cbz x0, G_M35244_IG19
+ cbz x0, G_M35244_IG16
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_IG19: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
+G_M35244_IG16: ; bbWeight=0, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -248,7 +218,7 @@ G_M35244_IG19: ; 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_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG17: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x23] +[x19]
mov x0, x19
; gcrRegs +[x0]
@@ -261,9 +231,9 @@ G_M35244_IG20: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
; gcr arg pop 0
sxtw w20, w0
mov w21, #1
- b G_M35244_IG22
+ b G_M35244_IG19
;; size=36 bbWeight=0 PerfScore 0.00
-G_M35244_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG18: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
mov w1, w21
@@ -283,22 +253,22 @@ G_M35244_IG21: ; 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_IG22: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, w20
- blt G_M35244_IG21
+ blt G_M35244_IG18
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG14
- b G_M35244_IG16
+ beq G_M35244_IG26
+ b G_M35244_IG27
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG23: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; 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_IG24: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG21: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr w0, [x19, #0x24]
cmp w0, #1
- beq G_M35244_IG16
+ beq G_M35244_IG27
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this
@@ -310,14 +280,14 @@ G_M35244_IG24: ; 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_IG26
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_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this
@@ -325,7 +295,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend
+G_M35244_IG23: ; bbWeight=0, epilog, nogc, extend
ldr x23, [sp, #0x38]
ldp x21, x22, [sp, #0x28]
ldp x19, x20, [sp, #0x18]
@@ -333,7 +303,7 @@ G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend
br x1
; gcr arg pop 0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG24: ; 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
@@ -343,25 +313,52 @@ G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
; gcr arg pop 0
brk_windows #0
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
bl CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
- brk_windows #0
+ ;; size=4 bbWeight=0 PerfScore 0.00
+G_M35244_IG26: ; 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_IG27: ; 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, #0xD1FFAB1E 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_IG28: ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x20]
...
+0 (0.00%) : 94685.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.30
-G_M417_IG04: ; bbWeight=0.70, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp x21, x22, [sp, #0x40]
- ldp x19, x20, [sp, #0x30]
- ldp fp, lr, [sp], #0x50
- ret lr
- ;; size=16 bbWeight=0.70 PerfScore 2.80
-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.88
+G_M417_IG04: ; bbWeight=0.10, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21]
mov x22, x20
; gcrRegs +[x22]
ldr w0, [x20, #0x28]
cmp w0, #2
- bne G_M417_IG07
+ bne G_M417_IG06
;; size=16 bbWeight=0.10 PerfScore 0.50
-G_M417_IG06: ; bbWeight=0.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.62
-G_M417_IG07: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG06: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
mov x0, x22
; gcrRegs +[x0]
mov x1, x21
@@ -116,12 +111,17 @@ G_M417_IG07: ; bbWeight=0.10, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRe
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x2 x19 x21-x22]
- b G_M417_IG04
- ;; size=36 bbWeight=0.10 PerfScore 0.80
-G_M417_IG08: ; bbWeight=0.42, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=0.10 PerfScore 0.70
+G_M417_IG07: ; bbWeight=0.70, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldp x21, x22, [sp, #0x40]
+ ldp x19, x20, [sp, #0x30]
+ ldp fp, lr, [sp], #0x50
+ ret lr
+ ;; size=16 bbWeight=0.70 PerfScore 2.80
+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.22
G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
@@ -173,25 +173,9 @@ G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr wzr, [x0]
blr x3
; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=76 bbWeight=0 PerfScore 0.00
G_M417_IG11: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
- ; gcrRegs +[x19 x21]
- ldr x1, [x21, #0x80]
- ; gcrRegs +[x1]
- ldrsb wzr, [x19]
- add x2, fp, #16 // [V14 tmp9]
- mov x0, x19
- ; gcrRegs +[x0]
- movz x3, #0xD1FFAB1E // code for <unknown method>
- movk x3, #0xD1FFAB1E LSL #16
- movk x3, #0xD1FFAB1E LSL #32
- ldr x3, [x3]
- blr x3
- ; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
- ;; size=40 bbWeight=0 PerfScore 0.00
-G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
ldr x1, [x21, #0x88]
; gcrRegs +[x1]
@@ -205,25 +189,25 @@ G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
-G_M417_IG13: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M417_IG12: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21]
ldr x0, [x20]
ldr x1, [x0, #0x38]
ldr x1, [x1]
ldr x1, [x1, #0x40]
- cbz x1, G_M417_IG14
- b G_M417_IG15
+ cbz x1, G_M417_IG13
+ b G_M417_IG14
;; size=24 bbWeight=0 PerfScore 0.00
-G_M417_IG14: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M417_IG13: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov x1, x0
;; size=20 bbWeight=0 PerfScore 0.00
-G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M417_IG14: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
mov x0, x1
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
@@ -244,17 +228,17 @@ G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr x1, [x0, #0x38]
ldr x1, [x1]
ldr x2, [x1, #0x48]
- cbz x2, G_M417_IG16
+ cbz x2, G_M417_IG15
mov x0, x2
- b G_M417_IG17
+ b G_M417_IG16
;; size=76 bbWeight=0 PerfScore 0.00
-G_M417_IG16: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG15: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
bl CORINFO_HELP_RUNTIMEHANDLE_CLASS
;; size=16 bbWeight=0 PerfScore 0.00
-G_M417_IG17: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
+G_M417_IG16: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
mov x1, x22
; gcrRegs +[x1]
mov x2, x21
@@ -267,29 +251,45 @@ G_M417_IG17: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=
ldr x4, [x4]
blr x4
; gcrRegs -[x1-x3 x19 x21-x22]
- b G_M417_IG04
+ b G_M417_IG07
;; size=36 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x19 x21]
+ ldr x1, [x21, #0x80]
+ ; gcrRegs +[x1]
+ ldrsb wzr, [x19]
+ add x2, fp, #16 // [V14 tmp9]
+ mov x0, x19
+ ; gcrRegs +[x0]
+ movz x3, #0xD1FFAB1E // code for <unknown method>
+ movk x3, #0xD1FFAB1E LSL #16
+ movk x3, #0xD1FFAB1E LSL #32
+ ldr x3, [x3]
+ blr x3
+ ; gcrRegs -[x0-x1 x19 x21]
+ b G_M417_IG07
+ ;; size=40 bbWeight=0 PerfScore 0.00
+RWD00 dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG05 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG10 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG12 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG11 - G_M417_IG02
dd G_M417_IG11 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG11 - G_M417_IG02
+ dd G_M417_IG11 - G_M417_IG02
+ dd G_M417_IG17 - G_M417_IG02
+ dd G_M417_IG17 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
-; Total bytes of code 608, prolog size 20, PerfScore 42.85, 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.34, 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%) : 91828.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)
@@ -69,22 +69,17 @@ G_M417_IG03: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19]
- ;; size=36 bbWeight=0.60 PerfScore 7.45
-G_M417_IG04: ; bbWeight=0.70, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
- ldp x21, x22, [sp, #0x40]
- ldp x19, x20, [sp, #0x30]
- ldp fp, lr, [sp], #0x50
- ret lr
- ;; size=16 bbWeight=0.70 PerfScore 2.79
-G_M417_IG05: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
+ b G_M417_IG07
+ ;; size=40 bbWeight=0.60 PerfScore 8.05
+G_M417_IG04: ; bbWeight=0.10, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21]
mov x22, x20
; gcrRegs +[x22]
ldr w0, [x20, #0x28]
cmp w0, #2
- bne G_M417_IG07
+ bne G_M417_IG06
;; size=16 bbWeight=0.10 PerfScore 0.50
-G_M417_IG06: ; bbWeight=0.80, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.80, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
ldr x0, [x22, #0x10]
; gcrRegs +[x0]
mov x1, x21
@@ -101,9 +96,9 @@ G_M417_IG06: ; bbWeight=0.80, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRe
ldr x22, [x22, #0x18]
ldr w0, [x22, #0x28]
cmp w0, #2
- beq G_M417_IG06
+ beq G_M417_IG05
;; size=52 bbWeight=0.80 PerfScore 16.01
-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.81
-G_M417_IG08: ; bbWeight=0.40, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+ ;; size=32 bbWeight=0.10 PerfScore 0.71
+G_M417_IG07: ; bbWeight=0.70, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, epilog, nogc
+ ldp x21, x22, [sp, #0x40]
+ ldp x19, x20, [sp, #0x30]
+ ldp fp, lr, [sp], #0x50
+ ret lr
+ ;; size=16 bbWeight=0.70 PerfScore 2.79
+G_M417_IG08: ; bbWeight=0.40, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x19 x21]
cmp w22, #17
- bhi G_M417_IG04
+ bhi G_M417_IG07
mov w0, w22
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -142,7 +142,7 @@ G_M417_IG09: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
G_M417_IG10: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x19 x21]
@@ -204,7 +204,7 @@ G_M417_IG14: ; bbWeight=0, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=
ldr x4, [x4]
blr x4
; gcrRegs -[x1-x3 x19 x21-x22]
- b G_M417_IG04
+ b G_M417_IG07
;; size=36 bbWeight=0 PerfScore 0.00
G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
@@ -221,7 +221,7 @@ G_M417_IG15: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr wzr, [x0]
blr x3
; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
G_M417_IG16: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
@@ -251,7 +251,7 @@ G_M417_IG16: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr wzr, [x0]
blr x3
; gcrRegs -[x0-x2 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=76 bbWeight=0 PerfScore 0.00
G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs +[x19 x21]
@@ -267,29 +267,29 @@ G_M417_IG17: ; bbWeight=0, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x19 x21]
- b G_M417_IG04
+ b G_M417_IG07
;; size=40 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+RWD00 dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG05 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02
dd G_M417_IG15 - G_M417_IG02
dd G_M417_IG16 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG09 - G_M417_IG02
dd G_M417_IG17 - G_M417_IG02
dd G_M417_IG17 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG15 - G_M417_IG02
-; Total bytes of code 608, prolog size 20, PerfScore 43.09, instruction count 152, allocated bytes for code 608 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
+; Total bytes of code 608, prolog size 20, PerfScore 43.59, instruction count 152, allocated bytes for code 608 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
; ============================================================
Unwind Info:
coreclr_tests.run.windows.arm64.checked.mch
+0 (0.00%) : 509446.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, #0xD1FFAB1E 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_windows #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%) : 327212.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, #0xD1FFAB1E 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_windows #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:
libraries_tests.run.windows.arm64.Release.mch
-4 (-0.45%) : 401473.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, #0xD1FFAB1E 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, #0xD1FFAB1E 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, #0xD1FFAB1E 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
...
-4 (-0.45%) : 590738.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; fp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 30650
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 30650
; 3 inlinees with PGO data; 9 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -74,13 +74,9 @@ G_M57106_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x20, x0
- bne G_M57106_IG04
+ beq G_M57106_IG08
;; size=24 bbWeight=1 PerfScore 6.00
-G_M57106_IG03: ; bbWeight=0.39, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- mov w21, #9
- b G_M57106_IG05
- ;; size=8 bbWeight=0.39 PerfScore 0.58
-G_M57106_IG04: ; bbWeight=0.61, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M57106_IG03: ; bbWeight=0.61, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov x0, x19
; gcrRegs +[x0]
ldr x1, [x20, #0x58]
@@ -90,12 +86,12 @@ G_M57106_IG04: ; bbWeight=0.61, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
; gcr arg pop 0
sxtw w21, w0
;; size=20 bbWeight=0.61 PerfScore 4.88
-G_M57106_IG05: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG04: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w22, w21, #4
cmp w22, #5
- bne G_M57106_IG11
+ bne G_M57106_IG09
;; size=12 bbWeight=1 PerfScore 2.00
-G_M57106_IG06: ; bbWeight=0.89, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG05: ; bbWeight=0.89, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov x1, x19
; gcrRegs +[x1]
movz x0, #24
@@ -118,7 +114,7 @@ G_M57106_IG06: ; bbWeight=0.89, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
ldr w1, [x19, #0x08]
cbnz w1, G_M57106_IG13
;; size=60 bbWeight=0.89 PerfScore 16.89
-G_M57106_IG07: ; bbWeight=0.82, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M57106_IG06: ; bbWeight=0.82, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19-x20]
movz x1, #0xD1FFAB1E // box for <unknown class>:<unknown field>
movk x1, #0xD1FFAB1E LSL #16
@@ -128,7 +124,7 @@ G_M57106_IG07: ; bbWeight=0.82, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ldr x0, [x1, #0x08]
; gcrRegs +[x0]
;; size=20 bbWeight=0.82 PerfScore 6.15
-G_M57106_IG08: ; bbWeight=0.89, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M57106_IG07: ; bbWeight=0.89, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[x1]
ldr x25, [sp, #0x58]
ldp x23, x24, [sp, #0x48]
@@ -137,27 +133,14 @@ G_M57106_IG08: ; bbWeight=0.89, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldp fp, lr, [sp], #0x60
ret lr
;; size=24 bbWeight=0.89 PerfScore 6.22
-G_M57106_IG09: ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0]
- movz x0, #0xD1FFAB1E // box for <unknown class>:<unknown field>
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- ; gcrRegs +[x0]
- ldr x0, [x0, #0x08]
- ;; size=20 bbWeight=0.11 PerfScore 0.83
-G_M57106_IG10: ; bbWeight=0.11, epilog, nogc, extend
- ldr x25, [sp, #0x58]
- ldp x23, x24, [sp, #0x48]
- ldp x21, x22, [sp, #0x38]
- ldp x19, x20, [sp, #0x28]
- ldp fp, lr, [sp], #0x60
- ret lr
- ;; size=24 bbWeight=0.11 PerfScore 0.78
-G_M57106_IG11: ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M57106_IG08: ; bbWeight=0.39, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[x0] +[x19]
+ mov w21, #9
+ b G_M57106_IG04
+ ;; size=8 bbWeight=0.39 PerfScore 0.58
+G_M57106_IG09: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w22, #7
- bhi G_M57106_IG12
+ bhi G_M57106_IG10
mov w0, w22
adr x1, [@RWD00]
ldr w1, [x1, x0, LSL #2]
@@ -165,13 +148,29 @@ G_M57106_IG11: ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=800
add x1, x1, x2
br x1
;; size=32 bbWeight=0.11 PerfScore 0.83
-G_M57106_IG12: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG10: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
cmp w21, #15
bne G_M57106_IG29
- b G_M57106_IG09
- ;; size=12 bbWeight=0.11 PerfScore 0.28
-G_M57106_IG13: ; bbWeight=0.07, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x20]
+ ;; size=8 bbWeight=0.11 PerfScore 0.17
+G_M57106_IG11: ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19]
+ movz x0, #0xD1FFAB1E // box for <unknown class>:<unknown field>
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
+ ; gcrRegs +[x0]
+ ldr x0, [x0, #0x08]
+ ;; size=20 bbWeight=0.11 PerfScore 0.83
+G_M57106_IG12: ; bbWeight=0.11, epilog, nogc, extend
+ ldr x25, [sp, #0x58]
+ ldp x23, x24, [sp, #0x48]
+ ldp x21, x22, [sp, #0x38]
+ ldp x19, x20, [sp, #0x28]
+ ldp fp, lr, [sp], #0x60
+ ret lr
+ ;; size=24 bbWeight=0.11 PerfScore 0.78
+G_M57106_IG13: ; bbWeight=0.07, gcVars=0000000000000000 {}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x0] +[x19-x20]
sxtw x1, w1
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
@@ -184,13 +183,13 @@ G_M57106_IG13: ; bbWeight=0.07, gcrefRegs=180000 {x19 x20}, byrefRegs=000
mov w23, wzr
ldr w24, [x21, #0x08]
cmp w24, #0
- ble G_M57106_IG20
+ ble G_M57106_IG21
;; size=40 bbWeight=0.07 PerfScore 0.59
G_M57106_IG14: ; bbWeight=0.03, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w1, [x19, #0x08]
cmp w1, w24
- blt G_M57106_IG21
+ blt G_M57106_IG22
;; size=12 bbWeight=0.03 PerfScore 0.16
G_M57106_IG15: ; bbWeight=0.07, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
mov w1, #24
@@ -206,8 +205,8 @@ G_M57106_IG15: ; bbWeight=0.07, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
cmp x2, x3
- bne G_M57106_IG31
- cbz x0, G_M57106_IG18
+ bne G_M57106_IG32
+ cbz x0, G_M57106_IG19
;; size=52 bbWeight=0.07 PerfScore 1.41
G_M57106_IG16: ; bbWeight=0.07, gcrefRegs=380003 {x0 x1 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x22]
@@ -216,7 +215,7 @@ G_M57106_IG16: ; bbWeight=0.07, gcrefRegs=380003 {x0 x1 x19 x20 x21}, byr
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
cmp x2, x3
- bne G_M57106_IG30
+ bne G_M57106_IG31
mov x2, x1
; gcrRegs +[x2]
;; size=28 bbWeight=0.07 PerfScore 0.45
@@ -231,14 +230,18 @@ G_M57106_IG17: ; bbWeight=0.07, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
add w23, w23, #1
cmp w24, w23
bgt G_M57106_IG15
- b G_M57106_IG20
- ;; size=28 bbWeight=0.07 PerfScore 0.34
-G_M57106_IG18: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+ ;; size=24 bbWeight=0.07 PerfScore 0.27
+G_M57106_IG18: ; bbWeight=0.03, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19-x20]
+ b G_M57106_IG21
+ ;; size=4 bbWeight=0.03 PerfScore 0.03
+G_M57106_IG19: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[x19-x20]
mov x2, xzr
; gcrRegs +[x2]
b G_M57106_IG17
;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG19: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG20: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
sxtw x1, w23
mov x0, x21
; gcrRegs +[x0]
@@ -247,19 +250,19 @@ G_M57106_IG19: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
; gcr arg pop 0
add w23, w23, #1
cmp w24, w23
- bgt G_M57106_IG21
+ bgt G_M57106_IG22
;; size=24 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG20: ; bbWeight=0.07, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
+G_M57106_IG21: ; bbWeight=0.07, gcrefRegs=200000 {x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x19-x20]
mov x0, x21
; gcrRegs +[x0]
- b G_M57106_IG08
+ b G_M57106_IG07
;; size=8 bbWeight=0.07 PerfScore 0.10
-G_M57106_IG21: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG22: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0] +[x19-x20]
ldr w1, [x19, #0x08]
cmp w23, w1
- bhs G_M57106_IG28
+ bhs G_M57106_IG30
mov w1, #24
mov x0, #16
umaddl x1, w23, w1, x0
@@ -273,31 +276,31 @@ G_M57106_IG21: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
cmp x2, x3
- bne G_M57106_IG25
- cbz x0, G_M57106_IG24
+ bne G_M57106_IG26
+ cbz x0, G_M57106_IG25
;; size=64 bbWeight=0.00 PerfScore 0.02
-G_M57106_IG22: ; bbWeight=0.00, gcrefRegs=380003 {x0 x1 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
+G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=380003 {x0 x1 x19 x20 x21}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x22]
ldr x2, [x0]
movz x3, #0xD1FFAB1E
movk x3, #0xD1FFAB1E LSL #16
movk x3, #0xD1FFAB1E LSL #32
cmp x2, x3
- bne G_M57106_IG32
+ bne G_M57106_IG33
mov x2, x1
; gcrRegs +[x2]
;; size=28 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG23: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M57106_IG24: ; bbWeight=0.00, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x0-x1]
- b G_M57106_IG19
+ b G_M57106_IG20
;; size=4 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG24: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M57106_IG25: ; bbWeight=0.00, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
; gcrRegs -[x2]
mov x2, xzr
; gcrRegs +[x2]
- b G_M57106_IG23
+ b G_M57106_IG24
;; size=8 bbWeight=0.00 PerfScore 0.00
-G_M57106_IG25: ; bbWeight=0, gcrefRegs=380003 {x0 x1 x19 x20 x21}, byrefRegs=0000 {}, byref
+G_M57106_IG26: ; bbWeight=0, gcrefRegs=380003 {x0 x1 x19 x20 x21}, byrefRegs=0000 {}, byref
...
-8 (-0.30%) : 399305.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
@@ -96,13 +96,13 @@ G_M38617_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[x19]
;; size=40 bbWeight=1 PerfScore 8.00
G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
- cbz x19, G_M38617_IG28
+ cbz x19, G_M38617_IG37
ldr x0, [x20]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
- bne G_M38617_IG29
+ bne G_M38617_IG38
ldr x0, [x20, #0x10]
; gcrRegs +[x0]
ldr x1, [x0]
@@ -127,9 +127,9 @@ G_M38617_IG04: ; bbWeight=0.04, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=
;; size=20 bbWeight=0.04 PerfScore 0.42
G_M38617_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
cmp w21, #2
- bgt G_M38617_IG31
+ bgt G_M38617_IG12
cmp w21, #1
- bne G_M38617_IG30
+ bne G_M38617_IG11
mov x0, x19
; gcrRegs +[x0]
bl <unknown method>
@@ -148,17 +148,17 @@ G_M38617_IG05: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
cmp x1, x2
- bne G_M38617_IG16
+ bne G_M38617_IG27
ldr w23, [x0, #0x0C]
;; size=76 bbWeight=1 PerfScore 19.50
G_M38617_IG06: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
cmp w23, #1
- beq G_M38617_IG23
+ beq G_M38617_IG34
cmp w23, #2
- beq G_M38617_IG22
+ beq G_M38617_IG33
sub w24, w23, #12
- cbnz w24, G_M38617_IG17
+ cbnz w24, G_M38617_IG28
;; size=24 bbWeight=1 PerfScore 4.50
G_M38617_IG07: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
; GC ptr vars -{V00}
@@ -166,7 +166,7 @@ G_M38617_IG07: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=480000
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
cmp x22, x0
- beq G_M38617_IG20
+ beq G_M38617_IG31
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
@@ -249,7 +249,7 @@ G_M38617_IG07: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=480000
ldr w0, [x0, #0x08]
; gcrRegs -[x0]
cmp w1, w0
- bge G_M38617_IG21
+ bge G_M38617_IG32
;; size=228 bbWeight=1 PerfScore 51.00
G_M38617_IG08: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
ldr x0, [x19, #0x08]
@@ -263,14 +263,237 @@ G_M38617_IG08: ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {
bl CORINFO_HELP_ARRADDR_ST
; gcrRegs -[x0 x2 x22]
; gcr arg pop 0
+ ;; size=28 bbWeight=1 PerfScore 9.50
+G_M38617_IG09: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ mov x0, x19
+ ; gcrRegs +[x0]
+ ;; size=4 bbWeight=1 PerfScore 0.50
+G_M38617_IG10: ; bbWeight=1, epilog, nogc, extend
+ ldp x23, x24, [sp, #0x50]
+ ldp x21, x22, [sp, #0x40]
+ ldp x19, x20, [sp, #0x30]
+ ldp fp, lr, [sp], #0x60
+ ret lr
+ ;; size=20 bbWeight=1 PerfScore 5.00
+G_M38617_IG11: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x0] +[x20]
+ ; GC ptr vars +{V00 V08}
+ cmp w21, #2
+ bne G_M38617_IG09
+ mov x0, x20
+ ; gcrRegs +[x0]
+ movz x1, #0xD1FFAB1E // code for System.Xml.Xsl.XmlQueryType:get_IsSingleton():ubyte:this
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
+ ldr x1, [x1]
+ blr x1
+ ; gcrRegs -[x0 x20]
+ ; gcr arg pop 0
+ cbnz w0, G_M38617_IG09
+ b G_M38617_IG15
+ ;; size=40 bbWeight=0 PerfScore 0.00
+G_M38617_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; GC ptr vars -{V00 V08}
+ cmp w21, #12
+ beq G_M38617_IG13
+ cmp w21, #16
+ bne G_M38617_IG09
+ ldr x1, [x19]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ cmp x1, x0
+ beq G_M38617_IG09
+ b G_M38617_IG14
+ ;; size=44 bbWeight=0 PerfScore 0.00
+G_M38617_IG13: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ldr x1, [x19]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ cmp x1, x0
+ bne G_M38617_IG09
+ mov x1, x19
+ ; gcrRegs +[x1]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_UNBOX
+ ; gcrRegs -[x1 x19]
+ ; byrRegs +[x0]
+ ; gcr arg pop 0
+ ldr x0, [x0]
+ ; byrRegs -[x0]
+ movz x1, #0xD1FFAB1E // code for System.Xml.Xsl.Runtime.XsltConvert:ToString(System.DateTime):System.String
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
+ ldr x1, [x1]
+ blr x1
+ ; gcrRegs +[x0]
+ ; gcr arg pop 0
+ mov x19, x0
+ ; gcrRegs +[x19]
+ b G_M38617_IG09
+ ;; size=76 bbWeight=0 PerfScore 0.00
+G_M38617_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ ; gcr arg pop 0
+ mov x24, x0
+ ; gcrRegs +[x24]
+ mov x1, x19
+ ; gcrRegs +[x1]
+ movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_CHKCASTINTERFACE
+ ; gcrRegs -[x1 x19] +[x0]
+ ; gcr arg pop 0
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #0xD1FFAB1E LSL #32
+ mov x1, xzr
+ ldr x2, [x11]
+ blr x2
+ ; gcrRegs -[x0]
+ ; gcr arg pop 0
+ str d0, [x24, #0x08]
+ mov x19, x24
+ ; gcrRegs +[x19]
+ b G_M38617_IG09
+ ;; size=76 bbWeight=0 PerfScore 0.00
+G_M38617_IG15: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs -[x24]
+ ; GC ptr vars +{V00 V08}
+ mov x1, x19
+ ; gcrRegs +[x1]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_ISINSTANCEOFCLASS
+ ; gcrRegs -[x1] +[x0]
+ ; gcr arg pop 0
+ cbz x0, G_M38617_IG16
+ ldr x1, [x0, #0x10]
+ ; gcrRegs +[x1]
+ movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_ISINSTANCEOFCLASS
+ ; gcrRegs -[x1] +[x0]
+ ; gcr arg pop 0
+ cbz x0, G_M38617_IG16
+ mov x19, x0
b G_M38617_IG26
- ;; size=32 bbWeight=1 PerfScore 10.50
-G_M38617_IG09: ; bbWeight=0, gcVars=0000000000140100 {V00 V06 V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=56 bbWeight=0 PerfScore 0.00
+G_M38617_IG16: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[x0]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ bl CORINFO_HELP_NEWSFAST
+ ; gcrRegs +[x0]
+ ; gcr arg pop 0
+ mov x22, x0
+ ; gcrRegs +[x22]
+ movz x1, #0xD1FFAB1E // code for System.Xml.Xsl.Runtime.XmlQuerySequence`1[System.__Canon]:.ctor():this
+ movk x1, #0xD1FFAB1E LSL #16
+ movk x1, #0xD1FFAB1E LSL #32
+ ldr x1, [x1]
+ blr x1
+ ; gcrRegs -[x0]
+ ; gcr arg pop 0
+ str x22, [fp, #0x18] // [V06 loc3]
+ ; GC ptr vars +{V06}
+ mov x1, x19
+ ; gcrRegs +[x1]
+ movz x0, #0xD1FFAB1E
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ; GC ptr vars -{V08}
+ bl CORINFO_HELP_ISINSTANCEOFINTERFACE
+ ; gcrRegs -[x1 x22] +[x0]
+ ; gcr arg pop 0
+ mov x20, x0
+ ; gcrRegs +[x20]
+ cbz x20, G_M38617_IG19
+ mov w19, wzr
; gcrRegs -[x19]
- ; GC ptr vars +{V00 V06 V08 V09 V18 V20}
- b G_M38617_IG11
+ b G_M38617_IG18
+ ;; size=80 bbWeight=0 PerfScore 0.00
+G_M38617_IG17: ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x0]
+ mov x0, x20
+ ; gcrRegs +[x0]
+ mov w1, w19
+ movz x11, #0xD1FFAB1E // code for <unknown method>
+ movk x11, #0xD1FFAB1E LSL #16
+ movk x11, #0xD1FFAB1E LSL #32
+ ldr x2, [x11]
+ blr x2
...
+0 (0.00%) : 477411.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -72,22 +72,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_IG21
+ cbz w0, G_M35244_IG35
ldr w0, [x19, #0x28]
mov w1, #0xD1FFAB1E
tst w0, w1
- bne G_M35244_IG21
+ bne G_M35244_IG35
;; size=24 bbWeight=1 PerfScore 7.00
G_M35244_IG03: ; bbWeight=3.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldrb w0, [x19, #0x2E]
sub w1, w0, #3
cmp w1, #5
- bls G_M35244_IG24
+ bls G_M35244_IG23
;; size=16 bbWeight=3.22 PerfScore 16.11
G_M35244_IG04: ; bbWeight=2.78, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
sub w20, w0, #24
cmp w20, #10
- bhi G_M35244_IG21
+ bhi G_M35244_IG35
mov w1, w20
adr x0, [@RWD00]
ldr w0, [x0, x1, LSL #2]
@@ -98,7 +98,7 @@ G_M35244_IG04: ; bbWeight=2.78, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
G_M35244_IG05: ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
- cbz x20, G_M35244_IG23
+ cbz x20, G_M35244_IG22
;; size=8 bbWeight=2 PerfScore 8.00
G_M35244_IG06: ; bbWeight=1.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
mov x1, x20
@@ -144,7 +144,7 @@ G_M35244_IG12: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs +[x22]
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M35244_IG13: ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
- cbnz x22, G_M35244_IG22
+ cbnz x22, G_M35244_IG21
;; size=4 bbWeight=2 PerfScore 2.00
G_M35244_IG14: ; bbWeight=1.19, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x22]
@@ -203,23 +203,15 @@ G_M35244_IG20: ; bbWeight=2, gcrefRegs=400000 {x22}, byrefRegs=0000 {}, b
; gcrRegs +[x19]
b G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-G_M35244_IG21: ; bbWeight=1.04, 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.04 PerfScore 4.15
-G_M35244_IG22: ; bbWeight=0.81, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[x19 x22]
+G_M35244_IG21: ; bbWeight=0.81, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
b G_M35244_IG19
;; size=4 bbWeight=0.81 PerfScore 0.81
-G_M35244_IG23: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=0.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x22] +[x20]
mov w21, wzr
b G_M35244_IG08
;; size=8 bbWeight=0.60 PerfScore 0.89
-G_M35244_IG24: ; bbWeight=0.44, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG23: ; bbWeight=0.44, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x20]
mov x0, x19
; gcrRegs +[x0]
@@ -228,56 +220,56 @@ G_M35244_IG24: ; bbWeight=0.44, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
;; size=20 bbWeight=0.44 PerfScore 2.22
-G_M35244_IG25: ; bbWeight=0.44, epilog, nogc, extend
+G_M35244_IG24: ; bbWeight=0.44, 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.44 PerfScore 1.78
-G_M35244_IG26: ; bbWeight=0.22, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG25: ; bbWeight=0.22, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[x0]
ldr w1, [x19, #0x24]
cmp w1, #1
bne G_M35244_IG53
;; size=12 bbWeight=0.22 PerfScore 1.00
-G_M35244_IG27: ; bbWeight=0.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG26: ; bbWeight=0.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
ldr x20, [x19, #0x08]
; gcrRegs +[x20]
mov x19, x20
- cbz x19, G_M35244_IG30
+ cbz x19, G_M35244_IG29
;; size=12 bbWeight=0.22 PerfScore 1.00
-G_M35244_IG28: ; bbWeight=0.11, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0.11, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
ldr x0, [x19]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
cmp x0, x1
- beq G_M35244_IG30
+ beq G_M35244_IG29
;; size=24 bbWeight=0.11 PerfScore 0.67
-G_M35244_IG29: ; bbWeight=0.06, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG28: ; bbWeight=0.06, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x19, xzr
; gcrRegs +[x19]
;; size=4 bbWeight=0.06 PerfScore 0.03
-G_M35244_IG30: ; bbWeight=0.22, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0.22, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
cbnz x19, G_M35244_IG47
;; size=4 bbWeight=0.22 PerfScore 0.22
-G_M35244_IG31: ; bbWeight=0.13, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG30: ; bbWeight=0.13, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x19]
mov x19, x20
; gcrRegs +[x19]
- cbz x19, G_M35244_IG34
+ cbz x19, G_M35244_IG33
;; size=8 bbWeight=0.13 PerfScore 0.20
-G_M35244_IG32: ; bbWeight=0.07, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG31: ; bbWeight=0.07, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x1, [x19]
cmp x1, x0
- beq G_M35244_IG34
+ beq G_M35244_IG33
;; size=24 bbWeight=0.07 PerfScore 0.40
-G_M35244_IG33: ; bbWeight=0.03, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; bbWeight=0.03, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
; gcrRegs -[x19]
mov x1, x20
; gcrRegs +[x1]
@@ -287,7 +279,7 @@ G_M35244_IG33: ; bbWeight=0.03, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
mov x19, x0
; gcrRegs +[x19]
;; size=12 bbWeight=0.03 PerfScore 0.07
-G_M35244_IG34: ; bbWeight=0.13, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG33: ; bbWeight=0.13, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[x0]
ldr w1, [x19, #0x10]
cbz w1, G_M35244_IG54
@@ -298,12 +290,19 @@ G_M35244_IG34: ; bbWeight=0.13, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
bls G_M35244_IG55
ldr x19, [x1, #0x10]
;; size=28 bbWeight=0.13 PerfScore 1.91
-G_M35244_IG35: ; bbWeight=0.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+G_M35244_IG34: ; bbWeight=0.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
; gcrRegs -[x1]
b G_M35244_IG03
;; size=4 bbWeight=0.22 PerfScore 0.22
-G_M35244_IG36: ; bbWeight=0.11, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[x22]
+G_M35244_IG35: ; bbWeight=0.13, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ ; gcrRegs -[x19]
+ ldp x21, x22, [sp, #0x20]
+ ldp x19, x20, [sp, #0x10]
+ ldp fp, lr, [sp], #0x30
+ ret lr
+ ;; size=16 bbWeight=0.13 PerfScore 0.51
+G_M35244_IG36: ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, gcvars, byref, isz
+ ; gcrRegs +[x19 x22]
ldr x0, [x19, #0x18]
; gcrRegs +[x0]
cbz x0, G_M35244_IG37
@@ -423,7 +422,7 @@ G_M35244_IG46: ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
b G_M35244_IG03
;; size=4 bbWeight=0.11 PerfScore 0.11
G_M35244_IG47: ; bbWeight=0.09, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
- b G_M35244_IG35
+ b G_M35244_IG34
;; size=4 bbWeight=0.09 PerfScore 0.09
G_M35244_IG48: ; bbWeight=0.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
b G_M35244_IG46
@@ -467,7 +466,7 @@ G_M35244_IG51: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
blt G_M35244_IG50
ldrb w0, [x19, #0x2E]
cmp w0, #34
- beq G_M35244_IG21
+ beq G_M35244_IG35
mov x0, x19
; gcrRegs +[x0]
mov w1, wzr
@@ -488,7 +487,7 @@ G_M35244_IG52: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
str w0, [x19, #0x24]
ldr w0, [x19, #0x24]
cmp w0, #1
- beq G_M35244_IG27
+ beq G_M35244_IG26
;; size=20 bbWeight=0 PerfScore 0.00
G_M35244_IG53: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
mov x0, x19
@@ -502,7 +501,7 @@ G_M35244_IG53: ; 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_IG35
b G_M35244_IG03
;; size=36 bbWeight=0 PerfScore 0.00
G_M35244_IG54: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -522,10 +521,10 @@ G_M35244_IG55: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=8 bbWeight=0 PerfScore 0.00
RWD00 dd G_M35244_IG49 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG26 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
dd G_M35244_IG52 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG21 - G_M35244_IG02
+ dd G_M35244_IG35 - G_M35244_IG02
dd G_M35244_IG38 - G_M35244_IG02
dd G_M35244_IG38 - G_M35244_IG02
dd G_M35244_IG38 - G_M35244_IG02
@@ -533,7 +532,7 @@ RWD00 dd G_M35244_IG49 - G_M35244_IG02
dd G_M35244_IG49 - G_M35244_IG02
-; Total bytes of code 1008, prolog size 20, PerfScore 141.30, instruction count 252, allocated bytes for code 1008 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 1008, prolog size 20, PerfScore 137.66, instruction count 252, allocated bytes for code 1008 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
+0 (0.00%) : 588199.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanEscapeSequence(byref):ushort:this (Tier1)
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; fp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 40160
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 40160
; 4 inlinees with PGO data; 14 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -165,13 +165,21 @@ G_M29172_IG14: ; bbWeight=0.28, gcVars=0000000000000000 {}, gcrefRegs=800
;; size=36 bbWeight=0.28 PerfScore 2.25
G_M29172_IG15: ; bbWeight=0.27, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
sub w24, w22, #110
- cbz w24, G_M29172_IG18
+ cbnz w24, G_M29172_IG17
;; size=8 bbWeight=0.27 PerfScore 0.41
-G_M29172_IG16: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+G_M29172_IG16: ; bbWeight=0.18, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[x19]
+ ; byrRegs -[x20]
+ mov w22, #10
+ b G_M29172_IG12
+ ;; size=8 bbWeight=0.18 PerfScore 0.27
+G_M29172_IG17: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+ ; gcrRegs +[x19]
+ ; byrRegs +[x20]
cmp w24, #10
bhi G_M29172_IG34
;; size=8 bbWeight=0.10 PerfScore 0.14
-G_M29172_IG17: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
+G_M29172_IG18: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
mov w1, w24
adr x0, [@RWD24]
ldr w0, [x0, x1, LSL #2]
@@ -179,15 +187,7 @@ G_M29172_IG17: ; bbWeight=0.10, gcrefRegs=80000 {x19}, byrefRegs=100000 {
add x0, x0, x2
br x0
;; size=24 bbWeight=0.10 PerfScore 0.57
-G_M29172_IG18: ; bbWeight=0.18, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x19]
- ; byrRegs -[x20]
- mov w22, #10
- b G_M29172_IG12
- ;; size=8 bbWeight=0.18 PerfScore 0.27
G_M29172_IG19: ; bbWeight=0.08, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
- ; gcrRegs +[x19]
- ; byrRegs +[x20]
ldr x0, [x19, #0x08]
; gcrRegs +[x0]
mov w1, w21
@@ -387,7 +387,7 @@ RWD00 dd G_M29172_IG27 - G_M29172_IG02
dd G_M29172_IG34 - G_M29172_IG02
dd G_M29172_IG32 - G_M29172_IG02
dd G_M29172_IG25 - G_M29172_IG02
-RWD24 dd G_M29172_IG18 - G_M29172_IG02
+RWD24 dd G_M29172_IG16 - G_M29172_IG02
dd G_M29172_IG34 - G_M29172_IG02
dd G_M29172_IG34 - G_M29172_IG02
dd G_M29172_IG34 - G_M29172_IG02
+0 (0.00%) : 583632.dasm - System.Text.RegularExpressions.RegexCharClass:CharsToStringClass(System.ReadOnlySpan`1[ushort]):System.String (Tier1)
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; fp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 260240
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 260240
; 8 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -91,19 +91,9 @@ G_M30761_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=44 bbWeight=1 PerfScore 9.00
G_M30761_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w1, #2
- beq G_M30761_IG04
+ bne G_M30761_IG07
;; size=8 bbWeight=1 PerfScore 1.50
-G_M30761_IG03: ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
- cmp w1, #2
- bhi G_M30761_IG11
- mov w0, w1
- adr x2, [@RWD00]
- ldr w2, [x2, x0, LSL #2]
- adr x3, [G_M30761_IG02]
- add x2, x2, x3
- br x2
- ;; size=32 bbWeight=0.38 PerfScore 2.82
-G_M30761_IG04: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M30761_IG03: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w1, #0
bls G_M30761_IG19
ldrh w20, [x19]
@@ -112,7 +102,7 @@ G_M30761_IG04: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
cmp w0, #25
bhi G_M30761_IG11
;; size=28 bbWeight=0.62 PerfScore 4.37
-G_M30761_IG05: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M30761_IG04: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w1, #1
bls G_M30761_IG19
ldrh w2, [x19, #0x02]
@@ -120,7 +110,7 @@ G_M30761_IG05: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
cmp w21, w2
bne G_M30761_IG11
;; size=24 bbWeight=0.62 PerfScore 4.04
-G_M30761_IG06: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M30761_IG05: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[x19]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -139,7 +129,7 @@ G_M30761_IG06: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcrRegs +[x0]
cbz x0, G_M30761_IG17
;; size=44 bbWeight=0.62 PerfScore 7.45
-G_M30761_IG07: ; bbWeight=0.62, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M30761_IG06: ; bbWeight=0.62, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[x1 x22]
ldr x23, [sp, #0x68]
ldp x21, x22, [sp, #0x58]
@@ -147,9 +137,19 @@ G_M30761_IG07: ; bbWeight=0.62, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
ldp fp, lr, [sp], #0x70
ret lr
;; size=20 bbWeight=0.62 PerfScore 3.73
-G_M30761_IG08: ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
+G_M30761_IG07: ; bbWeight=0.38, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, isz
; gcrRegs -[x0]
; byrRegs +[x19]
+ cmp w1, #2
+ bhi G_M30761_IG11
+ mov w0, w1
+ adr x2, [@RWD00]
+ ldr w2, [x2, x0, LSL #2]
+ adr x3, [G_M30761_IG02]
+ add x2, x2, x3
+ br x2
+ ;; size=32 bbWeight=0.38 PerfScore 2.82
+G_M30761_IG08: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
cmp w1, #0
bls G_M30761_IG19
ldrh w20, [x19]
@@ -239,7 +239,7 @@ G_M30761_IG15: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=000
ldr w0, [fp, #0x20] // [V07 loc6+0x10]
ldr w1, [fp, #0x30] // [V07 loc6+0x20]
cmp w0, w1
- bhi G_M30761_IG25
+ bhi G_M30761_IG22
ldr x2, [fp, #0x28] // [V07 loc6+0x18]
; byrRegs +[x2]
ubfiz x3, x0, #1, #32
@@ -255,7 +255,7 @@ G_M30761_IG15: ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=000
blr x1
; byrRegs -[x2]
cmp w23, #3
- blo G_M30761_IG24
+ blo G_M30761_IG25
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
@@ -316,7 +316,7 @@ G_M30761_IG17: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=400000 {x22}
ldr w0, [fp, #0x20] // [V07 loc6+0x10]
ldr w1, [fp, #0x30] // [V07 loc6+0x20]
cmp w0, w1
- bhi G_M30761_IG25
+ bhi G_M30761_IG22
ldr x2, [fp, #0x28] // [V07 loc6+0x18]
; byrRegs +[x2]
ubfiz x3, x0, #1, #32
@@ -391,7 +391,7 @@ G_M30761_IG18: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=400000 {x22}
bl CORINFO_HELP_ASSIGN_REF
; gcrRegs -[x15]
; byrRegs -[x14 x22]
- b G_M30761_IG07
+ b G_M30761_IG06
;; size=164 bbWeight=0.00 PerfScore 0.00
G_M30761_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0]
@@ -439,18 +439,26 @@ G_M30761_IG21: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
;; size=100 bbWeight=0 PerfScore 0.00
G_M30761_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x2 x19]
+ movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+ movk x0, #0xD1FFAB1E LSL #16
+ movk x0, #0xD1FFAB1E LSL #32
+ ldr x0, [x0]
+ blr x0
+ brk_windows #0
+ ;; size=24 bbWeight=0 PerfScore 0.00
+G_M30761_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
;; size=12 bbWeight=0 PerfScore 0.00
-G_M30761_IG23: ; bbWeight=0, epilog, nogc, extend
+G_M30761_IG24: ; bbWeight=0, epilog, nogc, extend
ldr x23, [sp, #0x68]
ldp x21, x22, [sp, #0x58]
ldp x19, x20, [sp, #0x48]
ldp fp, lr, [sp], #0x70
ret lr
;; size=20 bbWeight=0 PerfScore 0.00
-G_M30761_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=480000 {x19 x22}, gcvars, byref
+G_M30761_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=480000 {x19 x22}, gcvars, byref
; byrRegs +[x19 x22]
add x0, fp, #16 // [V07 loc6]
movz x1, #0xD1FFAB1E
@@ -463,17 +471,8 @@ G_M30761_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
blr x2
b G_M30761_IG16
;; size=40 bbWeight=0 PerfScore 0.00
-G_M30761_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[x19 x22]
- movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
- movk x0, #0xD1FFAB1E LSL #16
- movk x0, #0xD1FFAB1E LSL #32
- ldr x0, [x0]
- blr x0
- brk_windows #0
- ;; size=24 bbWeight=0 PerfScore 0.00
G_M30761_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref
- ; byrRegs +[x22]
+ ; byrRegs -[x19]
add x0, fp, #16 // [V07 loc6]
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
@@ -485,9 +484,9 @@ G_M30761_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, b
blr x2
b G_M30761_IG18
;; size=40 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M30761_IG22 - G_M30761_IG02
+RWD00 dd G_M30761_IG23 - G_M30761_IG02
dd G_M30761_IG08 - G_M30761_IG02
- dd G_M30761_IG04 - G_M30761_IG02
+ dd G_M30761_IG03 - G_M30761_IG02
; Total bytes of code 1196, prolog size 40, PerfScore 42.85, instruction count 299, allocated bytes for code 1196 (MethodHash=fc3c87d6) for method System.Text.RegularExpressions.RegexCharClass:CharsToStringClass(System.ReadOnlySpan`1[ushort]):System.String (Tier1)
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| benchmarks.run.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| benchmarks.run_pgo.windows.arm64.checked.mch |
3 |
1 |
0 |
2 |
-4 |
+0 |
| benchmarks.run_tiered.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| coreclr_tests.run.windows.arm64.checked.mch |
2 |
0 |
0 |
2 |
-0 |
+0 |
| libraries.crossgen2.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries.pmi.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries_tests.run.windows.arm64.Release.mch |
6 |
3 |
0 |
3 |
-16 |
+0 |
| librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| realworld.run.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
11 |
4 |
0 |
7 |
-20 |
+0 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.windows.arm64.checked.mch |
24,654 |
4 |
24,650 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.windows.arm64.checked.mch |
96,699 |
49,319 |
47,380 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_tiered.windows.arm64.checked.mch |
49,429 |
37,113 |
12,316 |
0 (0.00%) |
0 (0.00%) |
| coreclr_tests.run.windows.arm64.checked.mch |
605,280 |
369,845 |
235,435 |
5 (0.00%) |
5 (0.00%) |
| libraries.crossgen2.windows.arm64.checked.mch |
275,113 |
15 |
275,098 |
0 (0.00%) |
0 (0.00%) |
| libraries.pmi.windows.arm64.checked.mch |
307,382 |
6 |
307,376 |
0 (0.00%) |
0 (0.00%) |
| libraries_tests.run.windows.arm64.Release.mch |
643,567 |
467,219 |
176,348 |
0 (0.00%) |
0 (0.00%) |
| librariestestsnotieredcompilation.run.windows.arm64.Release.mch |
317,389 |
21,618 |
295,771 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.windows.arm64.checked.mch |
33,259 |
3 |
33,256 |
0 (0.00%) |
0 (0.00%) |
| smoke_tests.nativeaot.windows.arm64.checked.mch |
24,159 |
8 |
24,151 |
0 (0.00%) |
0 (0.00%) |
|
2,376,931 |
945,150 |
1,431,781 |
5 (0.00%) |
5 (0.00%) |
jit-analyze output
benchmarks.run_pgo.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 46555288 (overridden on cmd)
Total bytes of diff: 46555284 (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 : 86302.dasm (-0.53 % of base)
1 total files with Code Size differences (1 improved, 0 regressed), 2 unchanged.
Top method improvements (bytes):
-4 (-0.53 % of base) : 86302.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (percentages):
-4 (-0.53 % of base) : 86302.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
1 total methods with Code Size differences (1 improved, 0 regressed).
coreclr_tests.run.windows.arm64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 505264984 (overridden on cmd)
Total bytes of diff: 505264984 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
Detail diffs
0 total files with Code Size differences (0 improved, 0 regressed), 2 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
libraries_tests.run.windows.arm64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 321619196 (overridden on cmd)
Total bytes of diff: 321619180 (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):
-8 : 399305.dasm (-0.30 % of base)
-4 : 590738.dasm (-0.45 % of base)
-4 : 401473.dasm (-0.45 % of base)
3 total files with Code Size differences (3 improved, 0 regressed), 3 unchanged.
Top method improvements (bytes):
-8 (-0.30 % of base) : 399305.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-4 (-0.45 % of base) : 590738.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
-4 (-0.45 % of base) : 401473.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (percentages):
-4 (-0.45 % of base) : 401473.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-4 (-0.45 % of base) : 590738.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
-8 (-0.30 % of base) : 399305.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
3 total methods with Code Size differences (3 improved, 0 regressed).
windows x64
Diffs are based on 2,416,976 contexts (937,071 MinOpts, 1,479,905 FullOpts).
Overall (-59 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.windows.x64.checked.mch |
34,024,626 |
-22 |
| coreclr_tests.run.windows.x64.checked.mch |
407,341,578 |
-26 |
| libraries_tests.run.windows.x64.Release.mch |
281,668,285 |
-11 |
FullOpts (-59 bytes)
| Collection |
Base size (bytes) |
Diff size (bytes) |
| benchmarks.run_pgo.windows.x64.checked.mch |
20,368,333 |
-22 |
| coreclr_tests.run.windows.x64.checked.mch |
126,875,214 |
-26 |
| libraries_tests.run.windows.x64.Release.mch |
106,974,901 |
-11 |
Example diffs
benchmarks.run_pgo.windows.x64.checked.mch
-38 (-7.09%) : 83080.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -13,7 +13,7 @@
; V01 loc0 [V01,T03] ( 20, 5.00) ref -> rbx class-hnd <System.Text.RegularExpressions.RegexNode>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V03 loc2 [V03,T01] ( 5, 6.00) ubyte -> rsi
-; V04 loc3 [V04,T04] ( 6, 4.00) ubyte -> r14
+; V04 loc3 [V04,T04] ( 4, 4.00) ubyte -> rcx
;* V05 loc4 [V05,T13] ( 0, 0 ) ubyte -> zero-ref
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V07 loc6 [V07,T19] ( 2, 0 ) int -> rsi
@@ -23,7 +23,7 @@
; V11 tmp1 [V11,T14] ( 5, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T10] ( 4, 2.00) int -> rdi "Inline return value spill temp"
; V13 tmp3 [V13,T12] ( 3, 1.43) ref -> rax class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T08] ( 7, 3.00) ref -> rbp class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T08] ( 6, 3.00) ref -> rbp class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T05] ( 2, 4.00) ref -> rbp "CASTCLASS eval op1"
;* V16 tmp6 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V17 tmp7 [V17,T09] ( 3, 3.00) ref -> rbp class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
@@ -38,36 +38,35 @@
; V26 cse0 [V26,T07] ( 5, 3.72) ref -> rsi "CSE - aggressive"
; V27 rat0 [V27,T00] ( 3, 12.00) int -> rsi "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r14
push rdi
push rsi
push rbp
push rbx
- sub rsp, 32
+ sub rsp, 40
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=13 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.50
G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG14
+ je G_M35244_IG25
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG14
+ jne G_M35244_IG25
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=2.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rsi, byte ptr [rbx+0x2E]
lea edx, [rsi-0x03]
cmp edx, 5
- jbe G_M35244_IG24
+ jbe G_M35244_IG21
;; size=17 bbWeight=2.00 PerfScore 7.50
G_M35244_IG04: ; bbWeight=2.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add esi, -24
cmp esi, 10
- ja G_M35244_IG14
+ ja G_M35244_IG25
mov edx, esi
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
@@ -110,22 +109,22 @@ G_M35244_IG09: ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
xor rbp, rbp
; gcrRegs +[rbp]
;; size=2 bbWeight=0.25 PerfScore 0.06
-G_M35244_IG10: ; bbWeight=1.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
test rbp, rbp
- je SHORT G_M35244_IG16
- movzx r14, byte ptr [rbp+0x2E]
- cmp r14d, 24
- je SHORT G_M35244_IG17
- ;; size=16 bbWeight=1.00 PerfScore 4.50
+ je G_M35244_IG29
+ ;; size=9 bbWeight=1.00 PerfScore 1.25
G_M35244_IG11: ; bbWeight=1.00, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi]
- lea ecx, [r14-0x1A]
+ movzx rcx, byte ptr [rbp+0x2E]
+ cmp ecx, 24
+ je SHORT G_M35244_IG14
+ lea edx, [rcx-0x1A]
+ cmp edx, 1
+ jbe SHORT G_M35244_IG14
+ add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG17
- add r14d, -33
- cmp r14d, 1
- jbe SHORT G_M35244_IG17
- ;; size=19 bbWeight=1.00 PerfScore 3.25
+ jbe SHORT G_M35244_IG14
+ ;; size=25 bbWeight=1.00 PerfScore 6.50
G_M35244_IG12: ; bbWeight=1.00, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, rbp
@@ -137,60 +136,16 @@ G_M35244_IG13: ; bbWeight=0.29, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
xor edi, edi
jmp SHORT G_M35244_IG07
;; size=4 bbWeight=0.29 PerfScore 0.64
-G_M35244_IG14: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rsi]
- add rsp, 32
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- pop r14
- ret
- ;; size=11 bbWeight=0.02 PerfScore 0.08
-G_M35244_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx]
- mov rcx, rbx
- ; gcrRegs +[rcx]
- xor edx, edx
- call [System.Text.RegularExpressions.RegexNode:Child(int):System.Text.RegularExpressions.RegexNode:this]
- ; gcrRegs -[rcx rbx] +[rax]
- ; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- jmp G_M35244_IG03
- ;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG16: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax] +[rsi]
- mov rdx, rsi
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; <unknown class>
- call CORINFO_HELP_CHKCASTCLASS
- ; gcrRegs -[rdx rsi] +[rax]
- ; gcr arg pop 0
- cmp edi, dword ptr [rax+0x10]
- jae G_M35244_IG26
- mov rcx, gword ptr [rax+0x08]
- ; gcrRegs +[rcx]
- cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG27
- mov eax, edi
- ; gcrRegs -[rax]
- mov rbp, gword ptr [rcx+8*rax+0x10]
- ; gcrRegs +[rbp]
- movzx r14, byte ptr [rbp+0x2E]
- cmp r14d, 24
- jne SHORT G_M35244_IG11
- ;; size=58 bbWeight=0 PerfScore 0.00
-G_M35244_IG17: ; bbWeight=0, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx]
+G_M35244_IG14: ; bbWeight=0, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rsi] +[rbp]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG15
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
je SHORT G_M35244_IG12
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG18: ; bbWeight=0, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=0, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -221,9 +176,9 @@ G_M35244_IG18: ; bbWeight=0, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {},
call [System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this]
; gcrRegs -[rcx rbx rsi r8]
; gcr arg pop 0
- jmp G_M35244_IG12
- ;; size=69 bbWeight=0 PerfScore 0.00
-G_M35244_IG19: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M35244_IG12
+ ;; size=66 bbWeight=0 PerfScore 0.00
+G_M35244_IG16: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp] +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -232,9 +187,9 @@ G_M35244_IG19: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov esi, eax
mov edi, 1
- jmp SHORT G_M35244_IG21
+ jmp SHORT G_M35244_IG18
;; size=18 bbWeight=0 PerfScore 0.00
-G_M35244_IG20: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG17: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
mov edx, edi
@@ -249,20 +204,20 @@ G_M35244_IG20: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc edi
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG21: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG18: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp edi, esi
- jl SHORT G_M35244_IG20
+ jl SHORT G_M35244_IG17
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG14
- jmp G_M35244_IG15
- ;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG22: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ je SHORT G_M35244_IG25
+ jmp SHORT G_M35244_IG27
+ ;; size=12 bbWeight=0 PerfScore 0.00
+G_M35244_IG19: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x20]
mov dword ptr [rbx+0x24], ecx
;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG23: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG20: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x24], 1
- je G_M35244_IG15
+ je SHORT G_M35244_IG27
mov rcx, rbx
; gcrRegs +[rcx]
call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this]
@@ -271,56 +226,98 @@ G_M35244_IG23: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rbx, rax
; gcrRegs +[rbx]
test rbx, rbx
- je G_M35244_IG14
+ je SHORT G_M35244_IG25
movzx rsi, byte ptr [rbx+0x2E]
lea ecx, [rsi-0x03]
cmp ecx, 5
ja G_M35244_IG04
- ;; size=48 bbWeight=0 PerfScore 0.00
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ ;; size=40 bbWeight=0 PerfScore 0.00
+G_M35244_IG21: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, epilog, nogc, extend
- add rsp, 32
+G_M35244_IG22: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 40
pop rbx
pop rbp
pop rsi
pop rdi
- pop r14
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=14 bbWeight=0 PerfScore 0.00
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rbx]
...
-6 (-1.47%) : 92473.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[System.Canon],System.Collections.Generic.HashSet`1[System.Canon]):this (Tier1)
@@ -53,12 +53,12 @@ G_M417_IG02: ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M417_IG14
+ je G_M417_IG13
mov ebp, dword ptr [rsi+0x28]
cmp ebp, 1
jne SHORT G_M417_IG09
;; size=21 bbWeight=1 PerfScore 5.50
-G_M417_IG03: ; bbWeight=0.57, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M417_IG03: ; bbWeight=0.57, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
mov rdx, gword ptr [rsi+0x08]
; gcrRegs +[rdx]
@@ -69,26 +69,16 @@ G_M417_IG03: ; bbWeight=0.57, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}
call [<unknown method>]
; gcrRegs -[rcx rdx rbx]
; gcr arg pop 0
- ;; size=20 bbWeight=0.57 PerfScore 4.98
-G_M417_IG04: ; bbWeight=0.69, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- nop
- ;; size=1 bbWeight=0.69 PerfScore 0.17
-G_M417_IG05: ; bbWeight=0.69, epilog, nogc, extend
- add rsp, 72
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.69 PerfScore 2.24
-G_M417_IG06: ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M417_IG07
+ ;; size=22 bbWeight=0.57 PerfScore 6.12
+G_M417_IG04: ; bbWeight=0.10, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi]
mov rbp, rsi
; gcrRegs +[rbp]
cmp dword ptr [rsi+0x28], 2
- jne SHORT G_M417_IG08
+ jne SHORT G_M417_IG06
;; size=9 bbWeight=0.10 PerfScore 0.44
-G_M417_IG07: ; bbWeight=0.78, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M417_IG05: ; bbWeight=0.78, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
mov rdx, rdi
@@ -101,9 +91,9 @@ G_M417_IG07: ; bbWeight=0.78, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs
; gcr arg pop 0
mov rbp, gword ptr [rbp+0x18]
cmp dword ptr [rbp+0x28], 2
- je SHORT G_M417_IG07
+ je SHORT G_M417_IG05
;; size=28 bbWeight=0.78 PerfScore 11.26
-G_M417_IG08: ; bbWeight=0.10, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M417_IG06: ; bbWeight=0.10, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
mov rcx, rbp
; gcrRegs +[rcx]
mov rdx, rdi
@@ -113,12 +103,22 @@ G_M417_IG08: ; bbWeight=0.10, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs
call [System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this]
; gcrRegs -[rcx rdx rbx rbp rdi r8]
; gcr arg pop 0
- jmp SHORT G_M417_IG04
- ;; size=17 bbWeight=0.10 PerfScore 0.60
-G_M417_IG09: ; bbWeight=0.43, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+ ;; size=15 bbWeight=0.10 PerfScore 0.39
+G_M417_IG07: ; bbWeight=0.69, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0.69 PerfScore 0.17
+G_M417_IG08: ; bbWeight=0.69, epilog, nogc, extend
+ add rsp, 72
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0.69 PerfScore 2.24
+G_M417_IG09: ; bbWeight=0.43, gcVars=0000000000000000 {}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx rdi]
cmp ebp, 17
- ja SHORT G_M417_IG04
+ ja SHORT G_M417_IG07
mov ecx, ebp
lea rdx, [reloc @RWD00]
mov edx, dword ptr [rdx+4*rcx]
@@ -137,9 +137,9 @@ G_M417_IG10: ; bbWeight=0.02, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=000
call [System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this]
; gcrRegs -[rcx rdx rbx rdi r8]
; gcr arg pop 0
- jmp SHORT G_M417_IG04
+ jmp SHORT G_M417_IG07
;; size=20 bbWeight=0.02 PerfScore 0.16
-G_M417_IG11: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M417_IG11: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi]
mov rcx, gword ptr [rsi+0x10]
; gcrRegs +[rcx]
@@ -161,22 +161,9 @@ G_M417_IG11: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {
call [System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this]
; gcrRegs -[rcx rdx rbx rdi r8]
; gcr arg pop 0
- jmp G_M417_IG04
- ;; size=41 bbWeight=0 PerfScore 0.00
-G_M417_IG12: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rdi]
- mov rdx, gword ptr [rdi+0x80]
- ; gcrRegs +[rdx]
- cmp byte ptr [rbx], bl
- lea r8, [rsp+0x28]
- mov rcx, rbx
- ; gcrRegs +[rcx]
- call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rdi]
- ; gcr arg pop 0
- jmp G_M417_IG04
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M417_IG13: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M417_IG07
+ ;; size=38 bbWeight=0 PerfScore 0.00
+G_M417_IG12: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi]
mov rdx, gword ptr [rdi+0x88]
; gcrRegs +[rdx]
@@ -187,25 +174,25 @@ G_M417_IG13: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {
call [<unknown method>]
; gcrRegs -[rcx rdx rbx rdi]
; gcr arg pop 0
- jmp G_M417_IG04
- ;; size=28 bbWeight=0 PerfScore 0.00
-G_M417_IG14: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M417_IG07
+ ;; size=25 bbWeight=0 PerfScore 0.00
+G_M417_IG13: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rdi]
mov rcx, qword ptr [rsi]
mov rdx, qword ptr [rcx+0x38]
mov rdx, qword ptr [rdx]
mov rdx, qword ptr [rdx+0x40]
test rdx, rdx
- je SHORT G_M417_IG15
- jmp SHORT G_M417_IG16
+ je SHORT G_M417_IG14
+ jmp SHORT G_M417_IG15
;; size=21 bbWeight=0 PerfScore 0.00
-G_M417_IG15: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+G_M417_IG14: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
mov rdx, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rdx, rax
;; size=18 bbWeight=0 PerfScore 0.00
-G_M417_IG16: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M417_IG15: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, rdx
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -225,17 +212,17 @@ G_M417_IG16: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {
mov rdx, qword ptr [rdx]
mov rax, qword ptr [rdx+0x48]
test rax, rax
- je SHORT G_M417_IG17
+ je SHORT G_M417_IG16
mov rcx, rax
- jmp SHORT G_M417_IG18
+ jmp SHORT G_M417_IG17
;; size=57 bbWeight=0 PerfScore 0.00
-G_M417_IG17: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M417_IG16: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
mov rdx, 0xD1FFAB1E ; global ptr
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
; gcr arg pop 0
mov rcx, rax
;; size=18 bbWeight=0 PerfScore 0.00
-G_M417_IG18: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M417_IG17: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
mov rdx, rbp
; gcrRegs +[rdx]
mov r8, rdi
@@ -245,29 +232,42 @@ G_M417_IG18: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=00
call [System.Threading.StackHelper:CallOnEmptyStack[System.__Canon,System.__Canon](System.Action`2[System.__Canon,System.__Canon],System.__Canon,System.__Canon)]
; gcrRegs -[rdx rbx rbp rdi r8-r9]
; gcr arg pop 0
- jmp G_M417_IG04
+ jmp G_M417_IG07
;; size=20 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M417_IG04 - G_M417_IG02
+G_M417_IG18: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+ ; gcrRegs +[rbx rdi]
+ mov rdx, gword ptr [rdi+0x80]
+ ; gcrRegs +[rdx]
+ cmp byte ptr [rbx], bl
+ lea r8, [rsp+0x28]
+ mov rcx, rbx
+ ; gcrRegs +[rcx]
+ call [<unknown method>]
+ ; gcrRegs -[rcx rdx rbx rdi]
+ ; gcr arg pop 0
+ jmp G_M417_IG07
+ ;; size=28 bbWeight=0 PerfScore 0.00
+RWD00 dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG03 - G_M417_IG02
- dd G_M417_IG06 - G_M417_IG02
+ dd G_M417_IG04 - G_M417_IG02
dd G_M417_IG10 - G_M417_IG02
dd G_M417_IG11 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG13 - G_M417_IG02
- dd G_M417_IG13 - G_M417_IG02
- dd G_M417_IG13 - G_M417_IG02
- dd G_M417_IG13 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG12 - G_M417_IG02
dd G_M417_IG12 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
- dd G_M417_IG04 - G_M417_IG02
+ dd G_M417_IG12 - G_M417_IG02
+ dd G_M417_IG12 - G_M417_IG02
+ dd G_M417_IG18 - G_M417_IG02
+ dd G_M417_IG18 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
+ dd G_M417_IG07 - G_M417_IG02
dd G_M417_IG10 - G_M417_IG02
-; Total bytes of code 407, prolog size 13, PerfScore 34.48, instruction count 113, allocated bytes for code 407 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
+; Total bytes of code 401, prolog size 13, PerfScore 35.41, instruction count 113, allocated bytes for code 401 (MethodHash=dd76fe5e) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
; ============================================================
Unwind Info:
-8 (-1.40%) : 85267.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -13,22 +13,22 @@
; V01 loc0 [V01,T07] ( 19, 8.00) ref -> rbx class-hnd <System.Text.RegularExpressions.RegexNode>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V03 loc2 [V03,T05] ( 3, 8.93) ubyte -> rax
-; V04 loc3 [V04,T08] ( 4, 7.95) ubyte -> rdx
+; V04 loc3 [V04,T08] ( 4, 7.95) ubyte -> rcx
;* V05 loc4 [V05,T17] ( 0, 0 ) ubyte -> zero-ref
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V07 loc6 [V07,T21] ( 2, 0 ) int -> rsi
; V08 loc7 [V08,T19] ( 5, 0 ) int -> rdi
; V09 loc8 [V09,T20] ( 3, 0 ) ref -> rbx class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V10 OutArgs [V10 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T18] ( 5, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T18] ( 5, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T14] ( 4, 3.98) int -> rdi "Inline return value spill temp"
; V13 tmp3 [V13,T16] ( 3, 2.78) ref -> rax class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T12] ( 6, 5.96) ref -> r14 class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T12] ( 6, 5.96) ref -> rsi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T09] ( 2, 7.95) ref -> rbp "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.41) ref -> rbp class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
; V18 tmp8 [V18,T01] ( 4, 13.29) int -> rdi "Inlining Arg"
-; V19 tmp9 [V19,T03] ( 3, 9.31) ref -> rdx class-hnd "Inlining Arg" <<unknown class>>
+; V19 tmp9 [V19,T03] ( 3, 9.31) ref -> rbp 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,T22] ( 2, 0 ) int -> rcx "Inlining Arg"
;* V22 tmp12 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -36,40 +36,39 @@
; V24 tmp14 [V24,T23] ( 2, 0 ) int -> rdx "argument with side effect"
; V25 tmp15 [V25,T10] ( 5, 7.45) ref -> rbp "CastInstOf QMark result"
; V26 cse0 [V26,T06] ( 6, 8.92) ref -> rsi "CSE - aggressive"
-; V27 rat0 [V27,T02] ( 5, 11.64) ref -> rdx "replacement local"
+; V27 rat0 [V27,T02] ( 5, 11.64) ref -> rbp "replacement local"
; V28 rat1 [V28,T15] ( 3, 3.88) long -> rcx "CSE for expectedClsNode"
; V29 rat2 [V29,T00] ( 3, 17.72) int -> rax "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r14
push rdi
push rsi
push rbp
push rbx
- sub rsp, 32
+ sub rsp, 40
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=13 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.50
G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG20
+ je G_M35244_IG25
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG20
+ jne G_M35244_IG25
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=2.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
- jbe G_M35244_IG23
+ jbe G_M35244_IG21
;; size=16 bbWeight=2.99 PerfScore 11.20
G_M35244_IG04: ; bbWeight=2.95, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG20
+ ja G_M35244_IG25
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
@@ -100,48 +99,47 @@ G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M35244_IG09: ; bbWeight=1.99, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
test rbp, rbp
- jne G_M35244_IG21
+ jne G_M35244_IG20
;; size=9 bbWeight=1.99 PerfScore 2.48
G_M35244_IG10: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
- mov rdx, rsi
- ; gcrRegs +[rdx]
- test rdx, rdx
+ mov rbp, rsi
+ ; gcrRegs +[rbp]
+ test rbp, rbp
jne G_M35244_IG18
;; size=12 bbWeight=1.55 PerfScore 2.33
-G_M35244_IG11: ; bbWeight=1.55, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=1.55, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
- cmp edi, dword ptr [rdx+0x10]
- jae G_M35244_IG25
- mov rcx, gword ptr [rdx+0x08]
+ cmp edi, dword ptr [rbp+0x10]
+ jae G_M35244_IG23
+ mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG26
+ jae G_M35244_IG24
mov edx, edi
- ; gcrRegs -[rdx]
- mov r14, gword ptr [rcx+8*rdx+0x10]
- ; gcrRegs +[r14]
+ mov rsi, gword ptr [rcx+8*rdx+0x10]
+ ; gcrRegs +[rsi]
;; size=29 bbWeight=1.55 PerfScore 19.02
-G_M35244_IG12: ; bbWeight=1.99, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rcx]
- movzx rdx, byte ptr [r14+0x2E]
- cmp edx, 24
+G_M35244_IG12: ; bbWeight=1.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rcx rbp]
+ movzx rcx, byte ptr [rsi+0x2E]
+ cmp ecx, 24
je G_M35244_IG28
- lea ecx, [rdx-0x1A]
- cmp ecx, 1
- jbe G_M35244_IG28
- add edx, -33
+ lea edx, [rcx-0x1A]
cmp edx, 1
jbe G_M35244_IG28
- ;; size=38 bbWeight=1.99 PerfScore 12.92
-G_M35244_IG13: ; bbWeight=1.99, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+ add ecx, -33
+ cmp ecx, 1
+ jbe G_M35244_IG28
+ ;; size=37 bbWeight=1.99 PerfScore 12.92
+G_M35244_IG13: ; bbWeight=1.99, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
- mov rbx, r14
+ mov rbx, rsi
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=8 bbWeight=1.99 PerfScore 4.47
G_M35244_IG14: ; bbWeight=1.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[r14]
+ ; gcrRegs -[rsi]
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
@@ -165,69 +163,65 @@ G_M35244_IG17: ; bbWeight=0.76, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0
mov edi, dword ptr [rax+0x10]
jmp G_M35244_IG06
;; size=8 bbWeight=0.76 PerfScore 3.03
-G_M35244_IG18: ; bbWeight=0.78, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax] +[rdx]
+G_M35244_IG18: ; bbWeight=0.78, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax] +[rbp]
mov rcx, 0xD1FFAB1E ; <unknown class>
- cmp qword ptr [rdx], rcx
+ cmp qword ptr [rbp], rcx
je G_M35244_IG11
- ;; size=19 bbWeight=0.78 PerfScore 3.30
-G_M35244_IG19: ; bbWeight=0.01, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdx]
- jmp SHORT G_M35244_IG22
- ;; size=2 bbWeight=0.01 PerfScore 0.03
-G_M35244_IG20: ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rsi]
- add rsp, 32
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- pop r14
- ret
- ;; size=11 bbWeight=0.02 PerfScore 0.08
-G_M35244_IG21: ; bbWeight=0.44, gcVars=0000000000000000 {}, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rbp]
- mov r14, rbp
- ; gcrRegs +[r14]
- jmp G_M35244_IG12
- ;; size=8 bbWeight=0.44 PerfScore 0.98
-G_M35244_IG22: ; bbWeight=0.39, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbp r14] +[rsi]
+ ;; size=20 bbWeight=0.78 PerfScore 3.30
+G_M35244_IG19: ; bbWeight=0.39, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rdx rsi] +[rax]
; gcr arg pop 0
- mov rdx, rax
- ; gcrRegs +[rdx]
+ mov rbp, rax
+ ; gcrRegs +[rbp]
jmp G_M35244_IG11
;; size=16 bbWeight=0.39 PerfScore 1.36
-G_M35244_IG23: ; bbWeight=0.03, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rdx]
+G_M35244_IG20: ; bbWeight=0.44, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax]
+ mov rsi, rbp
+ ; gcrRegs +[rsi]
+ jmp G_M35244_IG12
+ ;; size=8 bbWeight=0.44 PerfScore 0.98
+G_M35244_IG21: ; bbWeight=0.03, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbp rsi]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=0.03 PerfScore 0.01
-G_M35244_IG24: ; bbWeight=0.03, epilog, nogc, extend
- add rsp, 32
+G_M35244_IG22: ; bbWeight=0.03, epilog, nogc, extend
+ add rsp, 40
pop rbx
pop rbp
pop rsi
pop rdi
- pop r14
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
- ;; size=16 bbWeight=0.03 PerfScore 0.17
-G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=14 bbWeight=0.03 PerfScore 0.15
+G_M35244_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rbx]
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rcx, rbx
...
+5 (+0.70%) : 85291.dasm - System.Text.RegularExpressions.RegexCompiler+<>cDisplayClass158_0:gEmitNode|12(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
@@ -49,30 +49,30 @@ G_M17183_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[rbp]
mov edi, r9d
;; size=39 bbWeight=1 PerfScore 9.83
-G_M17183_IG02: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+G_M17183_IG02: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rsi+0x08]
; gcrRegs +[rax]
mov rax, gword ptr [rax+0x10]
mov rax, gword ptr [rax+0x10]
cmp dword ptr [rax+0x20], 19
- je G_M17183_IG25
- ;; size=22 bbWeight=1 PerfScore 10.00
+ je SHORT G_M17183_IG10
+ ;; size=18 bbWeight=1 PerfScore 10.00
G_M17183_IG03: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M17183_IG30
+ je G_M17183_IG15
test byte ptr [rbx+0x28], 64
- jne G_M17183_IG31
+ jne G_M17183_IG16
;; size=23 bbWeight=1 PerfScore 6.25
G_M17183_IG04: ; bbWeight=1, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
movzx rax, byte ptr [rbx+0x2E]
add eax, -3
cmp eax, 22
- jne SHORT G_M17183_IG08
+ jne SHORT G_M17183_IG06
;; size=12 bbWeight=1 PerfScore 3.50
-G_M17183_IG05: ; bbWeight=0.56, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+G_M17183_IG05: ; bbWeight=0.56, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
movzx r9, dil
mov rcx, rsi
; gcrRegs +[rcx]
@@ -83,24 +83,12 @@ G_M17183_IG05: ; bbWeight=0.56, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitConcatenation|15(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this]
; gcrRegs -[rcx rdx rbx rbp rsi r8]
; gcr arg pop 0
- ;; size=19 bbWeight=0.56 PerfScore 2.24
-G_M17183_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- nop
- ;; size=1 bbWeight=1 PerfScore 0.25
-G_M17183_IG07: ; bbWeight=1, epilog, nogc, extend
- vzeroupper
- add rsp, 80
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- pop r14
- ret
- ;; size=14 bbWeight=1 PerfScore 4.75
-G_M17183_IG08: ; bbWeight=0.44, gcVars=0000000000000000 {}, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M17183_IG08
+ ;; size=21 bbWeight=0.56 PerfScore 3.37
+G_M17183_IG06: ; bbWeight=0.44, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx rbp rsi]
cmp eax, 43
- ja SHORT G_M17183_IG06
+ ja SHORT G_M17183_IG08
mov r8d, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*r8]
@@ -108,7 +96,7 @@ G_M17183_IG08: ; bbWeight=0.44, gcVars=0000000000000000 {}, gcrefRegs=006
add rcx, rdx
jmp rcx
;; size=31 bbWeight=0.44 PerfScore 3.18
-G_M17183_IG09: ; bbWeight=0.44, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M17183_IG07: ; bbWeight=0.44, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
movzx r8, dil
mov rcx, rsi
@@ -120,211 +108,49 @@ G_M17183_IG09: ; bbWeight=0.44, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleChar|16(System.Text.RegularExpressions.RegexNode,ubyte,System.Reflection.Emit.LocalBuilder):this]
; gcrRegs -[rcx rdx rbx rsi r9]
; gcr arg pop 0
- jmp SHORT G_M17183_IG06
- ;; size=21 bbWeight=0.44 PerfScore 2.63
-G_M17183_IG10: ; bbWeight=0, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rbx rbp rsi]
- movzx r9, dil
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- mov r8, rbp
- ; gcrRegs +[r8]
- call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rbp rsi r8]
- ; gcr arg pop 0
- jmp SHORT G_M17183_IG06
- ;; size=21 bbWeight=0 PerfScore 0.00
-G_M17183_IG11: ; bbWeight=0, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rbx rbp rsi]
- movzx r9, dil
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- mov r8, rbp
- ; gcrRegs +[r8]
- call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rbp rsi r8]
- ; gcr arg pop 0
- jmp SHORT G_M17183_IG06
- ;; size=21 bbWeight=0 PerfScore 0.00
-G_M17183_IG12: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rbx rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rsi]
- ; gcr arg pop 0
- jmp SHORT G_M17183_IG06
- ;; size=14 bbWeight=0 PerfScore 0.00
-G_M17183_IG13: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rsi]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG14: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rsi]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG15: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitAlternation|4(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rcx rdx rbx rsi]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG16: ; bbWeight=0, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rbp rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- mov r8, rbp
- ; gcrRegs +[r8]
- call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rbp rsi r8]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M17183_IG17: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [<unknown method>]
- ; gcrRegs -[rcx rdx rbx rsi]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG18: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitBackreferenceConditional|6(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rcx rdx rbx rsi]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG19: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitExpressionConditional|7(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rcx rdx rbx rsi]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG20: ; bbWeight=0, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rbp rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- mov r8, rbp
- ; gcrRegs +[r8]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitCapture|8(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rcx rdx rbx rbp rsi r8]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M17183_IG21: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitPositiveLookaroundAssertion|10(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rcx rdx rbx rsi]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG22: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- call [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitNegativeLookaroundAssertion|11(System.Text.RegularExpressions.RegexNode):this]
- ; gcrRegs -[rcx rdx rbx rsi]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=17 bbWeight=0 PerfScore 0.00
-G_M17183_IG23: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rsi]
- mov rcx, gword ptr [rsi+0x08]
- ; gcrRegs +[rcx]
- mov edx, dword ptr [rsi+0x40]
- call [<unknown method>]
- ; gcrRegs -[rcx rsi]
- ; gcr arg pop 0
- jmp G_M17183_IG06
- ;; size=18 bbWeight=0 PerfScore 0.00
-G_M17183_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs +[rbx rsi]
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rdx, rbx
...
+17 (+3.40%) : 80253.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -51,37 +51,37 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je SHORT G_M35244_IG09
+ je G_M35244_IG25
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG09
- ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG25
+ ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
- jbe G_M35244_IG23
+ jbe G_M35244_IG22
;; size=16 bbWeight=3.97 PerfScore 14.90
-G_M35244_IG04: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG25
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=2.97 PerfScore 22.30
-G_M35244_IG05: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=36 bbWeight=2.97 PerfScore 22.30
+G_M35244_IG05: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG08
- ;; size=9 bbWeight=2.97 PerfScore 9.66
+ je G_M35244_IG17
+ ;; size=13 bbWeight=2.97 PerfScore 9.66
G_M35244_IG06: ; bbWeight=2.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
@@ -90,64 +90,50 @@ G_M35244_IG06: ; bbWeight=2.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG10
+ je SHORT G_M35244_IG08
;; size=23 bbWeight=2.45 PerfScore 6.75
G_M35244_IG07: ; bbWeight=0.88, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG11
+ jmp SHORT G_M35244_IG09
;; size=5 bbWeight=0.88 PerfScore 3.53
-G_M35244_IG08: ; bbWeight=0.52, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=1.57, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- xor edi, edi
- jmp SHORT G_M35244_IG11
- ;; size=4 bbWeight=0.52 PerfScore 1.17
-G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.00 PerfScore 0.01
-G_M35244_IG10: ; bbWeight=1.57, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
mov edi, 1
;; size=5 bbWeight=1.57 PerfScore 0.39
-G_M35244_IG11: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
dec edi
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG14
+ je SHORT G_M35244_IG12
;; size=10 bbWeight=2.97 PerfScore 5.20
-G_M35244_IG12: ; bbWeight=1.49, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.49, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- je SHORT G_M35244_IG14
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1.49 PerfScore 6.32
-G_M35244_IG13: ; bbWeight=0.74, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.74, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
xor rbp, rbp
; gcrRegs +[rbp]
;; size=2 bbWeight=0.74 PerfScore 0.19
-G_M35244_IG14: ; bbWeight=2.97, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2.97, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
test rbp, rbp
- jne SHORT G_M35244_IG19
+ jne SHORT G_M35244_IG18
;; size=5 bbWeight=2.97 PerfScore 3.72
-G_M35244_IG15: ; bbWeight=1.08, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.08, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG16
;; size=8 bbWeight=1.08 PerfScore 1.62
-G_M35244_IG16: ; bbWeight=0.54, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.54, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG16
;; size=16 bbWeight=0.54 PerfScore 2.30
-G_M35244_IG17: ; bbWeight=0.27, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=0.27, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -157,50 +143,55 @@ G_M35244_IG17: ; bbWeight=0.27, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rax
; gcrRegs +[rbp]
;; size=11 bbWeight=0.27 PerfScore 0.41
-G_M35244_IG18: ; bbWeight=1.08, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=1.08, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG34
+ jae G_M35244_IG35
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae SHORT G_M35244_IG25
+ jae SHORT G_M35244_IG24
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
- jmp SHORT G_M35244_IG20
+ jmp SHORT G_M35244_IG19
;; size=27 bbWeight=1.08 PerfScore 15.39
-G_M35244_IG19: ; bbWeight=1.89, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rcx rsi]
+G_M35244_IG17: ; bbWeight=0.52, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rcx rbp]
+ xor edi, edi
+ jmp SHORT G_M35244_IG09
+ ;; size=4 bbWeight=0.52 PerfScore 1.17
+G_M35244_IG18: ; bbWeight=1.89, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rsi] +[rbp]
mov rsi, rbp
; gcrRegs +[rsi]
;; size=3 bbWeight=1.89 PerfScore 0.47
-G_M35244_IG20: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG27
+ je SHORT G_M35244_IG28
;; size=9 bbWeight=2.97 PerfScore 9.66
-G_M35244_IG21: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG27
+ jbe SHORT G_M35244_IG28
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG27
+ jbe SHORT G_M35244_IG28
;; size=16 bbWeight=2.97 PerfScore 9.65
-G_M35244_IG22: ; bbWeight=2.97, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=2.97, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, rsi
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=8 bbWeight=2.97 PerfScore 6.69
-G_M35244_IG23: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG24: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -209,12 +200,23 @@ G_M35244_IG24: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
;; size=14 bbWeight=1 PerfScore 4.25
-G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rbx]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -226,16 +228,16 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rsi]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG28
+ je SHORT G_M35244_IG29
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
- je SHORT G_M35244_IG22
+ je SHORT G_M35244_IG21
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -266,9 +268,9 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
call [System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this]
; gcrRegs -[rcx rbx rdi r8]
; gcr arg pop 0
...
+17 (+3.40%) : 96092.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -51,37 +51,37 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je SHORT G_M35244_IG09
+ je G_M35244_IG25
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG09
- ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG25
+ ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
- jbe G_M35244_IG23
+ jbe G_M35244_IG22
;; size=16 bbWeight=3.97 PerfScore 14.91
-G_M35244_IG04: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG25
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=2.97 PerfScore 22.31
-G_M35244_IG05: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ;; size=36 bbWeight=2.97 PerfScore 22.31
+G_M35244_IG05: ; bbWeight=2.97, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG08
- ;; size=9 bbWeight=2.97 PerfScore 9.67
+ je G_M35244_IG17
+ ;; size=13 bbWeight=2.97 PerfScore 9.67
G_M35244_IG06: ; bbWeight=2.46, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, rsi
; gcrRegs +[rdx]
@@ -90,64 +90,50 @@ G_M35244_IG06: ; bbWeight=2.46, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- je SHORT G_M35244_IG10
+ je SHORT G_M35244_IG08
;; size=23 bbWeight=2.46 PerfScore 6.77
G_M35244_IG07: ; bbWeight=0.89, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
mov edi, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG11
+ jmp SHORT G_M35244_IG09
;; size=5 bbWeight=0.89 PerfScore 3.54
-G_M35244_IG08: ; bbWeight=0.51, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=1.58, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
- xor edi, edi
- jmp SHORT G_M35244_IG11
- ;; size=4 bbWeight=0.51 PerfScore 1.16
-G_M35244_IG09: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.00 PerfScore 0.01
-G_M35244_IG10: ; bbWeight=1.58, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
mov edi, 1
;; size=5 bbWeight=1.58 PerfScore 0.39
-G_M35244_IG11: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG09: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
dec edi
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG14
+ je SHORT G_M35244_IG12
;; size=10 bbWeight=2.97 PerfScore 5.21
-G_M35244_IG12: ; bbWeight=1.49, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.49, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- je SHORT G_M35244_IG14
+ je SHORT G_M35244_IG12
;; size=16 bbWeight=1.49 PerfScore 6.32
-G_M35244_IG13: ; bbWeight=0.74, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG11: ; bbWeight=0.74, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
xor rbp, rbp
; gcrRegs +[rbp]
;; size=2 bbWeight=0.74 PerfScore 0.19
-G_M35244_IG14: ; bbWeight=2.97, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=2.97, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
test rbp, rbp
- jne SHORT G_M35244_IG19
+ jne SHORT G_M35244_IG18
;; size=5 bbWeight=2.97 PerfScore 3.72
-G_M35244_IG15: ; bbWeight=1.08, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG13: ; bbWeight=1.08, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG16
;; size=8 bbWeight=1.08 PerfScore 1.62
-G_M35244_IG16: ; bbWeight=0.54, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG14: ; bbWeight=0.54, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- je SHORT G_M35244_IG18
+ je SHORT G_M35244_IG16
;; size=16 bbWeight=0.54 PerfScore 2.29
-G_M35244_IG17: ; bbWeight=0.27, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=0.27, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -157,50 +143,55 @@ G_M35244_IG17: ; bbWeight=0.27, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rax
; gcrRegs +[rbp]
;; size=11 bbWeight=0.27 PerfScore 0.40
-G_M35244_IG18: ; bbWeight=1.08, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG16: ; bbWeight=1.08, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG34
+ jae G_M35244_IG35
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae SHORT G_M35244_IG25
+ jae SHORT G_M35244_IG24
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
- jmp SHORT G_M35244_IG20
+ jmp SHORT G_M35244_IG19
;; size=27 bbWeight=1.08 PerfScore 15.38
-G_M35244_IG19: ; bbWeight=1.90, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rcx rsi]
+G_M35244_IG17: ; bbWeight=0.51, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rcx rbp]
+ xor edi, edi
+ jmp SHORT G_M35244_IG09
+ ;; size=4 bbWeight=0.51 PerfScore 1.16
+G_M35244_IG18: ; bbWeight=1.90, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rsi] +[rbp]
mov rsi, rbp
; gcrRegs +[rsi]
;; size=3 bbWeight=1.90 PerfScore 0.47
-G_M35244_IG20: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG19: ; bbWeight=2.97, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG27
+ je SHORT G_M35244_IG28
;; size=9 bbWeight=2.97 PerfScore 9.67
-G_M35244_IG21: ; bbWeight=2.93, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG20: ; bbWeight=2.93, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG27
+ jbe SHORT G_M35244_IG28
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG27
+ jbe SHORT G_M35244_IG28
;; size=16 bbWeight=2.93 PerfScore 9.51
-G_M35244_IG22: ; bbWeight=2.97, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=2.97, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
mov rbx, rsi
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=8 bbWeight=2.97 PerfScore 6.69
-G_M35244_IG23: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG24: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG23: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -209,12 +200,23 @@ G_M35244_IG24: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
;; size=14 bbWeight=1 PerfScore 4.25
-G_M35244_IG25: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rcx rbx]
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG26: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG27: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -226,16 +228,16 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax] +[rsi]
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG28
+ je SHORT G_M35244_IG29
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
- je SHORT G_M35244_IG22
+ je SHORT G_M35244_IG21
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -266,9 +268,9 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
call [System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this]
; gcrRegs -[rcx rbx rdi r8]
; gcr arg pop 0
...
coreclr_tests.run.windows.x64.checked.mch
-7 (-1.34%) : 209974.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -55,9 +55,9 @@ G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG21
+ je G_M35244_IG32
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG21
+ jne G_M35244_IG32
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
@@ -68,7 +68,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG21
+ ja G_M35244_IG32
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
@@ -90,7 +90,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- je G_M35244_IG23
+ je G_M35244_IG21
;; size=27 bbWeight=1.55 PerfScore 4.25
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rax+0x10]
@@ -142,11 +142,11 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG31
+ jae G_M35244_IG30
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG32
+ jae G_M35244_IG31
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
@@ -155,13 +155,13 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rcx rbp]
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG24
+ je SHORT G_M35244_IG23
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
;; size=25 bbWeight=2 PerfScore 13.00
G_M35244_IG17: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
@@ -189,33 +189,24 @@ G_M35244_IG20: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=002
; gcrRegs +[rsi]
jmp SHORT G_M35244_IG16
;; size=5 bbWeight=0.72 PerfScore 1.62
-G_M35244_IG21: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rbp rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.17
-G_M35244_IG22: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
- xor edi, edi
- jmp G_M35244_IG08
- ;; size=7 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbp]
mov edi, 1
jmp G_M35244_IG08
;; size=10 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ xor edi, edi
+ jmp G_M35244_IG08
+ ;; size=7 bbWeight=0.45 PerfScore 1.02
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG24
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
je SHORT G_M35244_IG17
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -248,7 +239,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M35244_IG17
;; size=69 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -257,9 +248,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov esi, eax
mov edi, 1
- jmp SHORT G_M35244_IG28
+ jmp SHORT G_M35244_IG27
;; size=18 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
mov edx, edi
@@ -274,20 +265,20 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc edi
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp edi, esi
- jl SHORT G_M35244_IG27
+ jl SHORT G_M35244_IG26
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG21
- jmp SHORT G_M35244_IG33
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ je SHORT G_M35244_IG32
+ jmp SHORT G_M35244_IG34
+ ;; size=12 bbWeight=0 PerfScore 0.00
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x20]
mov dword ptr [rbx+0x24], ecx
;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x24], 1
- je SHORT G_M35244_IG33
+ je SHORT G_M35244_IG34
mov rcx, rbx
; gcrRegs +[rcx]
call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this]
@@ -296,20 +287,31 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rbx, rax
; gcrRegs +[rbx]
test rbx, rbx
- je G_M35244_IG21
+ je SHORT G_M35244_IG32
jmp G_M35244_IG03
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx]
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG33: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG34: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -321,20 +323,20 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 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_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_IG32 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
-; Total bytes of code 523, prolog size 11, PerfScore 108.94, instruction count 145, allocated bytes for code 523 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 516, prolog size 11, PerfScore 106.77, instruction count 146, allocated bytes for code 516 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
-7 (-1.34%) : 241481.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -55,9 +55,9 @@ G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG21
+ je G_M35244_IG32
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG21
+ jne G_M35244_IG32
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
@@ -68,7 +68,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG21
+ ja G_M35244_IG32
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
@@ -90,7 +90,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- je G_M35244_IG23
+ je G_M35244_IG21
;; size=27 bbWeight=1.55 PerfScore 4.25
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rax+0x10]
@@ -142,11 +142,11 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG31
+ jae G_M35244_IG30
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG32
+ jae G_M35244_IG31
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
@@ -155,13 +155,13 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rcx rbp]
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG24
+ je SHORT G_M35244_IG23
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
;; size=25 bbWeight=2 PerfScore 13.00
G_M35244_IG17: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
@@ -189,33 +189,24 @@ G_M35244_IG20: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=002
; gcrRegs +[rsi]
jmp SHORT G_M35244_IG16
;; size=5 bbWeight=0.72 PerfScore 1.62
-G_M35244_IG21: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rbp rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.17
-G_M35244_IG22: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
- xor edi, edi
- jmp G_M35244_IG08
- ;; size=7 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbp]
mov edi, 1
jmp G_M35244_IG08
;; size=10 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ xor edi, edi
+ jmp G_M35244_IG08
+ ;; size=7 bbWeight=0.45 PerfScore 1.02
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG24
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
je SHORT G_M35244_IG17
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -248,7 +239,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M35244_IG17
;; size=69 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -257,9 +248,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov esi, eax
mov edi, 1
- jmp SHORT G_M35244_IG28
+ jmp SHORT G_M35244_IG27
;; size=18 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
mov edx, edi
@@ -274,20 +265,20 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc edi
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp edi, esi
- jl SHORT G_M35244_IG27
+ jl SHORT G_M35244_IG26
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG21
- jmp SHORT G_M35244_IG33
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ je SHORT G_M35244_IG32
+ jmp SHORT G_M35244_IG34
+ ;; size=12 bbWeight=0 PerfScore 0.00
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x20]
mov dword ptr [rbx+0x24], ecx
;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x24], 1
- je SHORT G_M35244_IG33
+ je SHORT G_M35244_IG34
mov rcx, rbx
; gcrRegs +[rcx]
call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this]
@@ -296,20 +287,31 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rbx, rax
; gcrRegs +[rbx]
test rbx, rbx
- je G_M35244_IG21
+ je SHORT G_M35244_IG32
jmp G_M35244_IG03
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx]
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG33: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG34: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -321,20 +323,20 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 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_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_IG32 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
-; Total bytes of code 524, prolog size 11, PerfScore 109.58, instruction count 145, allocated bytes for code 524 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 517, prolog size 11, PerfScore 107.41, instruction count 146, allocated bytes for code 517 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
-7 (-1.34%) : 381761.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -55,9 +55,9 @@ G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG21
+ je G_M35244_IG32
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG21
+ jne G_M35244_IG32
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
@@ -68,7 +68,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG21
+ ja G_M35244_IG32
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
@@ -90,7 +90,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- je G_M35244_IG23
+ je G_M35244_IG21
;; size=27 bbWeight=1.55 PerfScore 4.25
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rax+0x10]
@@ -142,11 +142,11 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG31
+ jae G_M35244_IG30
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG32
+ jae G_M35244_IG31
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
@@ -155,13 +155,13 @@ G_M35244_IG16: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rcx rbp]
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG24
+ je SHORT G_M35244_IG23
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG24
+ jbe SHORT G_M35244_IG23
;; size=25 bbWeight=2 PerfScore 13.00
G_M35244_IG17: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
@@ -189,33 +189,24 @@ G_M35244_IG20: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=002
; gcrRegs +[rsi]
jmp SHORT G_M35244_IG16
;; size=5 bbWeight=0.72 PerfScore 1.62
-G_M35244_IG21: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rbp rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.17
-G_M35244_IG22: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
- xor edi, edi
- jmp G_M35244_IG08
- ;; size=7 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG21: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbp]
mov edi, 1
jmp G_M35244_IG08
;; size=10 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ xor edi, edi
+ jmp G_M35244_IG08
+ ;; size=7 bbWeight=0.45 PerfScore 1.02
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG24
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
je SHORT G_M35244_IG17
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -248,7 +239,7 @@ G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M35244_IG17
;; size=69 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -257,9 +248,9 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov esi, eax
mov edi, 1
- jmp SHORT G_M35244_IG28
+ jmp SHORT G_M35244_IG27
;; size=18 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
mov edx, edi
@@ -274,20 +265,20 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc edi
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp edi, esi
- jl SHORT G_M35244_IG27
+ jl SHORT G_M35244_IG26
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG21
- jmp SHORT G_M35244_IG33
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ je SHORT G_M35244_IG32
+ jmp SHORT G_M35244_IG34
+ ;; size=12 bbWeight=0 PerfScore 0.00
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x20]
mov dword ptr [rbx+0x24], ecx
;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x24], 1
- je SHORT G_M35244_IG33
+ je SHORT G_M35244_IG34
mov rcx, rbx
; gcrRegs +[rcx]
call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this]
@@ -296,20 +287,31 @@ G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rbx, rax
; gcrRegs +[rbx]
test rbx, rbx
- je G_M35244_IG21
+ je SHORT G_M35244_IG32
jmp G_M35244_IG03
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx]
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG33: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG34: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -321,20 +323,20 @@ G_M35244_IG33: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 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_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_IG32 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG34 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
+ dd G_M35244_IG25 - G_M35244_IG02
-; Total bytes of code 524, prolog size 11, PerfScore 109.58, instruction count 145, allocated bytes for code 524 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 517, prolog size 11, PerfScore 107.41, instruction count 146, allocated bytes for code 517 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
-7 (-1.34%) : 2760.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -55,9 +55,9 @@ G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG22
+ je G_M35244_IG33
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG22
+ jne G_M35244_IG33
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
@@ -68,7 +68,7 @@ G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG22
+ ja G_M35244_IG33
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
@@ -90,7 +90,7 @@ G_M35244_IG06: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- je G_M35244_IG24
+ je G_M35244_IG22
;; size=27 bbWeight=1.55 PerfScore 4.25
G_M35244_IG07: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rax+0x10]
@@ -142,13 +142,13 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG32
+ jae G_M35244_IG31
;; size=9 bbWeight=1.28 PerfScore 5.12
G_M35244_IG16: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG33
+ jae G_M35244_IG32
mov edx, edi
mov rsi, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[rsi]
@@ -157,13 +157,13 @@ G_M35244_IG17: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[rcx rbp]
movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG24
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG25
+ jbe SHORT G_M35244_IG24
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG25
+ jbe SHORT G_M35244_IG24
;; size=25 bbWeight=2 PerfScore 13.00
G_M35244_IG18: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
@@ -191,33 +191,24 @@ G_M35244_IG21: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=002
; gcrRegs +[rsi]
jmp SHORT G_M35244_IG17
;; size=5 bbWeight=0.72 PerfScore 1.62
-G_M35244_IG22: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rbp rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.17
-G_M35244_IG23: ; bbWeight=0.45, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
- xor edi, edi
- jmp G_M35244_IG08
- ;; size=7 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG24: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbp]
mov edi, 1
jmp G_M35244_IG08
;; size=10 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG23: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ xor edi, edi
+ jmp G_M35244_IG08
+ ;; size=7 bbWeight=0.45 PerfScore 1.02
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG26
+ je SHORT G_M35244_IG25
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
je SHORT G_M35244_IG18
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG25: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
@@ -250,7 +241,7 @@ G_M35244_IG26: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M35244_IG18
;; size=69 bbWeight=0 PerfScore 0.00
-G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG26: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rsi] +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -259,9 +250,9 @@ G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
mov esi, eax
mov edi, 1
- jmp SHORT G_M35244_IG29
+ jmp SHORT G_M35244_IG28
;; size=18 bbWeight=0 PerfScore 0.00
-G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG27: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rcx, rbx
; gcrRegs +[rcx]
mov edx, edi
@@ -276,20 +267,20 @@ G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
inc edi
;; size=24 bbWeight=0 PerfScore 0.00
-G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG28: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp edi, esi
- jl SHORT G_M35244_IG28
+ jl SHORT G_M35244_IG27
cmp byte ptr [rbx+0x2E], 34
- je G_M35244_IG22
- jmp SHORT G_M35244_IG34
- ;; size=16 bbWeight=0 PerfScore 0.00
-G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ je SHORT G_M35244_IG33
+ jmp SHORT G_M35244_IG35
+ ;; size=12 bbWeight=0 PerfScore 0.00
+G_M35244_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x20]
mov dword ptr [rbx+0x24], ecx
;; size=6 bbWeight=0 PerfScore 0.00
-G_M35244_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG30: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rbx+0x24], 1
- je SHORT G_M35244_IG34
+ je SHORT G_M35244_IG35
mov rcx, rbx
; gcrRegs +[rcx]
call [System.Text.RegularExpressions.RegexNode:FindLastExpressionInLoopForAutoAtomic():System.Text.RegularExpressions.RegexNode:this]
@@ -298,20 +289,31 @@ G_M35244_IG31: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
mov rbx, rax
; gcrRegs +[rbx]
test rbx, rbx
- je G_M35244_IG22
+ je SHORT G_M35244_IG33
jmp G_M35244_IG03
- ;; size=32 bbWeight=0 PerfScore 0.00
-G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=28 bbWeight=0 PerfScore 0.00
+G_M35244_IG31: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx]
call [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M35244_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M35244_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
;; size=5 bbWeight=0 PerfScore 0.00
-G_M35244_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ nop
+ ;; size=1 bbWeight=0 PerfScore 0.00
+G_M35244_IG34: ; bbWeight=0, epilog, nogc, extend
+ add rsp, 40
+ pop rbx
+ pop rbp
+ pop rsi
+ pop rdi
+ ret
+ ;; size=9 bbWeight=0 PerfScore 0.00
+G_M35244_IG35: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -323,20 +325,20 @@ G_M35244_IG34: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=19 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M35244_IG27 - G_M35244_IG02
+RWD00 dd G_M35244_IG26 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG31 - G_M35244_IG02
dd G_M35244_IG30 - G_M35244_IG02
+ dd G_M35244_IG29 - G_M35244_IG02
dd G_M35244_IG05 - G_M35244_IG02
- dd G_M35244_IG22 - G_M35244_IG02
- dd G_M35244_IG34 - G_M35244_IG02
- dd G_M35244_IG34 - G_M35244_IG02
- dd G_M35244_IG34 - G_M35244_IG02
- dd G_M35244_IG27 - G_M35244_IG02
- dd G_M35244_IG27 - G_M35244_IG02
+ dd G_M35244_IG33 - G_M35244_IG02
+ dd G_M35244_IG35 - G_M35244_IG02
+ dd G_M35244_IG35 - G_M35244_IG02
+ dd G_M35244_IG35 - G_M35244_IG02
+ dd G_M35244_IG26 - G_M35244_IG02
+ dd G_M35244_IG26 - G_M35244_IG02
-; Total bytes of code 524, prolog size 11, PerfScore 109.58, instruction count 145, allocated bytes for code 524 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
+; Total bytes of code 517, prolog size 11, PerfScore 107.41, instruction count 146, allocated bytes for code 517 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
; ============================================================
Unwind Info:
-4 (-0.53%) : 234146.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
@@ -102,7 +102,7 @@ G_M37647_IG06: ; bbWeight=98.96, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
mov eax, ecx
movzx r12, byte ptr [r15+rax+0x10]
cmp r12d, 3
- ja SHORT G_M37647_IG09
+ ja SHORT G_M37647_IG08
mov edx, r12d
lea r8, [reloc @RWD00]
mov r8d, dword ptr [r8+4*rdx]
@@ -110,7 +110,7 @@ G_M37647_IG06: ; bbWeight=98.96, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
add r8, r9
jmp r8
;; size=71 bbWeight=98.96 PerfScore 1533.89
-G_M37647_IG07: ; bbWeight=30.67, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M37647_IG07: ; bbWeight=30.67, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
mov r12d, r14d
mov rcx, gword ptr [rbx+8*r12+0x10]
; gcrRegs +[rcx]
@@ -121,9 +121,16 @@ G_M37647_IG07: ; bbWeight=30.67, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
call [EMFloatClass:MultiplyInternalFPF(EMFloatClass+InternalFPF,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF)]
; gcrRegs -[rcx rdx r8]
; gcr arg pop 0
- jmp SHORT G_M37647_IG09
- ;; size=26 bbWeight=30.67 PerfScore 345.00
-G_M37647_IG08: ; bbWeight=18.40, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
+ ;; size=24 bbWeight=30.67 PerfScore 283.67
+G_M37647_IG08: ; bbWeight=98.96, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+ inc r14d
+ cmp r14d, ebp
+ jl SHORT G_M37647_IG06
+ ;; size=8 bbWeight=98.96 PerfScore 148.44
+G_M37647_IG09: ; bbWeight=0.04, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
+ jmp G_M37647_IG17
+ ;; size=5 bbWeight=0.04 PerfScore 0.08
+G_M37647_IG10: ; bbWeight=18.40, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
mov r12d, r14d
mov rcx, gword ptr [rbx+8*r12+0x10]
; gcrRegs +[rcx]
@@ -134,15 +141,8 @@ G_M37647_IG08: ; bbWeight=18.40, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
call [EMFloatClass:DivideInternalFPF(EMFloatClass+InternalFPF,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF)]
; gcrRegs -[rcx rdx r8]
; gcr arg pop 0
- ;; size=24 bbWeight=18.40 PerfScore 170.20
-G_M37647_IG09: ; bbWeight=98.96, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
- inc r14d
- cmp r14d, ebp
- jl G_M37647_IG06
- ;; size=12 bbWeight=98.96 PerfScore 148.44
-G_M37647_IG10: ; bbWeight=0.04, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
- jmp G_M37647_IG17
- ;; size=5 bbWeight=0.04 PerfScore 0.08
+ jmp SHORT G_M37647_IG08
+ ;; size=26 bbWeight=18.40 PerfScore 207.00
G_M37647_IG11: ; bbWeight=25.22, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
mov r12d, r14d
mov rdx, gword ptr [rbx+8*r12+0x10]
@@ -155,7 +155,7 @@ G_M37647_IG11: ; bbWeight=25.22, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
call [EMFloatClass:AddSubInternalFPF(ubyte,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF)]
; gcrRegs -[rdx r8-r9]
; gcr arg pop 0
- jmp SHORT G_M37647_IG09
+ jmp SHORT G_M37647_IG08
;; size=28 bbWeight=25.22 PerfScore 290.06
G_M37647_IG12: ; bbWeight=24.67, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
mov r12d, r14d
@@ -169,7 +169,7 @@ G_M37647_IG12: ; bbWeight=24.67, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefR
call [EMFloatClass:AddSubInternalFPF(ubyte,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF,EMFloatClass+InternalFPF)]
; gcrRegs -[rdx r8-r9]
; gcr arg pop 0
- jmp SHORT G_M37647_IG09
+ jmp SHORT G_M37647_IG08
;; size=31 bbWeight=24.67 PerfScore 283.72
G_M37647_IG13: ; bbWeight=1.00, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
mov eax, r14d
@@ -310,14 +310,14 @@ G_M37647_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
RWD00 dd G_M37647_IG11 - G_M37647_IG02
dd G_M37647_IG12 - G_M37647_IG02
dd G_M37647_IG07 - G_M37647_IG02
- dd G_M37647_IG08 - G_M37647_IG02
+ dd G_M37647_IG10 - G_M37647_IG02
RWD16 dd G_M37647_IG20 - G_M37647_IG02
dd G_M37647_IG21 - G_M37647_IG02
dd G_M37647_IG14 - G_M37647_IG02
dd G_M37647_IG15 - G_M37647_IG02
-; Total bytes of code 752, prolog size 115, PerfScore 2835.82, instruction count 174, allocated bytes for code 752 (MethodHash=73346cf0) for method EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
+; Total bytes of code 748, prolog size 115, PerfScore 2811.29, instruction count 174, allocated bytes for code 748 (MethodHash=73346cf0) for method EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
; ============================================================
Unwind Info:
+6 (+1.17%) : 255404.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -20,10 +20,10 @@
; V08 loc7 [V08,T19] ( 5, 0 ) int -> rdi
; V09 loc8 [V09,T20] ( 3, 0 ) ref -> rbx class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V10 OutArgs [V10 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T18] ( 5, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T18] ( 5, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T15] ( 4, 4.00) int -> rdi "Inline return value spill temp"
; V13 tmp3 [V13,T14] ( 3, 4.18) ref -> rax class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T11] ( 6, 6 ) ref -> rbp class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T11] ( 6, 6 ) ref -> rsi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T07] ( 2, 8.00) ref -> rbp "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 -> rbp class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
@@ -51,31 +51,31 @@ G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=11 bbWeight=1 PerfScore 4.50
-G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je SHORT G_M35244_IG09
+ je G_M35244_IG32
test dword ptr [rbx+0x28], 0x440
- jne SHORT G_M35244_IG09
- ;; size=18 bbWeight=1 PerfScore 6.25
+ jne G_M35244_IG32
+ ;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=3, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
- jbe G_M35244_IG21
+ jbe G_M35244_IG19
;; size=16 bbWeight=3 PerfScore 11.25
-G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG04: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja SHORT G_M35244_IG09
+ ja G_M35244_IG32
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M35244_IG02
add rcx, rax
jmp rcx
- ;; size=32 bbWeight=2 PerfScore 15.00
+ ;; size=36 bbWeight=2 PerfScore 15.00
G_M35244_IG05: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi]
mov edi, 1
@@ -85,48 +85,35 @@ G_M35244_IG06: ; bbWeight=2.00, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG11
+ je SHORT G_M35244_IG09
;; size=10 bbWeight=2.00 PerfScore 3.50
G_M35244_IG07: ; bbWeight=1.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rbp], rdx
- je SHORT G_M35244_IG11
+ je SHORT G_M35244_IG09
;; size=16 bbWeight=1.00 PerfScore 4.25
-G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG08: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
- jmp SHORT G_M35244_IG10
- ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG09: ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rsi]
- add rsp, 40
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- ret
- ;; size=9 bbWeight=0.67 PerfScore 2.17
-G_M35244_IG10: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
xor rbp, rbp
; gcrRegs +[rbp]
;; size=2 bbWeight=0.50 PerfScore 0.13
-G_M35244_IG11: ; bbWeight=2.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG09: ; bbWeight=2.00, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref
test rbp, rbp
- jne G_M35244_IG23
+ jne G_M35244_IG21
;; size=9 bbWeight=2.00 PerfScore 2.50
-G_M35244_IG12: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=1.28, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG13
;; size=8 bbWeight=1.28 PerfScore 1.92
-G_M35244_IG13: ; bbWeight=0.64, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=0.64, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
cmp qword ptr [rbp], rcx
- je SHORT G_M35244_IG15
+ je SHORT G_M35244_IG13
;; size=16 bbWeight=0.64 PerfScore 2.72
-G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG12: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
@@ -136,43 +123,44 @@ G_M35244_IG14: ; bbWeight=0.32, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rax
; gcrRegs +[rbp]
;; size=12 bbWeight=0.32 PerfScore 1.12
-G_M35244_IG15: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
+G_M35244_IG13: ; bbWeight=1.28, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp edi, dword ptr [rbp+0x10]
- jae G_M35244_IG32
+ jae G_M35244_IG30
mov rcx, gword ptr [rbp+0x08]
; gcrRegs +[rcx]
cmp edi, dword ptr [rcx+0x08]
- jae G_M35244_IG33
+ jae G_M35244_IG31
mov edx, edi
- mov rbp, gword ptr [rcx+8*rdx+0x10]
+ mov rsi, gword ptr [rcx+8*rdx+0x10]
+ ; gcrRegs +[rsi]
;; size=29 bbWeight=1.28 PerfScore 15.68
-G_M35244_IG16: ; bbWeight=2, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx]
- movzx rcx, byte ptr [rbp+0x2E]
+G_M35244_IG14: ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rcx rbp]
+ movzx rcx, byte ptr [rsi+0x2E]
cmp ecx, 24
- je SHORT G_M35244_IG25
+ je SHORT G_M35244_IG23
lea edx, [rcx-0x1A]
cmp edx, 1
- jbe SHORT G_M35244_IG25
+ jbe SHORT G_M35244_IG23
add ecx, -33
cmp ecx, 1
- jbe SHORT G_M35244_IG25
+ jbe SHORT G_M35244_IG23
;; size=25 bbWeight=2 PerfScore 13.00
-G_M35244_IG17: ; bbWeight=2, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
+G_M35244_IG15: ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx]
- mov rbx, rbp
+ mov rbx, rsi
; gcrRegs +[rbx]
jmp G_M35244_IG03
;; size=8 bbWeight=2 PerfScore 4.50
-G_M35244_IG18: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rbp]
+G_M35244_IG16: ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rsi]
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG24
+ je SHORT G_M35244_IG22
;; size=9 bbWeight=2 PerfScore 6.50
-G_M35244_IG19: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG17: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -182,16 +170,16 @@ G_M35244_IG19: ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
test rax, rax
je G_M35244_IG05
;; size=27 bbWeight=1.55 PerfScore 4.25
-G_M35244_IG20: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
+G_M35244_IG18: ; bbWeight=1.09, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
mov edi, dword ptr [rax+0x10]
jmp G_M35244_IG06
;; size=8 bbWeight=1.09 PerfScore 4.36
-G_M35244_IG21: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35244_IG19: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rsi]
mov rcx, rbx
; gcrRegs +[rcx]
;; size=3 bbWeight=1 PerfScore 0.25
-G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
+G_M35244_IG20: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
pop rbp
@@ -200,38 +188,39 @@ G_M35244_IG22: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexNode:MakeLoopAtomic():this]
; gcr arg pop 0
;; size=14 bbWeight=1 PerfScore 4.25
-G_M35244_IG23: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG21: ; bbWeight=0.72, gcVars=0000000000000000 {}, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rcx] +[rbp]
- jmp SHORT G_M35244_IG16
- ;; size=2 bbWeight=0.72 PerfScore 1.44
-G_M35244_IG24: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbp] +[rsi]
+ mov rsi, rbp
+ ; gcrRegs +[rsi]
+ jmp SHORT G_M35244_IG14
+ ;; size=5 bbWeight=0.72 PerfScore 1.62
+G_M35244_IG22: ; bbWeight=0.45, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbp]
xor edi, edi
jmp G_M35244_IG06
;; size=7 bbWeight=0.45 PerfScore 1.02
-G_M35244_IG25: ; bbWeight=0, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rsi] +[rbp]
+G_M35244_IG23: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp gword ptr [rbx+0x18], 0
- je SHORT G_M35244_IG26
+ je SHORT G_M35244_IG24
mov rcx, gword ptr [rbx+0x18]
; gcrRegs +[rcx]
cmp byte ptr [rcx+0x2E], 32
- je SHORT G_M35244_IG17
+ je SHORT G_M35244_IG15
;; size=17 bbWeight=0 PerfScore 0.00
-G_M35244_IG26: ; bbWeight=0, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
+G_M35244_IG24: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
; gcr arg pop 0
- mov rsi, rax
- ; gcrRegs +[rsi]
- mov ecx, dword ptr [rbp+0x28]
- mov byte ptr [rsi+0x2E], 32
- mov dword ptr [rsi+0x28], ecx
- mov rcx, rsi
+ mov rdi, rax
+ ; gcrRegs +[rdi]
+ mov ecx, dword ptr [rsi+0x28]
+ mov byte ptr [rdi+0x2E], 32
+ mov dword ptr [rdi+0x28], ecx
+ mov rcx, rdi
; gcrRegs +[rcx]
- mov rdx, rbp
+ mov rdx, rsi
; gcrRegs +[rdx]
call [System.Text.RegularExpressions.RegexNode:AddChild(System.Text.RegularExpressions.RegexNode):this]
; gcrRegs -[rax rcx rdx]
...
libraries_tests.run.windows.x64.Release.mch
-27 (-1.38%) : 424451.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
@@ -101,10 +101,10 @@ G_M38617_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=37 bbWeight=1 PerfScore 10.50
G_M38617_IG02: ; bbWeight=1, gcVars=0000000000000100 {V00}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
test rbx, rbx
- je G_M38617_IG20
+ je G_M38617_IG38
mov rcx, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+SequenceType
cmp qword ptr [rsi], rcx
- jne G_M38617_IG21
+ jne G_M38617_IG39
mov rcx, gword ptr [rsi+0x10]
; gcrRegs +[rcx]
mov rax, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+ItemType
@@ -125,9 +125,9 @@ G_M38617_IG04: ; bbWeight=0.10, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0
;; size=12 bbWeight=0.10 PerfScore 0.73
G_M38617_IG05: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
cmp edi, 2
- jg G_M38617_IG23
+ jg G_M38617_IG14
cmp edi, 1
- jne G_M38617_IG22
+ jne G_M38617_IG13
mov rcx, rbx
; gcrRegs +[rcx]
call <unknown method>
@@ -142,7 +142,7 @@ G_M38617_IG05: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcr arg pop 0
mov rcx, 0xD1FFAB1E ; System.Xml.Xsl.XmlQueryTypeFactory+ItemType
cmp qword ptr [rax], rcx
- jne G_M38617_IG17
+ jne G_M38617_IG12
;; size=57 bbWeight=1 PerfScore 11.50
G_M38617_IG06: ; bbWeight=0.90, gcrefRegs=4009 {rax rbx r14}, byrefRegs=0000 {}, byref
mov r15d, dword ptr [rax+0x0C]
@@ -150,18 +150,18 @@ G_M38617_IG06: ; bbWeight=0.90, gcrefRegs=4009 {rax rbx r14}, byrefRegs=0
G_M38617_IG07: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
cmp r15d, 1
- je G_M38617_IG37
+ je G_M38617_IG35
cmp r15d, 2
- je G_M38617_IG36
+ je G_M38617_IG34
add r15d, -12
- jne G_M38617_IG31
+ jne G_M38617_IG29
;; size=30 bbWeight=1 PerfScore 3.75
G_M38617_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V00}
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
cmp r14, rcx
- je G_M38617_IG34
+ je G_M38617_IG32
mov rcx, 0xD1FFAB1E ; System.Xml.Schema.XmlAtomicValue
; gcrRegs -[rcx]
call CORINFO_HELP_NEWSFAST
@@ -222,7 +222,7 @@ G_M38617_IG08: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=4008 {
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
cmp edx, dword ptr [rcx+0x08]
- jge G_M38617_IG35
+ jge G_M38617_IG33
;; size=182 bbWeight=1 PerfScore 30.50
G_M38617_IG09: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
@@ -237,81 +237,22 @@ G_M38617_IG09: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
call CORINFO_HELP_ARRADDR_ST
; gcrRegs -[rcx r8 r14]
; gcr arg pop 0
- jmp G_M38617_IG18
- ;; size=31 bbWeight=1 PerfScore 9.00
-G_M38617_IG10: ; bbWeight=0, gcVars=0000000000140100 {V00 V06 V09}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rbx]
- ; GC ptr vars +{V00 V06 V08 V09 V18 V20}
- jmp SHORT G_M38617_IG12
- ;; size=2 bbWeight=0 PerfScore 0.00
-G_M38617_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, gword ptr [rbp-0x38]
- ; gcrRegs +[rcx]
- mov r11, 0xD1FFAB1E ; code for <unknown method>
- call [r11]<unknown method>
- ; gcrRegs -[rcx] +[rax]
- ; gcr arg pop 0
- mov rcx, rax
- ; gcrRegs +[rcx]
- call [System.Xml.Xsl.Runtime.XmlQueryRuntime:EnsureNavigator(System.Object):System.Xml.XPath.XPathNavigator]
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- mov rdx, rax
- ; gcrRegs +[rdx]
- mov rcx, gword ptr [rbp-0x30]
- ; gcrRegs +[rcx]
- call [System.Xml.Xsl.Runtime.XmlQuerySequence`1[System.__Canon]:Add(System.__Canon):this]
- ; gcrRegs -[rax rcx rdx]
- ; gcr arg pop 0
- ;; size=39 bbWeight=0 PerfScore 0.00
-G_M38617_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, gword ptr [rbp-0x38]
- ; gcrRegs +[rcx]
- mov r11, 0xD1FFAB1E ; code for <unknown method>
- call [r11]<unknown method>
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- test eax, eax
- jne SHORT G_M38617_IG11
- ;; size=21 bbWeight=0 PerfScore 0.00
-G_M38617_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, rsp
- call G_M38617_IG40
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M38617_IG14: ; bbWeight=0, nogc, extend
- nop
- ;; size=1 bbWeight=0 PerfScore 0.00
-G_M38617_IG15: ; bbWeight=0, gcVars=0000000000040100 {V00 V06}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; GC ptr vars -{V08 V09 V18 V20}
- mov rcx, gword ptr [rbp-0x30]
- ; gcrRegs +[rcx]
- mov rbx, rcx
- ; gcrRegs +[rbx]
- ;; size=7 bbWeight=0 PerfScore 0.00
-G_M38617_IG16: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rcx]
- ; GC ptr vars -{V06}
- mov rdx, rbx
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; System.Xml.Xsl.Runtime.XmlQueryNodeSequence
- call CORINFO_HELP_CHKCASTCLASS
- ; gcrRegs -[rdx rbx] +[rax]
- ; gcr arg pop 0
- mov rcx, rax
- ; gcrRegs +[rcx]
- mov rax, gword ptr [rbp+0x10]
- mov rdx, gword ptr [rax+0x68]
- ; gcrRegs +[rdx]
- cmp dword ptr [rcx], ecx
- ; GC ptr vars -{V00}
- call [System.Xml.Xsl.Runtime.XmlQueryNodeSequence:DocOrderDistinct(System.Collections.Generic.IComparer`1[System.Xml.XPath.XPathNavigator]):System.Xml.Xsl.Runtime.XmlQueryNodeSequence:this]
- ; gcrRegs -[rcx rdx]
- ; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- jmp SHORT G_M38617_IG18
- ;; size=42 bbWeight=0 PerfScore 0.00
-G_M38617_IG17: ; bbWeight=0.10, gcVars=0000000000000100 {V00}, gcrefRegs=4009 {rax rbx r14}, byrefRegs=0000 {}, gcvars, byref
+ ;; size=26 bbWeight=1 PerfScore 7.00
+G_M38617_IG10: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+ mov rax, rbx
+ ; gcrRegs +[rax]
+ ;; size=3 bbWeight=1 PerfScore 0.25
+G_M38617_IG11: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 56
+ pop rbx
+ pop rsi
+ pop rdi
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=13 bbWeight=1 PerfScore 4.25
+G_M38617_IG12: ; bbWeight=0.10, gcVars=0000000000000100 {V00}, gcrefRegs=4009 {rax rbx r14}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[r14]
; GC ptr vars +{V00 V08}
mov rcx, rax
@@ -325,99 +266,34 @@ G_M38617_IG17: ; bbWeight=0.10, gcVars=0000000000000100 {V00}, gcrefRegs=
mov r15d, eax
jmp G_M38617_IG07
;; size=21 bbWeight=0.10 PerfScore 0.95
-G_M38617_IG18: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[r14]
- ; GC ptr vars -{V00 V08}
- mov rax, rbx
- ; gcrRegs +[rax]
- ;; size=3 bbWeight=1 PerfScore 0.25
-G_M38617_IG19: ; bbWeight=1, epilog, nogc, extend
- add rsp, 56
- pop rbx
- pop rsi
- pop rdi
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=13 bbWeight=1 PerfScore 4.25
-G_M38617_IG20: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rbx]
- call [<unknown method>]
- ; gcrRegs +[rax]
- ; gcr arg pop 0
- mov rdi, rax
- ; gcrRegs +[rdi]
- mov rcx, 0xD1FFAB1E ; <unknown class>
- mov edx, 1
- call CORINFO_HELP_NEWARR_1_OBJ
- ; gcr arg pop 0
- mov rbx, rax
- ; gcrRegs +[rbx]
- mov rcx, 0xD1FFAB1E
- ; gcrRegs +[rcx]
- mov gword ptr [rbx+0x10], rcx
- mov rcx, 0xD1FFAB1E ; <unknown class>
- ; gcrRegs -[rcx]
- call CORINFO_HELP_NEWSFAST
- ; gcr arg pop 0
- mov r15, rax
- ; gcrRegs +[r15]
- mov rcx, r15
- ; gcrRegs +[rcx]
- mov rdx, rdi
- ; gcrRegs +[rdx]
- mov r8, rbx
- ; gcrRegs +[r8]
- call [<unknown method>]
- ; gcrRegs -[rax rcx rdx rbx rdi r8]
- ; gcr arg pop 0
- mov rcx, r15
- ; gcrRegs +[rcx]
- call CORINFO_HELP_THROW
- ; gcrRegs -[rcx r15]
- ; gcr arg pop 0
- ;; size=87 bbWeight=0 PerfScore 0.00
-G_M38617_IG21: ; bbWeight=0, gcVars=0000000000000100 {V00}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs +[rbx rsi]
- ; GC ptr vars +{V00 V08}
- mov rcx, rsi
- ; gcrRegs +[rcx]
- mov rax, qword ptr [rsi]
- mov rax, qword ptr [rax+0x60]
- call [rax+0x38]<unknown method>
- ; gcrRegs -[rcx]
- ; gcr arg pop 0
- mov edi, eax
- jmp G_M38617_IG05
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M38617_IG22: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M38617_IG13: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[r14] +[rsi]
cmp edi, 2
- jne SHORT G_M38617_IG18
+ jne SHORT G_M38617_IG10
mov rcx, rsi
; gcrRegs +[rcx]
call [System.Xml.Xsl.XmlQueryType:get_IsSingleton():ubyte:this]
; gcrRegs -[rcx rsi]
; gcr arg pop 0
test eax, eax
- jne G_M38617_IG18
- jmp G_M38617_IG26
- ;; size=27 bbWeight=0 PerfScore 0.00
-G_M38617_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
...
-4 (-0.62%) : 419683.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
@@ -13,22 +13,22 @@
; V01 loc0 [V01,T02] ( 20, 8.44) ref -> rbx class-hnd <System.Text.RegularExpressions.RegexNode>
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V03 loc2 [V03,T03] ( 3, 8.44) ubyte -> rax
-; V04 loc3 [V04,T07] ( 4, 6.56) ubyte -> r14
+; V04 loc3 [V04,T07] ( 4, 6.56) ubyte -> rcx
;* V05 loc4 [V05,T17] ( 0, 0 ) ubyte -> zero-ref
;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V07 loc6 [V07,T32] ( 2, 0 ) int -> rsi
; V08 loc7 [V08,T30] ( 5, 0 ) int -> rdi
; V09 loc8 [V09,T31] ( 3, 0 ) ref -> rbx class-hnd exact <System.Text.RegularExpressions.RegexNode>
; V10 OutArgs [V10 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T18] ( 5, 1.11) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
+; V11 tmp1 [V11,T18] ( 5, 1.11) ref -> rdi class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexNode>
; V12 tmp2 [V12,T14] ( 4, 3.33) int -> rdi "Inline return value spill temp"
; V13 tmp3 [V13,T15] ( 3, 2.91) ref -> rax class-hnd "Inline stloc first use temp" <<unknown class>>
-; V14 tmp4 [V14,T12] ( 6, 5.22) ref -> rbp class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
+; V14 tmp4 [V14,T12] ( 6, 5.22) ref -> rsi class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
; V15 tmp5 [V15,T06] ( 2, 6.67) ref -> rbp "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 -> rbp class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
; V18 tmp8 [V18,T01] ( 4, 9.26) int -> rdi "Inlining Arg"
-; V19 tmp9 [V19,T10] ( 3, 5.93) ref -> rdx class-hnd "Inlining Arg" <<unknown class>>
+; V19 tmp9 [V19,T10] ( 3, 5.93) ref -> rbp 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.44) int -> rcx "Inlining Arg"
;* V22 tmp12 [V22 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -37,49 +37,48 @@
;* V25 tmp15 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
; V26 tmp16 [V26,T24] ( 3, 0.53) ref -> rbx class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
; V27 tmp17 [V27,T22] ( 3, 0.79) ref -> rbx class-hnd "Inlining Arg" <<unknown class>>
-; V28 tmp18 [V28,T11] ( 3, 5.93) ref -> rdx "arr expr"
+; V28 tmp18 [V28,T11] ( 3, 5.93) ref -> rcx "arr expr"
; V29 tmp19 [V29,T27] ( 2, 0.44) int -> rdx "argument with side effect"
-; V30 tmp20 [V30,T23] ( 3, 0.79) ref -> rdx "arr expr"
+; V30 tmp20 [V30,T23] ( 3, 0.79) ref -> rcx "arr expr"
; V31 tmp21 [V31,T08] ( 5, 6.25) ref -> rbp "CastInstOf QMark result"
; V32 tmp22 [V32,T21] ( 5, 0.83) ref -> rbx "CastInstOf QMark result"
; V33 cse0 [V33,T04] ( 10, 8.01) ref -> rsi multi-def "CSE - aggressive"
; V34 cse1 [V34,T28] ( 3, 0.33) ref -> rcx "CSE - conservative"
-; V35 rat0 [V35,T05] ( 5, 7.41) ref -> rdx "replacement local"
+; V35 rat0 [V35,T05] ( 5, 7.41) ref -> rbp "replacement local"
; V36 rat1 [V36,T16] ( 3, 2.47) long -> rcx "CSE for expectedClsNode"
; V37 rat2 [V37,T19] ( 5, 0.99) ref -> rbx "replacement local"
; V38 rat3 [V38,T29] ( 3, 0.33) long -> rcx "CSE for expectedClsNode"
; V39 rat4 [V39,T00] ( 3, 16.00) int -> rax "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M35244_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- push r14
push rdi
push rsi
push rbp
push rbx
- sub rsp, 32
+ sub rsp, 40
mov rbx, rcx
; gcrRegs +[rbx]
- ;; size=13 bbWeight=1 PerfScore 5.50
+ ;; size=11 bbWeight=1 PerfScore 4.50
G_M35244_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
call <unknown method>
; gcr arg pop 0
test eax, eax
- je G_M35244_IG20
+ je G_M35244_IG39
test dword ptr [rbx+0x28], 0x440
- jne G_M35244_IG20
+ jne G_M35244_IG39
;; size=26 bbWeight=1 PerfScore 6.25
G_M35244_IG03: ; bbWeight=2.89, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
movzx rax, byte ptr [rbx+0x2E]
lea ecx, [rax-0x03]
cmp ecx, 5
- jbe G_M35244_IG33
+ jbe G_M35244_IG31
;; size=16 bbWeight=2.89 PerfScore 10.83
G_M35244_IG04: ; bbWeight=2.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
add eax, -24
cmp eax, 10
- ja G_M35244_IG20
+ ja G_M35244_IG39
mov edx, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
@@ -87,13 +86,13 @@ G_M35244_IG04: ; bbWeight=2.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
add rcx, rax
jmp rcx
;; size=36 bbWeight=2.67 PerfScore 20.00
-G_M35244_IG05: ; bbWeight=1.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG05: ; bbWeight=1.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov rsi, gword ptr [rbx+0x08]
; gcrRegs +[rsi]
test rsi, rsi
- je SHORT G_M35244_IG16
- ;; size=9 bbWeight=1.67 PerfScore 5.42
-G_M35244_IG06: ; bbWeight=1.17, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ je G_M35244_IG21
+ ;; size=13 bbWeight=1.67 PerfScore 5.42
+G_M35244_IG06: ; bbWeight=1.17, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
mov rdx, rsi
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; <unknown class>
@@ -101,8 +100,8 @@ G_M35244_IG06: ; bbWeight=1.17, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rdx] +[rax]
; gcr arg pop 0
test rax, rax
- jne SHORT G_M35244_IG11
- ;; size=23 bbWeight=1.17 PerfScore 3.22
+ jne G_M35244_IG20
+ ;; size=27 bbWeight=1.17 PerfScore 3.22
G_M35244_IG07: ; bbWeight=0.60, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov edi, 1
@@ -112,141 +111,129 @@ G_M35244_IG08: ; bbWeight=1.67, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov rbp, rsi
; gcrRegs +[rbp]
test rbp, rbp
- je SHORT G_M35244_IG13
+ je SHORT G_M35244_IG11
;; size=10 bbWeight=1.67 PerfScore 2.92
G_M35244_IG09: ; bbWeight=0.83, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
- mov rcx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
- cmp qword ptr [rbp], rcx
- je SHORT G_M35244_IG13
+ mov rdx, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
+ cmp qword ptr [rbp], rdx
+ je SHORT G_M35244_IG11
;; size=16 bbWeight=0.83 PerfScore 3.54
-G_M35244_IG10: ; bbWeight=0.42, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG10: ; bbWeight=0.42, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
- jmp SHORT G_M35244_IG12
- ;; size=2 bbWeight=0.42 PerfScore 0.83
-G_M35244_IG11: ; bbWeight=0.57, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rax]
- mov edi, dword ptr [rax+0x10]
- jmp SHORT G_M35244_IG08
- ;; size=5 bbWeight=0.57 PerfScore 2.27
-G_M35244_IG12: ; bbWeight=0.42, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
xor rbp, rbp
; gcrRegs +[rbp]
;; size=2 bbWeight=0.42 PerfScore 0.10
-G_M35244_IG13: ; bbWeight=1.67, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG11: ; bbWeight=1.67, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
test rbp, rbp
- jne SHORT G_M35244_IG17
+ jne SHORT G_M35244_IG19
;; size=5 bbWeight=1.67 PerfScore 2.08
-G_M35244_IG14: ; bbWeight=0.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M35244_IG12: ; bbWeight=0.99, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp]
- mov rdx, rsi
- ; gcrRegs +[rdx]
- test rdx, rdx
- je SHORT G_M35244_IG23
+ mov rbp, rsi
+ ; gcrRegs +[rbp]
+ test rbp, rbp
+ je SHORT G_M35244_IG15
;; size=8 bbWeight=0.99 PerfScore 1.48
-G_M35244_IG15: ; bbWeight=5.56, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000 {}, byref, isz
- jmp SHORT G_M35244_IG21
- ;; size=2 bbWeight=5.56 PerfScore 11.11
-G_M35244_IG16: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdx]
- xor edi, edi
- jmp SHORT G_M35244_IG08
- ;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M35244_IG17: ; bbWeight=1.67, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rsi] +[rbp]
- movzx r14, byte ptr [rbp+0x2E]
- cmp r14d, 24
- je G_M35244_IG35
- lea ecx, [r14-0x1A]
- cmp ecx, 1
- jbe G_M35244_IG35
- ;; size=28 bbWeight=1.67 PerfScore 8.33
-G_M35244_IG18: ; bbWeight=1.56, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
- add r14d, -33
- cmp r14d, 1
- jbe G_M35244_IG35
- ;; size=14 bbWeight=1.56 PerfScore 2.33
-G_M35244_IG19: ; bbWeight=1.67, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbx]
- mov rbx, rbp
- ; gcrRegs +[rbx]
- jmp G_M35244_IG03
- ;; size=8 bbWeight=1.67 PerfScore 3.75
-G_M35244_IG20: ; bbWeight=1.10, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ; gcrRegs -[rbx rbp]
- add rsp, 32
- pop rbx
- pop rbp
- pop rsi
- pop rdi
- pop r14
- ret
- ;; size=11 bbWeight=1.10 PerfScore 4.14
-G_M35244_IG21: ; bbWeight=0.49, gcVars=0000000000000000 {}, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs +[rdx rbx rsi]
+G_M35244_IG13: ; bbWeight=0.49, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; <unknown class>
- cmp qword ptr [rdx], rcx
- je SHORT G_M35244_IG23
- ;; size=15 bbWeight=0.49 PerfScore 2.10
-G_M35244_IG22: ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rdx]
+ cmp qword ptr [rbp], rcx
+ je SHORT G_M35244_IG15
+ ;; size=16 bbWeight=0.49 PerfScore 2.10
+G_M35244_IG14: ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbp]
mov rdx, rsi
; gcrRegs +[rdx]
call CORINFO_HELP_CHKCASTCLASS_SPECIAL
; gcrRegs -[rdx rsi] +[rax]
; gcr arg pop 0
- mov rdx, rax
- ; gcrRegs +[rdx]
- ;; size=11 bbWeight=0.25 PerfScore 0.37
-G_M35244_IG23: ; bbWeight=0.99, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax]
- cmp edi, dword ptr [rdx+0x10]
- jae G_M35244_IG39
- mov rdx, gword ptr [rdx+0x08]
- cmp edi, dword ptr [rdx+0x08]
- jae G_M35244_IG40
- mov ecx, edi
- mov rbp, gword ptr [rdx+8*rcx+0x10]
+ mov rbp, rax
; gcrRegs +[rbp]
- jmp SHORT G_M35244_IG17
- ;; size=31 bbWeight=0.99 PerfScore 14.07
-G_M35244_IG24: ; bbWeight=0.22, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdx rbp]
+ ;; size=11 bbWeight=0.25 PerfScore 0.37
+G_M35244_IG15: ; bbWeight=0.99, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax]
+ cmp edi, dword ptr [rbp+0x10]
+ jae G_M35244_IG37
+ mov rcx, gword ptr [rbp+0x08]
+ ; gcrRegs +[rcx]
+ cmp edi, dword ptr [rcx+0x08]
+ jae G_M35244_IG38
+ mov eax, edi
+ mov rsi, gword ptr [rcx+8*rax+0x10]
...
-2 (-0.19%) : 63172.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArraySystem.Canon,System.Canon:System.Collections.Immutable.ImmutableArray`1System.__Canon
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; rsp based frame
; partially interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 12871
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 12871
; 5 inlinees with PGO data; 7 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
@@ -113,7 +113,7 @@ G_M57371_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
; gcrRegs +[rcx]
mov ebp, dword ptr [rcx+0x10]
cmp ebp, 1
- jne SHORT G_M57371_IG10
+ jne SHORT G_M57371_IG11
;; size=12 bbWeight=1 PerfScore 5.25
G_M57371_IG03: ; bbWeight=0.89, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
@@ -125,7 +125,7 @@ G_M57371_IG03: ; bbWeight=0.89, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
; gcr arg pop 0
mov rdx, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Binder+<>c:<.cctor>b__1119_1(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
cmp qword ptr [rdi+0x18], rdx
- jne G_M57371_IG33
+ jne G_M57371_IG35
mov rdx, rax
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol
@@ -139,24 +139,34 @@ G_M57371_IG04: ; bbWeight=0.89, gcrefRegs=4000 {r14}, byrefRegs=0000 {},
; gcrRegs -[rax]
mov rcx, qword ptr [rbx+0x38]
cmp qword ptr [rcx+0x10], 64
- jle SHORT G_M57371_IG09
+ jle SHORT G_M57371_IG07
;; size=11 bbWeight=0.89 PerfScore 5.34
G_M57371_IG05: ; bbWeight=0.71, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
mov rcx, qword ptr [rcx+0x40]
test rcx, rcx
- je SHORT G_M57371_IG09
+ je SHORT G_M57371_IG07
;; size=9 bbWeight=0.71 PerfScore 2.31
-G_M57371_IG06: ; bbWeight=0.89, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+G_M57371_IG06: ; bbWeight=0.57, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M57371_IG08
+ ;; size=2 bbWeight=0.57 PerfScore 1.14
+G_M57371_IG07: ; bbWeight=0.32, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
+ mov rcx, rbx
+ mov rdx, 0xD1FFAB1E ; global ptr
+ call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ ; gcr arg pop 0
+ mov rcx, rax
+ ;; size=21 bbWeight=0.32 PerfScore 0.56
+G_M57371_IG08: ; bbWeight=0.89, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, byref
mov rdx, r14
; gcrRegs +[rdx]
call [System.Collections.Immutable.ImmutableArray:Create[System.__Canon](System.__Canon):System.Collections.Immutable.ImmutableArray`1[System.__Canon]]
; gcrRegs -[rdx r14] +[rax]
; gcr arg pop 0
;; size=9 bbWeight=0.89 PerfScore 2.89
-G_M57371_IG07: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
+G_M57371_IG09: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M57371_IG08: ; bbWeight=1, epilog, nogc, extend
+G_M57371_IG10: ; bbWeight=1, epilog, nogc, extend
add rsp, 64
pop rbx
pop rbp
@@ -167,19 +177,10 @@ G_M57371_IG08: ; bbWeight=1, epilog, nogc, extend
pop r15
ret
;; size=15 bbWeight=1 PerfScore 4.75
-G_M57371_IG09: ; bbWeight=0.32, gcVars=0000000000000000 {}, gcrefRegs=4000 {r14}, byrefRegs=0000 {}, gcvars, byref, isz
- ; gcrRegs -[rax] +[r14]
- mov rcx, rbx
- mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
- ; gcr arg pop 0
- mov rcx, rax
- jmp SHORT G_M57371_IG06
- ;; size=23 bbWeight=0.32 PerfScore 1.20
-G_M57371_IG10: ; bbWeight=0.11, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[r14] +[rsi rdi]
+G_M57371_IG11: ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs -[rax] +[rsi rdi]
cmp ebp, 4
- ja G_M57371_IG38
+ ja G_M57371_IG40
mov ecx, ebp
lea rdx, [reloc @RWD00]
mov edx, dword ptr [rdx+4*rcx]
@@ -187,7 +188,7 @@ G_M57371_IG10: ; bbWeight=0.11, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
add rdx, rax
jmp rdx
;; size=33 bbWeight=0.11 PerfScore 0.80
-G_M57371_IG11: ; bbWeight=0.10, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG12: ; bbWeight=0.10, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
mov rcx, rsi
; gcrRegs +[rcx]
xor edx, edx
@@ -196,9 +197,9 @@ G_M57371_IG11: ; bbWeight=0.10, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
; gcr arg pop 0
mov rdx, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Binder+<>c:<.cctor>b__1119_1(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
cmp qword ptr [rdi+0x18], rdx
- jne SHORT G_M57371_IG15
+ jne SHORT G_M57371_IG16
;; size=27 bbWeight=0.10 PerfScore 0.79
-G_M57371_IG12: ; bbWeight=0.06, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
+G_M57371_IG13: ; bbWeight=0.06, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
mov rdx, rax
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol
@@ -208,7 +209,7 @@ G_M57371_IG12: ; bbWeight=0.06, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0
mov rbp, rax
; gcrRegs +[rbp]
;; size=21 bbWeight=0.06 PerfScore 0.11
-G_M57371_IG13: ; bbWeight=0.10, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG14: ; bbWeight=0.10, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rcx, rsi
; gcrRegs +[rcx]
@@ -218,15 +219,15 @@ G_M57371_IG13: ; bbWeight=0.10, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0
; gcr arg pop 0
mov rdx, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Binder+<>c:<MakeDeconstructInvocationExpression>b__282_1(Microsoft.CodeAnalysis.CSharp.OutDeconstructVarPendingInference):Microsoft.CodeAnalysis.CSharp.BoundDeconstructValuePlaceholder:this
cmp qword ptr [rdi+0x18], rdx
- jne SHORT G_M57371_IG16
+ jne SHORT G_M57371_IG17
;; size=30 bbWeight=0.10 PerfScore 0.79
-G_M57371_IG14: ; bbWeight=0.05, gcrefRegs=0021 {rax rbp}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG15: ; bbWeight=0.05, gcrefRegs=0021 {rax rbp}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdi]
mov rsi, gword ptr [rax+0x20]
; gcrRegs +[rsi]
- jmp SHORT G_M57371_IG17
+ jmp SHORT G_M57371_IG18
;; size=6 bbWeight=0.05 PerfScore 0.20
-G_M57371_IG15: ; bbWeight=0.04, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG16: ; bbWeight=0.04, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp] +[rdi]
mov rdx, rax
; gcrRegs +[rdx]
@@ -237,9 +238,9 @@ G_M57371_IG15: ; bbWeight=0.04, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0
; gcr arg pop 0
mov rbp, rax
; gcrRegs +[rbp]
- jmp SHORT G_M57371_IG13
+ jmp SHORT G_M57371_IG14
;; size=15 bbWeight=0.04 PerfScore 0.29
-G_M57371_IG16: ; bbWeight=0.05, gcrefRegs=00A1 {rax rbp rdi}, byrefRegs=0000 {}, byref
+G_M57371_IG17: ; bbWeight=0.05, gcrefRegs=00A1 {rax rbp rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
mov rdx, rax
; gcrRegs +[rdx]
@@ -251,18 +252,28 @@ G_M57371_IG16: ; bbWeight=0.05, gcrefRegs=00A1 {rax rbp rdi}, byrefRegs=0
mov rsi, rax
; gcrRegs +[rsi]
;; size=13 bbWeight=0.05 PerfScore 0.28
-G_M57371_IG17: ; bbWeight=0.10, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG18: ; bbWeight=0.10, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rcx, qword ptr [rbx+0x38]
cmp qword ptr [rcx+0x10], 56
- jle SHORT G_M57371_IG20
+ jle SHORT G_M57371_IG21
;; size=11 bbWeight=0.10 PerfScore 0.61
-G_M57371_IG18: ; bbWeight=0.08, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG19: ; bbWeight=0.08, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
mov rcx, qword ptr [rcx+0x38]
test rcx, rcx
- je SHORT G_M57371_IG20
+ je SHORT G_M57371_IG21
;; size=9 bbWeight=0.08 PerfScore 0.26
-G_M57371_IG19: ; bbWeight=0.10, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
+G_M57371_IG20: ; bbWeight=0.07, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M57371_IG22
+ ;; size=2 bbWeight=0.07 PerfScore 0.13
+G_M57371_IG21: ; bbWeight=0.04, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
+ mov rcx, rbx
+ mov rdx, 0xD1FFAB1E ; global ptr
+ call CORINFO_HELP_RUNTIMEHANDLE_METHOD
+ ; gcr arg pop 0
+ mov rcx, rax
+ ;; size=21 bbWeight=0.04 PerfScore 0.06
+G_M57371_IG22: ; bbWeight=0.10, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref
mov rdx, rbp
; gcrRegs +[rdx]
mov r8, rsi
@@ -270,27 +281,18 @@ G_M57371_IG19: ; bbWeight=0.10, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000
call [System.Collections.Immutable.ImmutableArray:Create[System.__Canon](System.__Canon,System.__Canon):System.Collections.Immutable.ImmutableArray`1[System.__Canon]]
; gcrRegs -[rdx rbp rsi r8] +[rax]
; gcr arg pop 0
- jmp G_M57371_IG07
+ jmp G_M57371_IG09
;; size=17 bbWeight=0.10 PerfScore 0.56
-G_M57371_IG20: ; bbWeight=0.04, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax] +[rbp rsi]
- mov rcx, rbx
- mov rdx, 0xD1FFAB1E ; global ptr
- call CORINFO_HELP_RUNTIMEHANDLE_METHOD
- ; gcr arg pop 0
- mov rcx, rax
- jmp SHORT G_M57371_IG19
- ;; size=23 bbWeight=0.04 PerfScore 0.14
-G_M57371_IG21: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rbp rsi]
+G_M57371_IG23: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rax]
mov rbp, qword ptr [rbx+0x38]
cmp qword ptr [rbp+0x10], 72
- jle G_M57371_IG27
+ jle G_M57371_IG31
;; size=15 bbWeight=0.01 PerfScore 0.04
-G_M57371_IG22: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- jmp G_M57371_IG29
- ;; size=5 bbWeight=0.01 PerfScore 0.01
-G_M57371_IG23: ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
+G_M57371_IG24: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ jmp G_M57371_IG33
+ ;; size=5 bbWeight=0.00 PerfScore 0.01
+G_M57371_IG25: ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi rdi]
mov rcx, rsi
; gcrRegs +[rcx]
@@ -300,7 +302,7 @@ G_M57371_IG23: ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
; gcr arg pop 0
mov rdx, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.Binder+<>c:<.cctor>b__1119_1(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this
cmp qword ptr [rdi+0x18], rdx
- jne G_M57371_IG34
+ jne G_M57371_IG36
mov rdx, rax
; gcrRegs +[rdx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol
@@ -338,18 +340,28 @@ G_M57371_IG23: ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
mov r15, rax
; gcrRegs +[r15]
;; size=122 bbWeight=0.00 PerfScore 0.04
-G_M57371_IG24: ; bbWeight=0.00, gcrefRegs=C020 {rbp r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG26: ; bbWeight=0.00, gcrefRegs=C020 {rbp r14 r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rcx, qword ptr [rbx+0x38]
cmp qword ptr [rcx+0x10], 48
- jle SHORT G_M57371_IG31
+ jle SHORT G_M57371_IG29
;; size=11 bbWeight=0.00 PerfScore 0.01
-G_M57371_IG25: ; bbWeight=0.00, gcrefRegs=C020 {rbp r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M57371_IG27: ; bbWeight=0.00, gcrefRegs=C020 {rbp r14 r15}, byrefRegs=0000 {}, byref, isz
mov rcx, qword ptr [rcx+0x30]
test rcx, rcx
- je SHORT G_M57371_IG31
+ je SHORT G_M57371_IG29
;; size=9 bbWeight=0.00 PerfScore 0.00
...
+2 (+0.38%) : 625384.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:MakeSlot(Microsoft.CodeAnalysis.CSharp.BoundExpression):int:this (Tier1)
@@ -57,7 +57,7 @@ G_M13290_IG02: ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {},
;; size=9 bbWeight=1 PerfScore 3.25
G_M13290_IG03: ; bbWeight=0.75, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
cmp eax, 42
- je G_M13290_IG16
+ je G_M13290_IG17
;; size=9 bbWeight=0.75 PerfScore 0.94
G_M13290_IG04: ; bbWeight=0.75, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
add eax, -110
@@ -69,7 +69,7 @@ G_M13290_IG05: ; bbWeight=0.45, gcrefRegs=000C {rdx rbx}, byrefRegs=0000
; gcrRegs +[rcx]
mov rax, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.BoundLocal
cmp qword ptr [rcx], rax
- jne G_M13290_IG18
+ jne G_M13290_IG19
mov rdx, gword ptr [rcx+0x20]
mov dword ptr [rsp+0x20], 1
mov rcx, rbx
@@ -92,7 +92,7 @@ G_M13290_IG07: ; bbWeight=0.76, epilog, nogc, extend
G_M13290_IG08: ; bbWeight=0.29, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rdx rbx]
cmp eax, 7
- ja SHORT G_M13290_IG11
+ ja SHORT G_M13290_IG13
mov ecx, eax
lea r8, [reloc @RWD00]
mov r8d, dword ptr [r8+4*rcx]
@@ -102,29 +102,24 @@ G_M13290_IG08: ; bbWeight=0.29, gcVars=0000000000000000 {}, gcrefRegs=000
;; size=31 bbWeight=0.29 PerfScore 2.14
G_M13290_IG09: ; bbWeight=0.25, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
cmp eax, 187
- je SHORT G_M13290_IG14
+ je SHORT G_M13290_IG15
;; size=7 bbWeight=0.25 PerfScore 0.31
G_M13290_IG10: ; bbWeight=0.13, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
lea ecx, [rax-0xBD]
cmp ecx, 1
- jbe SHORT G_M13290_IG14
+ jbe SHORT G_M13290_IG15
;; size=11 bbWeight=0.13 PerfScore 0.23
-G_M13290_IG11: ; bbWeight=0.24, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M13290_IG11: ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rdx rbx]
- mov eax, -1
- ;; size=5 bbWeight=0.24 PerfScore 0.06
-G_M13290_IG12: ; bbWeight=0.24, epilog, nogc, extend
- add rsp, 64
- pop rbx
- ret
- ;; size=6 bbWeight=0.24 PerfScore 0.43
-G_M13290_IG13: ; bbWeight=0.16, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+ jmp SHORT G_M13290_IG13
+ ;; size=2 bbWeight=0.11 PerfScore 0.23
+G_M13290_IG12: ; bbWeight=0.16, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdx rbx]
mov rcx, rdx
; gcrRegs +[rcx]
mov rax, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.BoundParameter
cmp qword ptr [rcx], rax
- jne G_M13290_IG19
+ jne G_M13290_IG20
mov rdx, gword ptr [rcx+0x20]
mov dword ptr [rsp+0x20], 1
mov rcx, rbx
@@ -137,11 +132,19 @@ G_M13290_IG13: ; bbWeight=0.16, gcVars=0000000000000000 {}, gcrefRegs=000
; gcr arg pop 0
jmp SHORT G_M13290_IG06
;; size=58 bbWeight=0.16 PerfScore 2.82
-G_M13290_IG14: ; bbWeight=0.13, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
+G_M13290_IG13: ; bbWeight=0.24, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ ;; size=5 bbWeight=0.24 PerfScore 0.06
+G_M13290_IG14: ; bbWeight=0.24, epilog, nogc, extend
+ add rsp, 64
+ pop rbx
+ ret
+ ;; size=6 bbWeight=0.24 PerfScore 0.43
+G_M13290_IG15: ; bbWeight=0.13, gcVars=0000000000000000 {}, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs +[rdx rbx]
mov r8, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.NullableWalker
cmp qword ptr [rbx], r8
- jne G_M13290_IG21
+ jne G_M13290_IG22
lea r8, [rsp+0x38]
lea r9, [rsp+0x30]
mov rcx, rbx
@@ -151,9 +154,9 @@ G_M13290_IG14: ; bbWeight=0.13, gcrefRegs=000C {rdx rbx}, byrefRegs=0000
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=44 bbWeight=0.13 PerfScore 1.17
-G_M13290_IG15: ; bbWeight=0.13, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M13290_IG16: ; bbWeight=0.13, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
test eax, eax
- je SHORT G_M13290_IG11
+ je SHORT G_M13290_IG13
mov rcx, rbx
; gcrRegs +[rcx]
mov rdx, gword ptr [rsp+0x38]
@@ -166,13 +169,13 @@ G_M13290_IG15: ; bbWeight=0.13, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M13290_IG06
;; size=34 bbWeight=0.13 PerfScore 1.17
-G_M13290_IG16: ; bbWeight=0.01, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
+G_M13290_IG17: ; bbWeight=0.01, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rdx rbx]
mov rcx, rdx
; gcrRegs +[rcx]
mov r8, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator
cmp qword ptr [rcx], r8
- jne G_M13290_IG22
+ jne G_M13290_IG23
mov rdx, gword ptr [rcx+0x20]
mov rcx, rbx
mov rax, qword ptr [rbx]
@@ -182,7 +185,7 @@ G_M13290_IG16: ; bbWeight=0.01, gcrefRegs=000C {rdx rbx}, byrefRegs=0000
; gcr arg pop 0
jmp G_M13290_IG06
;; size=46 bbWeight=0.01 PerfScore 0.11
-G_M13290_IG17: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M13290_IG18: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rbx]
mov rcx, rbx
; gcrRegs +[rcx]
@@ -191,7 +194,7 @@ G_M13290_IG17: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs -[rcx] +[rax]
; gcr arg pop 0
test rax, rax
- je G_M13290_IG11
+ je G_M13290_IG13
mov rcx, rbx
; gcrRegs +[rcx]
mov rax, 0xD1FFAB1E ; code for Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:get_MethodThisParameter():Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:this
@@ -214,7 +217,7 @@ G_M13290_IG17: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
jmp G_M13290_IG06
;; size=77 bbWeight=0 PerfScore 0.00
-G_M13290_IG18: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
+G_M13290_IG19: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
; gcrRegs +[rdx]
mov rcx, rax
call CORINFO_HELP_CHKCASTCLASS
@@ -222,7 +225,7 @@ G_M13290_IG18: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
int3
;; size=9 bbWeight=0 PerfScore 0.00
-G_M13290_IG19: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
+G_M13290_IG20: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] +[rdx]
mov rcx, rax
call CORINFO_HELP_CHKCASTCLASS
@@ -230,7 +233,7 @@ G_M13290_IG19: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
int3
;; size=9 bbWeight=0 PerfScore 0.00
-G_M13290_IG20: ; bbWeight=0, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
+G_M13290_IG21: ; bbWeight=0, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax] +[rdx rbx]
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.BoundRangeVariable
call CORINFO_HELP_CHKCASTCLASS
@@ -248,7 +251,7 @@ G_M13290_IG20: ; bbWeight=0, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {},
; gcr arg pop 0
jmp G_M13290_IG06
;; size=39 bbWeight=0 PerfScore 0.00
-G_M13290_IG21: ; bbWeight=0, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
+G_M13290_IG22: ; bbWeight=0, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref
; gcrRegs +[rdx rbx]
lea r8, [rsp+0x38]
lea r9, [rsp+0x30]
@@ -259,9 +262,9 @@ G_M13290_IG21: ; bbWeight=0, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {},
call [rax+0x38]<unknown method>
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- jmp G_M13290_IG15
+ jmp G_M13290_IG16
;; size=31 bbWeight=0 PerfScore 0.00
-G_M13290_IG22: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
+G_M13290_IG23: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
; gcrRegs -[rbx] +[rdx]
mov rcx, r8
call CORINFO_HELP_CHKCASTCLASS
@@ -269,17 +272,17 @@ G_M13290_IG22: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
int3
;; size=9 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M13290_IG17 - G_M13290_IG02
- dd G_M13290_IG11 - G_M13290_IG02
- dd G_M13290_IG11 - G_M13290_IG02
- dd G_M13290_IG17 - G_M13290_IG02
- dd G_M13290_IG05 - G_M13290_IG02
- dd G_M13290_IG11 - G_M13290_IG02
- dd G_M13290_IG20 - G_M13290_IG02
+RWD00 dd G_M13290_IG18 - G_M13290_IG02
dd G_M13290_IG13 - G_M13290_IG02
+ dd G_M13290_IG13 - G_M13290_IG02
+ dd G_M13290_IG18 - G_M13290_IG02
+ dd G_M13290_IG05 - G_M13290_IG02
+ dd G_M13290_IG13 - G_M13290_IG02
+ dd G_M13290_IG21 - G_M13290_IG02
+ dd G_M13290_IG12 - G_M13290_IG02
-; Total bytes of code 525, prolog size 17, PerfScore 25.90, instruction count 127, allocated bytes for code 525 (MethodHash=6c25cc15) for method Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:MakeSlot(Microsoft.CodeAnalysis.CSharp.BoundExpression):int:this (Tier1)
+; Total bytes of code 527, prolog size 17, PerfScore 26.13, instruction count 128, allocated bytes for code 527 (MethodHash=6c25cc15) for method Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:MakeSlot(Microsoft.CodeAnalysis.CSharp.BoundExpression):int:this (Tier1)
; ============================================================
Unwind Info:
+3 (+0.80%) : 251289.dasm - System.Xml.Schema.XsdBuilder:GetContainer(int):System.Xml.Schema.XmlSchemaObject:this (Tier1)
@@ -22,27 +22,21 @@ G_M49782_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
xor rax, rax
; gcrRegs +[rax]
cmp edx, 14
- jne SHORT G_M49782_IG06
+ jne SHORT G_M49782_IG05
;; size=7 bbWeight=1 PerfScore 1.50
-G_M49782_IG03: ; bbWeight=0.75, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M49782_IG03: ; bbWeight=0.75, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xF8]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
- ;; size=9 bbWeight=0.75 PerfScore 2.99
-G_M49782_IG04: ; bbWeight=0.08, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
- mov rax, gword ptr [rcx+0x80]
- ; gcrRegs +[rax]
- ;; size=7 bbWeight=0.08 PerfScore 0.16
-G_M49782_IG05: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
+ ;; size=7 bbWeight=0.75 PerfScore 1.49
+G_M49782_IG04: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rcx]
ret
;; size=1 bbWeight=1 PerfScore 1.00
-G_M49782_IG06: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M49782_IG05: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rcx]
cmp edx, 47
- ja SHORT G_M49782_IG05
+ ja SHORT G_M49782_IG04
mov edx, edx
lea r8, [reloc @RWD00]
mov r8d, dword ptr [r8+4*rdx]
@@ -50,193 +44,199 @@ G_M49782_IG06: ; bbWeight=0.25, gcVars=0000000000000000 {}, gcrefRegs=000
add r8, r10
jmp r8
;; size=31 bbWeight=0.25 PerfScore 1.84
+G_M49782_IG06: ; bbWeight=0.08, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+ ; gcrRegs -[rax]
+ mov rax, gword ptr [rcx+0x80]
+ ; gcrRegs +[rax]
+ jmp SHORT G_M49782_IG04
+ ;; size=9 bbWeight=0.08 PerfScore 0.32
G_M49782_IG07: ; bbWeight=0.08, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x60]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=6 bbWeight=0.08 PerfScore 0.32
G_M49782_IG08: ; bbWeight=0.07, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xF0]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0.07 PerfScore 0.27
G_M49782_IG09: ; bbWeight=0.01, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x50]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=6 bbWeight=0.01 PerfScore 0.05
G_M49782_IG10: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x140]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG11: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x130]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG12: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x138]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG13: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x70]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=6 bbWeight=0 PerfScore 0.00
G_M49782_IG14: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x108]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG15: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x110]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG16: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x78]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=6 bbWeight=0 PerfScore 0.00
G_M49782_IG17: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xD8]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
+ jmp SHORT G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
-G_M49782_IG18: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M49782_IG18: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xE0]
; gcrRegs +[rax]
- jmp SHORT G_M49782_IG05
- ;; size=9 bbWeight=0 PerfScore 0.00
+ jmp G_M49782_IG04
+ ;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG19: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xE8]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG20: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x68]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=9 bbWeight=0 PerfScore 0.00
G_M49782_IG21: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x118]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG22: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x88]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG23: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x90]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG24: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x98]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG25: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xA0]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG26: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xA8]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG27: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xB0]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG28: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xB8]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG29: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xC0]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG30: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xC8]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG31: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0xD0]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG32: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x120]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG33: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x128]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG34: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x158]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG35: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rax, gword ptr [rcx+0x148]
; gcrRegs +[rax]
- jmp G_M49782_IG05
+ jmp G_M49782_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M49782_IG36: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
...
+16 (+0.92%) : 636719.dasm - System.Text.RegularExpressions.Tests.MonoTests+d__1:MoveNext():ubyte:this (Tier1)
@@ -5,7 +5,7 @@
; optimized using Dynamic PGO
; rbp based frame
; fully interruptible
-; with Dynamic PGO: edge weights are invalid, and fgCalledCount is 4359
+; with Dynamic PGO: edge weights are valid, and fgCalledCount is 4359
; 9 inlinees with PGO data; 14 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
@@ -14,7 +14,7 @@
;* V02 loc1 [V02 ] ( 0, 0 ) int -> zero-ref
;* V03 loc2 [V03 ] ( 0, 0 ) int -> zero-ref
; V04 OutArgs [V04 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T01] ( 8, 13.50) ref -> r12 class-hnd exact "dup spill" <<unknown class>>
+; V05 tmp1 [V05,T01] ( 8, 13.50) ref -> r13 class-hnd exact "dup spill" <<unknown class>>
; V06 tmp2 [V06,T02] ( 3, 5.06) ref -> rax class-hnd exact "Single-def Box Helper" <<unknown class>>
; V07 tmp3 [V07,T11] ( 2, 3.38) ref -> rdx class-hnd "Strict ordering of exceptions for Array store" <System.__Canon>
; V08 tmp4 [V08,T03] ( 3, 5.06) ref -> rax class-hnd exact "Single-def Box Helper" <<unknown class>>
@@ -22,13 +22,13 @@
; V10 tmp6 [V10,T13] ( 2, 3.38) ref -> rdx class-hnd "Strict ordering of exceptions for Array store" <System.__Canon>
; V11 tmp7 [V11,T14] ( 2, 3.38) ref -> rdx class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
; V12 tmp8 [V12,T51] ( 2, 0.00) ref -> r8 class-hnd "dup spill" <<unknown class>>
-; V13 tmp9 [V13,T56] ( 2, 0.00) int -> r13 "impSpillLclRefs"
-; V14 tmp10 [V14,T52] ( 2, 0.00) ref -> r15 class-hnd exact "impSpillLclRefs" <<unknown class>>
+; V13 tmp9 [V13,T56] ( 2, 0.00) int -> rbx "impSpillLclRefs"
+; V14 tmp10 [V14,T52] ( 2, 0.00) ref -> rdi class-hnd exact "impSpillLclRefs" <<unknown class>>
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref
;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref
;* V17 tmp13 [V17 ] ( 0, 0 ) ref -> zero-ref
; V18 tmp14 [V18,T57] ( 4, 0.00) ref -> r8
-; V19 tmp15 [V19,T58] ( 5, 0.00) ref -> rdi class-hnd exact "NewObj constructor temp" <<unknown class>>
+; V19 tmp15 [V19,T58] ( 5, 0.00) ref -> r15 class-hnd exact "NewObj constructor temp" <<unknown class>>
; V20 tmp16 [V20,T16] ( 8, 2.49) ref -> rbx class-hnd exact "dup spill" <<unknown class>>
; V21 tmp17 [V21,T22] ( 3, 0.93) ref -> rax class-hnd exact "Single-def Box Helper" <<unknown class>>
; V22 tmp18 [V22,T30] ( 2, 0.62) ref -> rdx class-hnd "Strict ordering of exceptions for Array store" <System.__Canon>
@@ -46,7 +46,7 @@
; V34 tmp30 [V34,T48] ( 4, 0.01) ref -> rcx "guarded devirt arg temp"
;* V35 tmp31 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Tests.RegexHelpers+<get_AvailableEngines>d__12>
;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Tests.RegexHelpers+<get_AvailableEngines>d__12>
-; V37 tmp33 [V37,T61] ( 4, 0.00) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.Tests.RegexHelpers+<get_AvailableEngines>d__12>
+; V37 tmp33 [V37,T61] ( 4, 0.00) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Text.RegularExpressions.Tests.RegexHelpers+<get_AvailableEngines>d__12>
;* V38 tmp34 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.Tests.RegexHelpers+<get_AvailableEngines>d__12>
; V39 tmp35 [V39,T63] ( 2, 0.00) ref -> rdx class-hnd exact "Inlining Arg" <<unknown class>>
;* V40 tmp36 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -80,7 +80,7 @@
; V68 tmp64 [V68,T29] ( 6, 0.76) ref -> [rbp-0x50] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.RegexReplacement>
; V69 tmp65 [V69,T39] ( 2, 0.61) int -> [rbp-0x3C] "Inlining Arg"
; V70 tmp66 [V70,T37] ( 2, 0.61) ref -> rbx class-hnd "Inlining Arg" <System.Collections.Hashtable>
-; V71 tmp67 [V71,T40] ( 2, 0.61) int -> rdi "Inlining Arg"
+; V71 tmp67 [V71,T40] ( 2, 0.61) int -> registers "Inlining Arg"
; V72 tmp68 [V72,T38] ( 2, 0.61) ref -> [rbp-0x58] class-hnd "Inlining Arg" <System.Collections.Hashtable>
;* V73 tmp69 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V74 tmp70 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexReplacement>
@@ -107,7 +107,7 @@
; V95 PSPSym [V95,T21] ( 1, 1 ) long -> [rbp-0x68] do-not-enreg[V] "PSPSym"
; V96 cse0 [V96,T15] ( 3, 2.53) int -> rcx "CSE - moderate"
; V97 cse1 [V97,T50] ( 5, 0.00) long -> rbx multi-def "CSE - conservative"
-; V98 cse2 [V98,T60] ( 3, 0.00) long -> rbx "CSE - conservative"
+; V98 cse2 [V98,T60] ( 3, 0.00) long -> r14 "CSE - conservative"
;
; Lcl frame size = 88
@@ -128,114 +128,42 @@ G_M22758_IG01: ; bbWeight=1, gcVars=00000000000000000000000000000000 {},
mov rsi, rcx
; gcrRegs +[rsi]
;; size=35 bbWeight=1 PerfScore 11.00
-G_M22758_IG02: ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M22758_IG02: ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
mov ebx, dword ptr [rsi+0x30]
cmp ebx, 1
- jne SHORT G_M22758_IG05
- ;; size=8 bbWeight=1 PerfScore 3.25
+ jne G_M22758_IG09
+ ;; size=12 bbWeight=1 PerfScore 3.25
G_M22758_IG03: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
mov dword ptr [rsi+0x30], -3
test byte ptr [rsi+0x58], 1
- je G_M22758_IG29
+ jne G_M22758_IG10
;; size=17 bbWeight=0.84 PerfScore 4.22
-G_M22758_IG04: ; bbWeight=0.16, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- jmp G_M22758_IG37
- ;; size=5 bbWeight=0.16 PerfScore 0.31
-G_M22758_IG05: ; bbWeight=0.16, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- cmp ebx, 2
- ja G_M22758_IG13
- mov ecx, ebx
- lea rax, [reloc @RWD00]
- mov eax, dword ptr [rax+4*rcx]
- lea rdx, G_M22758_IG02
- add rax, rdx
- jmp rax
- ;; size=33 bbWeight=0.16 PerfScore 1.13
-G_M22758_IG06: ; bbWeight=0.00, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- mov dword ptr [rsi+0x38], edi
- mov ecx, dword ptr [rsi+0x38]
- mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Tests.MonoTests:<ValidateRegex_MemberData>g__Cases|1_0(int):System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.String,int,System.String,System.String]]
- call [rax]System.Text.RegularExpressions.Tests.MonoTests:<ValidateRegex_MemberData>g__Cases|1_0(int):System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.String,int,System.String,System.String]]
- ; gcrRegs +[rax]
- ; gcr arg pop 0
- mov rdx, rax
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; <unknown method>
- mov rax, 0xD1FFAB1E ; code for System.Linq.Enumerable:ToArray[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon]]):System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon][]
- ; gcrRegs -[rax]
- call [rax]System.Linq.Enumerable:ToArray[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon]]):System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon][]
- ; gcrRegs -[rdx] +[rax]
- ; gcr arg pop 0
- lea rcx, bword ptr [rsi+0x18]
- ; byrRegs +[rcx]
- mov rdx, rax
- ; gcrRegs +[rdx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
- mov r13d, dword ptr [rsi+0x38]
- mov r15, gword ptr [rsi+0x18]
- ; gcrRegs +[r15]
- mov rbx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- mov r8, gword ptr [rbx]
- ; gcrRegs +[r8]
- test r8, r8
- je G_M22758_IG36
- ;; size=85 bbWeight=0.00 PerfScore 0.02
-G_M22758_IG07: ; bbWeight=0.00, gcrefRegs=8140 {rsi r8 r15}, byrefRegs=0000 {}, byref
- mov rdx, r15
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; <unknown method>
- mov rax, 0xD1FFAB1E ; code for System.Linq.Enumerable:Select[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon],System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon]],System.Func`2[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon],System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]]):System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]]
- call [rax]System.Linq.Enumerable:Select[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon],System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon]],System.Func`2[System.ValueTuple`4[System.__Canon,int,System.__Canon,System.__Canon],System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]]):System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]]
- ; gcrRegs -[rdx r8 r15] +[rax]
- ; gcr arg pop 0
- mov rdx, rax
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; <unknown method>
- mov rax, 0xD1FFAB1E ; code for System.Linq.Enumerable:ToArray[System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]]):System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]][]
- ; gcrRegs -[rax]
- call [rax]System.Linq.Enumerable:ToArray[System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]](System.Collections.Generic.IEnumerable`1[System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]]]):System.ValueTuple`4[System.__Canon,System.__Canon,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]][]
- ; gcrRegs -[rdx] +[rax]
- ; gcr arg pop 0
- mov rdx, rax
- ; gcrRegs +[rdx]
- mov ecx, r13d
- mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.Tests.RegexHelpers:GetRegexesAsync(int,System.ValueTuple`4[System.String,System.Globalization.CultureInfo,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]][]):System.Threading.Tasks.Task`1[System.Text.RegularExpressions.Regex[]]
- ; gcrRegs -[rax]
- call [rax]System.Text.RegularExpressions.Tests.RegexHelpers:GetRegexesAsync(int,System.ValueTuple`4[System.String,System.Globalization.CultureInfo,System.Nullable`1[int],System.Nullable`1[System.TimeSpan]][]):System.Threading.Tasks.Task`1[System.Text.RegularExpressions.Regex[]]
- ; gcrRegs -[rdx] +[rax]
- ; gcr arg pop 0
- mov rcx, rax
+G_M22758_IG04: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ xor rcx, rcx
; gcrRegs +[rcx]
- mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task`1[System.__Canon]:get_Result():System.__Canon:this
- ; gcrRegs -[rax]
- cmp dword ptr [rcx], ecx
- call [rax]System.Threading.Tasks.Task`1[System.__Canon]:get_Result():System.__Canon:this
- ; gcrRegs -[rcx] +[rax]
- ; gcr arg pop 0
- lea rcx, bword ptr [rsi+0x20]
- ; byrRegs +[rcx]
- mov rdx, rax
- ; gcrRegs +[rdx]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
- xor ecx, ecx
- mov dword ptr [rsi+0x3C], ecx
+ mov gword ptr [rsi+0x28], rcx
+ ;; size=6 bbWeight=0.84 PerfScore 1.06
+G_M22758_IG05: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rcx]
+ mov qword ptr [rsi+0x40], rcx
+ mov qword ptr [rsi+0x48], rcx
+ mov qword ptr [rsi+0x50], rcx
+ mov qword ptr [rsi+0x58], rcx
mov ecx, dword ptr [rsi+0x3C]
- mov rax, gword ptr [rsi+0x20]
- ; gcrRegs +[rax]
- cmp ecx, dword ptr [rax+0x08]
- jge G_M22758_IG41
- ;; size=118 bbWeight=0.00 PerfScore 0.03
-G_M22758_IG08: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
+ inc ecx
+ mov dword ptr [rsi+0x3C], ecx
+ mov rdx, gword ptr [rsi+0x20]
+ ; gcrRegs +[rdx]
+ cmp dword ptr [rdx+0x08], ecx
+ jle G_M22758_IG27
+ ;; size=37 bbWeight=0.84 PerfScore 11.18
+G_M22758_IG06: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rdx]
mov rcx, gword ptr [rsi+0x18]
; gcrRegs +[rcx]
mov edx, dword ptr [rsi+0x3C]
cmp edx, dword ptr [rcx+0x08]
- jae G_M22758_IG11
+ jae G_M22758_IG41
shl rdx, 5
mov rdx, gword ptr [rcx+rdx+0x20]
; gcrRegs +[rdx]
@@ -246,14 +174,14 @@ G_M22758_IG08: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
; gcrRegs -[rdx]
; byrRegs -[rcx]
cmp dword ptr [rsi+0x38], 2
- je G_M22758_IG32
+ je G_M22758_IG26
;; size=44 bbWeight=0.84 PerfScore 13.50
-G_M22758_IG09: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M22758_IG07: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
mov rax, gword ptr [rsi+0x18]
; gcrRegs +[rax]
mov ecx, dword ptr [rsi+0x3C]
cmp ecx, dword ptr [rax+0x08]
- jae G_M22758_IG11
+ jae G_M22758_IG41
shl rcx, 5
lea rsi, bword ptr [rax+rcx+0x10]
; gcrRegs -[rsi]
@@ -273,14 +201,14 @@ G_M22758_IG09: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
; gcrRegs +[rax]
; byrRegs -[rsi rdi]
; gcr arg pop 0
- mov r12, rax
- ; gcrRegs +[r12]
+ mov r13, rax
+ ; gcrRegs +[r13]
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
; gcr arg pop 0
mov ecx, dword ptr [r14+0x38]
mov dword ptr [rax+0x08], ecx
- lea rcx, bword ptr [r12+0x10]
+ lea rcx, bword ptr [r13+0x10]
; byrRegs +[rcx]
mov rdx, rax
; gcrRegs +[rdx]
@@ -289,7 +217,7 @@ G_M22758_IG09: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
; byrRegs -[rcx]
mov rdx, gword ptr [r14+0x40]
; gcrRegs +[rdx]
- lea rcx, bword ptr [r12+0x18]
+ lea rcx, bword ptr [r13+0x18]
; byrRegs +[rcx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rdx]
@@ -300,7 +228,7 @@ G_M22758_IG09: ; bbWeight=0.84, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
; gcr arg pop 0
mov ecx, dword ptr [r14+0x58]
mov dword ptr [rax+0x08], ecx
...
Details
Improvements/regressions per collection
| Collection |
Contexts with diffs |
Improvements |
Regressions |
Same size |
Improvements (bytes) |
Regressions (bytes) |
| benchmarks.run.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| benchmarks.run_pgo.windows.x64.checked.mch |
11 |
6 |
3 |
2 |
-61 |
+39 |
| benchmarks.run_tiered.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| coreclr_tests.run.windows.x64.checked.mch |
6 |
5 |
1 |
0 |
-32 |
+6 |
| libraries.crossgen2.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries.pmi.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| libraries_tests.run.windows.x64.Release.mch |
13 |
5 |
5 |
3 |
-35 |
+24 |
| librariestestsnotieredcompilation.run.windows.x64.Release.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| realworld.run.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
| smoke_tests.nativeaot.windows.x64.checked.mch |
0 |
0 |
0 |
0 |
-0 |
+0 |
|
30 |
16 |
9 |
5 |
-128 |
+69 |
Context information
| Collection |
Diffed contexts |
MinOpts |
FullOpts |
Missed, base |
Missed, diff |
| benchmarks.run.windows.x64.checked.mch |
27,982 |
4 |
27,978 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_pgo.windows.x64.checked.mch |
96,695 |
48,836 |
47,859 |
0 (0.00%) |
0 (0.00%) |
| benchmarks.run_tiered.windows.x64.checked.mch |
54,111 |
37,293 |
16,818 |
0 (0.00%) |
0 (0.00%) |
| coreclr_tests.run.windows.x64.checked.mch |
584,001 |
348,100 |
235,901 |
0 (0.00%) |
0 (0.00%) |
| libraries.crossgen2.windows.x64.checked.mch |
274,686 |
15 |
274,671 |
0 (0.00%) |
0 (0.00%) |
| libraries.pmi.windows.x64.checked.mch |
310,928 |
6 |
310,922 |
0 (0.00%) |
0 (0.00%) |
| libraries_tests.run.windows.x64.Release.mch |
678,242 |
480,859 |
197,383 |
0 (0.00%) |
0 (0.00%) |
| librariestestsnotieredcompilation.run.windows.x64.Release.mch |
320,863 |
21,944 |
298,919 |
0 (0.00%) |
0 (0.00%) |
| realworld.run.windows.x64.checked.mch |
36,896 |
3 |
36,893 |
0 (0.00%) |
0 (0.00%) |
| smoke_tests.nativeaot.windows.x64.checked.mch |
32,572 |
11 |
32,561 |
0 (0.00%) |
0 (0.00%) |
|
2,416,976 |
937,071 |
1,479,905 |
0 (0.00%) |
0 (0.00%) |
jit-analyze output
benchmarks.run_pgo.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 34024626 (overridden on cmd)
Total bytes of diff: 34024604 (overridden on cmd)
Total bytes of delta: -22 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
17 : 96092.dasm (3.40 % of base)
17 : 80253.dasm (3.40 % of base)
5 : 85291.dasm (0.70 % of base)
Top file improvements (bytes):
-38 : 83080.dasm (-7.09 % of base)
-8 : 85267.dasm (-1.40 % of base)
-6 : 92473.dasm (-1.47 % of base)
-4 : 35193.dasm (-0.51 % of base)
-4 : 35187.dasm (-0.51 % of base)
-1 : 80879.dasm (-0.19 % of base)
9 total files with Code Size differences (6 improved, 3 regressed), 2 unchanged.
Top method regressions (bytes):
17 (3.40 % of base) : 96092.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
17 (3.40 % of base) : 80253.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (0.70 % of base) : 85291.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitNode|12(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
Top method improvements (bytes):
-38 (-7.09 % of base) : 83080.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-8 (-1.40 % of base) : 85267.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-6 (-1.47 % of base) : 92473.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
-4 (-0.51 % of base) : 35193.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-4 (-0.51 % of base) : 35187.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.19 % of base) : 80879.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method regressions (percentages):
17 (3.40 % of base) : 96092.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
17 (3.40 % of base) : 80253.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
5 (0.70 % of base) : 85291.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitNode|12(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
Top method improvements (percentages):
-38 (-7.09 % of base) : 83080.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-6 (-1.47 % of base) : 92473.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.__Canon]:CollectSets(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[System.__Canon],System.Collections.Generic.HashSet`1[System.__Canon]):this (Tier1)
-8 (-1.40 % of base) : 85267.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-4 (-0.51 % of base) : 35187.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-4 (-0.51 % of base) : 35193.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier1-OSR)
-1 (-0.19 % of base) : 80879.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
9 total methods with Code Size differences (6 improved, 3 regressed).
coreclr_tests.run.windows.x64.checked.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 407341578 (overridden on cmd)
Total bytes of diff: 407341552 (overridden on cmd)
Total bytes of delta: -26 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
6 : 255404.dasm (1.17 % of base)
Top file improvements (bytes):
-7 : 2760.dasm (-1.34 % of base)
-7 : 209974.dasm (-1.34 % of base)
-7 : 241481.dasm (-1.34 % of base)
-7 : 381761.dasm (-1.34 % of base)
-4 : 234146.dasm (-0.53 % of base)
6 total files with Code Size differences (5 improved, 1 regressed), 0 unchanged.
Top method regressions (bytes):
6 (1.17 % of base) : 255404.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (bytes):
-7 (-1.34 % of base) : 2760.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.34 % of base) : 209974.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.34 % of base) : 241481.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.34 % of base) : 381761.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-4 (-0.53 % of base) : 234146.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
Top method regressions (percentages):
6 (1.17 % of base) : 255404.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
Top method improvements (percentages):
-7 (-1.34 % of base) : 209974.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.34 % of base) : 2760.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.34 % of base) : 241481.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-7 (-1.34 % of base) : 381761.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-4 (-0.53 % of base) : 234146.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier1-OSR)
6 total methods with Code Size differences (5 improved, 1 regressed).
libraries_tests.run.windows.x64.Release.mch
To reproduce these diffs on Windows x64:
superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 281668285 (overridden on cmd)
Total bytes of diff: 281668274 (overridden on cmd)
Total bytes of delta: -11 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
16 : 636719.dasm (0.92 % of base)
3 : 251289.dasm (0.80 % of base)
2 : 625384.dasm (0.38 % of base)
2 : 88816.dasm (0.09 % of base)
1 : 616424.dasm (0.15 % of base)
Top file improvements (bytes):
-27 : 424451.dasm (-1.38 % of base)
-4 : 419683.dasm (-0.62 % of base)
-2 : 63172.dasm (-0.19 % of base)
-1 : 625268.dasm (-0.13 % of base)
-1 : 418363.dasm (-0.15 % of base)
10 total files with Code Size differences (5 improved, 5 regressed), 3 unchanged.
Top method regressions (bytes):
16 (0.92 % of base) : 636719.dasm - System.Text.RegularExpressions.Tests.MonoTests+<ValidateRegex_MemberData>d__1:MoveNext():ubyte:this (Tier1)
3 (0.80 % of base) : 251289.dasm - System.Xml.Schema.XsdBuilder:GetContainer(int):System.Xml.Schema.XmlSchemaObject:this (Tier1)
2 (0.38 % of base) : 625384.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:MakeSlot(Microsoft.CodeAnalysis.CSharp.BoundExpression):int:this (Tier1)
2 (0.09 % of base) : 88816.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
1 (0.15 % of base) : 616424.dasm - Microsoft.CodeAnalysis.CSharp.Binder:AreNullableAnnotationsEnabled(Microsoft.CodeAnalysis.SyntaxTree,int):ubyte:this (Tier1)
Top method improvements (bytes):
-27 (-1.38 % of base) : 424451.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-4 (-0.62 % of base) : 419683.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-2 (-0.19 % of base) : 63172.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
-1 (-0.13 % of base) : 625268.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
-1 (-0.15 % of base) : 418363.dasm - System.Xml.Schema.BaseValidator:CreateInstance(int,System.Xml.XmlValidatingReaderImpl,System.Xml.Schema.XmlSchemaCollection,System.Xml.IValidationEventHandling,ubyte):System.Xml.Schema.BaseValidator (Tier1)
Top method regressions (percentages):
16 (0.92 % of base) : 636719.dasm - System.Text.RegularExpressions.Tests.MonoTests+<ValidateRegex_MemberData>d__1:MoveNext():ubyte:this (Tier1)
3 (0.80 % of base) : 251289.dasm - System.Xml.Schema.XsdBuilder:GetContainer(int):System.Xml.Schema.XmlSchemaObject:this (Tier1)
2 (0.38 % of base) : 625384.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:MakeSlot(Microsoft.CodeAnalysis.CSharp.BoundExpression):int:this (Tier1)
1 (0.15 % of base) : 616424.dasm - Microsoft.CodeAnalysis.CSharp.Binder:AreNullableAnnotationsEnabled(Microsoft.CodeAnalysis.SyntaxTree,int):ubyte:this (Tier1)
2 (0.09 % of base) : 88816.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseTermWithoutPostfix(uint):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax:this (Tier1)
Top method improvements (percentages):
-27 (-1.38 % of base) : 424451.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ChangeTypeXsltResult(System.Xml.Xsl.XmlQueryType,System.Object):System.Object:this (Tier1)
-4 (-0.62 % of base) : 419683.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier1)
-2 (-0.19 % of base) : 63172.dasm - Microsoft.CodeAnalysis.ArrayBuilderExtensions:SelectAsArray[System.__Canon,System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.Func`2[System.__Canon,System.__Canon]):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier1)
-1 (-0.15 % of base) : 418363.dasm - System.Xml.Schema.BaseValidator:CreateInstance(int,System.Xml.XmlValidatingReaderImpl,System.Xml.Schema.XmlSchemaCollection,System.Xml.IValidationEventHandling,ubyte):System.Xml.Schema.BaseValidator (Tier1)
-1 (-0.13 % of base) : 625268.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetMemberTypeArgumentsNoUseSiteDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol] (Tier1)
10 total methods with Code Size differences (5 improved, 5 regressed).