forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] [EgorBo] JIT: Extend jump tables #666
Comments
Top method regressions81 (5.32 % of base) - Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],ubyte,System.Type,byref,byref,Microsoft.VisualBasic.CompilerServices.Symbols+Container):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] ; Assembly listing for method Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],ubyte,System.Type,byref,byref,Microsoft.VisualBasic.CompilerServices.Symbols+Container):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T08] ( 6, 55 ) ref -> rbx class-hnd single-def <System.Reflection.MemberInfo[]>
+; V00 arg0 [V00,T08] ( 6, 55 ) ref -> [rbp-0x78] class-hnd single-def <System.Reflection.MemberInfo[]>
; V01 arg1 [V01,T30] ( 4, 18 ) ref -> r12 class-hnd single-def <System.Object[]>
; V02 arg2 [V02,T12] ( 7, 42 ) int -> r15 single-def
-; V03 arg3 [V03,T31] ( 4, 18 ) ref -> [rbp-0x78] class-hnd single-def <System.String[]>
+; V03 arg3 [V03,T31] ( 4, 18 ) ref -> [rbp-0x80] class-hnd single-def <System.String[]>
; V04 arg4 [V04,T28] ( 6, 19.50) ref -> r13 class-hnd single-def <System.Type[]>
; V05 arg5 [V05,T13] ( 7, 42 ) ubyte -> r14 single-def
; V06 arg6 [V06,T41] ( 2, 6 ) ref -> [rbp+0x10] class-hnd single-def <System.Type>
; V07 arg7 [V07,T33] ( 2, 16 ) byref -> [rbp+0x18] single-def
; V08 arg8 [V08,T34] ( 2, 16 ) byref -> [rbp+0x20] single-def
; V09 arg9 [V09,T35] ( 2, 16 ) ref -> [rbp+0x28] class-hnd single-def <Microsoft.VisualBasic.CompilerServices.Symbols+Container>
;* V10 loc0 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method]>
; V11 loc1 [V11,T32] ( 4, 17.50) int -> [rbp-0x2C]
-; V12 loc2 [V12,T17] ( 9, 32.50) ref -> [rbp-0x80] class-hnd exact spill-single-def <System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method]>
+; V12 loc2 [V12,T17] ( 9, 32.50) ref -> [rbp-0x88] class-hnd exact spill-single-def <System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method]>
; V13 loc3 [V13,T29] ( 4, 20.50) ubyte -> [rbp-0x30]
; V14 loc4 [V14,T00] ( 19,187 ) int -> [rbp-0x34]
-; V15 loc5 [V15,T27] ( 3, 22 ) ref -> [rbp-0x88] class-hnd spill-single-def <System.Type>
-; V16 loc6 [V16,T01] ( 14,184 ) ref -> [rbp-0x90] class-hnd spill-single-def <System.Reflection.MemberInfo>
-; V17 loc7 [V17,T06] ( 8, 64 ) ref -> [rbp-0x98] class-hnd <System.Reflection.ParameterInfo[]>
+; V15 loc5 [V15,T27] ( 3, 22 ) ref -> [rbp-0x90] class-hnd spill-single-def <System.Type>
+; V16 loc6 [V16,T01] ( 14,184 ) ref -> [rbp-0x98] class-hnd <System.Reflection.MemberInfo>
+; V17 loc7 [V17,T06] ( 8, 64 ) ref -> [rbp-0xA0] class-hnd <System.Reflection.ParameterInfo[]>
; V18 loc8 [V18,T10] ( 3, 48 ) int -> [rbp-0x38]
; V19 loc9 [V19 ] ( 3, 24 ) int -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op
; V20 loc10 [V20 ] ( 4, 32 ) int -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op
; V21 loc11 [V21 ] ( 5, 40 ) int -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op
; V22 loc12 [V22,T19] ( 4, 32 ) ubyte -> [rbp-0x54] spill-single-def
-; V23 loc13 [V23,T02] ( 8,112 ) int -> rax
+; V23 loc13 [V23,T02] ( 6, 96 ) int -> rax
;* V24 loc14 [V24,T38] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.MethodBase>
;* V25 loc15 [V25,T39] ( 0, 0 ) ref -> zero-ref class-hnd <System.Reflection.PropertyInfo>
-; V26 loc16 [V26,T15] ( 5, 40 ) ref -> [rbp-0xA0] class-hnd spill-single-def <System.Reflection.MethodInfo>
-; V27 loc17 [V27,T18] ( 4, 32 ) ref -> [rbp-0xA8] class-hnd spill-single-def <System.Reflection.MethodInfo>
-; V28 loc18 [V28,T21] ( 3, 24 ) ref -> [rbp-0xB0] class-hnd spill-single-def <System.Reflection.ParameterInfo[]>
+; V26 loc16 [V26,T15] ( 5, 40 ) ref -> [rbp-0xA8] class-hnd spill-single-def <System.Reflection.MethodInfo>
+; V27 loc17 [V27,T18] ( 4, 32 ) ref -> [rbp-0xB0] class-hnd spill-single-def <System.Reflection.MethodInfo>
+; V28 loc18 [V28,T21] ( 3, 24 ) ref -> [rbp-0xB8] class-hnd spill-single-def <System.Reflection.ParameterInfo[]>
; V29 loc19 [V29,T37] ( 4, 8 ) int -> rsi
; V30 OutArgs [V30 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V31 tmp1 [V31,T40] ( 3, 6 ) ref -> [rbp-0xB8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method]>
+; V31 tmp1 [V31,T40] ( 3, 6 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method]>
; V32 tmp2 [V32,T36] ( 2, 16 ) ubyte -> rdi "Inline return value spill temp"
; V33 tmp3 [V33,T09] ( 4, 48 ) ref -> rax "spilling varStr"
; V34 tmp4 [V34,T20] ( 3, 32 ) int -> rdi "spilling unroll qmark"
; V35 tmp5 [V35,T22] ( 3, 24 ) ref -> rdi "argument with side effect"
; V36 tmp6 [V36,T04] ( 3, 96 ) ref -> rdi "argument with side effect"
; V37 tmp7 [V37,T23] ( 3, 24 ) ref -> rsi "arr expr"
; V38 tmp8 [V38,T07] ( 2, 64 ) ref -> rcx "arr expr"
; V39 cse0 [V39,T25] ( 3, 24 ) long -> [rbp-0x60] spill-single-def "CSE #07: moderate"
; V40 cse1 [V40,T16] ( 4, 40 ) int -> rdx "CSE #08: moderate"
; V41 cse2 [V41,T24] ( 3, 24 ) ref -> rdi "CSE #09: moderate"
; V42 cse3 [V42,T14] ( 6, 43 ) int -> [rbp-0x64] spill-single-def "CSE #01: aggressive"
-; V43 cse4 [V43,T03] ( 6, 96 ) long -> [rbp-0x70] spill-single-def "CSE #04: aggressive"
+; V43 cse4 [V43,T03] ( 6, 96 ) long -> [rbp-0x70] "CSE #04: aggressive"
; V44 cse5 [V44,T26] ( 3, 24 ) int -> rax "CSE #10: moderate"
; V45 rat0 [V45,T05] ( 8, 84 ) long -> rsi "Widened IV V29"
-; V46 rat1 [V46,T11] ( 3, 44.80) int -> rcx "ReplaceWithLclVar is creating a new local variable"
+; V46 rat1 [V46,T11] ( 3, 47.67) int -> registers "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 184
+; Lcl frame size = 200
G_M46810_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 184
- lea rbp, [rsp+0xE0]
+ sub rsp, 200
+ lea rbp, [rsp+0xF0]
vxorps xmm8, xmm8, xmm8
vmovdqa xmmword ptr [rbp-0x50], xmm8
xor eax, eax
mov qword ptr [rbp-0x40], rax
- mov gword ptr [rbp-0x78], rcx
+ mov gword ptr [rbp-0x80], rcx
mov rbx, rdi
mov r12, rsi
mov r15d, edx
mov r13, r8
mov r14d, r9d
;; size=60 bbWeight=1 PerfScore 12.58
G_M46810_IG02:
xor r9d, r9d
test r13, r13
mov dword ptr [rbp-0x2C], r9d
je SHORT G_M46810_IG04
;; size=12 bbWeight=1 PerfScore 2.50
G_M46810_IG03:
mov r9d, dword ptr [r13+0x08]
mov dword ptr [rbp-0x2C], r9d
;; size=8 bbWeight=0.50 PerfScore 1.50
G_M46810_IG04:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xB8], rax
+ mov gword ptr [rbp-0xC0], rax
mov ecx, dword ptr [rbx+0x08]
mov dword ptr [rbp-0x64], ecx
mov esi, ecx
mov rdi, rax
mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this
call [rdx]System.Collections.Generic.List`1[System.__Canon]:.ctor(int):this
- mov rax, gword ptr [rbp-0xB8]
- mov gword ptr [rbp-0x80], rax
+ mov rax, gword ptr [rbp-0xC0]
+ mov gword ptr [rbp-0x88], rax
mov ecx, dword ptr [rbp-0x64]
test ecx, ecx
jne SHORT G_M46810_IG06
- ;; size=63 bbWeight=1 PerfScore 13.25
+ ;; size=66 bbWeight=1 PerfScore 13.25
G_M46810_IG05:
- mov r15, gword ptr [rbp-0x80]
+ mov r12, gword ptr [rbp-0x88]
jmp G_M46810_IG49
- align [5 bytes for IG45]
- ;; size=14 bbWeight=0.50 PerfScore 1.50
+ align [6 bytes for IG45]
+ ;; size=18 bbWeight=0.50 PerfScore 1.50
G_M46810_IG06:
mov dword ptr [rbp-0x30], 1
xor esi, esi
jmp SHORT G_M46810_IG08
;; size=11 bbWeight=0.50 PerfScore 1.62
G_M46810_IG07:
+ mov ecx, esi
mov esi, edx
- ;; size=2 bbWeight=2 PerfScore 0.50
+ ;; size=4 bbWeight=2 PerfScore 1.00
G_M46810_IG08:
cmp esi, ecx
jae G_M46810_IG54
mov dword ptr [rbp-0x34], esi
mov edi, esi
mov rdi, gword ptr [rbx+8*rdi+0x10]
mov r8, qword ptr [rdi]
mov r8, qword ptr [r8+0x40]
call [r8+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
- mov gword ptr [rbp-0x88], rax
+ mov gword ptr [rbp-0x90], rax
mov rcx, gword ptr [rbp+0x10]
test rcx, rcx
jne SHORT G_M46810_IG13
;; size=45 bbWeight=4 PerfScore 59.00
G_M46810_IG09:
mov gword ptr [rbp+0x10], rcx
;; size=4 bbWeight=2 PerfScore 2.00
G_M46810_IG10:
mov edi, dword ptr [rbp-0x34]
mov rsi, gword ptr [rbx+8*rdi+0x10]
- mov gword ptr [rbp-0x90], rsi
xor r8d, r8d
mov dword ptr [rbp-0x38], r8d
mov rdi, rsi
+ mov gword ptr [rbp-0x98], rsi
mov r9, qword ptr [rsi]
mov qword ptr [rbp-0x70], r9
mov r10, qword ptr [r9+0x40]
call [r10+0x28]System.Reflection.MemberInfo:get_MemberType():int:this
cmp eax, 16
jg SHORT G_M46810_IG16
;; size=45 bbWeight=32 PerfScore 472.00
G_M46810_IG11:
- lea ecx, [rax-0x01]
- cmp ecx, 3
- ja G_M46810_IG18
- ;; size=12 bbWeight=8 PerfScore 14.00
+ dec eax
+ cmp eax, 15
+ ja G_M46810_IG39
+ ;; size=11 bbWeight=8 PerfScore 12.00
G_M46810_IG12:
- mov edi, ecx
- lea rax, [reloc @RWD00]
- mov eax, dword ptr [rax+4*rdi]
- lea rcx, G_M46810_IG02
- add rax, rcx
- jmp rax
- ;; size=24 bbWeight=6.40 PerfScore 38.40
+ mov esi, eax
+ mov rax, gword ptr [rbp-0x98]
+ mov rcx, qword ptr [rbp-0x70]
+ mov edx, dword ptr [rbp-0x38]
+ lea rdi, [reloc @RWD00]
+ mov edi, dword ptr [rdi+4*rsi]
+ lea r8, G_M46810_IG02
+ add rdi, r8
+ jmp rdi
+ ;; size=38 bbWeight=7.83 PerfScore 70.50
G_M46810_IG13:
mov gword ptr [rbp+0x10], rcx
mov rdi, rcx
mov rsi, rax
mov rdx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:IsOrInheritsFrom(System.Type,System.Type):ubyte
call [rdx]Microsoft.VisualBasic.CompilerServices.Symbols:IsOrInheritsFrom(System.Type,System.Type):ubyte
test eax, eax
je SHORT G_M46810_IG10
;; size=26 bbWeight=2 PerfScore 12.00
G_M46810_IG14:
xor edx, edx
xor ebx, ebx
- mov r15, gword ptr [rbp-0x80]
- cmp dword ptr [r15+0x10], 0
+ mov r12, gword ptr [rbp-0x88]
+ cmp dword ptr [r12+0x10], 0
jle G_M46810_IG49
- ;; size=19 bbWeight=0.50 PerfScore 2.75
+ ;; size=23 bbWeight=0.50 PerfScore 2.75
G_M46810_IG15:
- mov edx, dword ptr [r15+0x10]
+ mov edx, dword ptr [r12+0x10]
cmp ebx, edx
jb G_M46810_IG43
jmp G_M46810_IG52
- ;; size=17 bbWeight=4 PerfScore 21.00
+ ;; size=18 bbWeight=4 PerfScore 21.00
G_M46810_IG16:
cmp eax, 32
- je SHORT G_M46810_IG17
+ je G_M46810_IG20
cmp eax, 64
- je SHORT G_M46810_IG17
+ je G_M46810_IG20
cmp eax, 128
- jne G_M46810_IG39
- ;; size=21 bbWeight=8 PerfScore 30.00
+ je G_M46810_IG20
+ jmp G_M46810_IG39
+ ;; size=34 bbWeight=8 PerfScore 46.00
G_M46810_IG17:
test r14b, r14b
+ mov qword ptr [rbp-0x70], rcx
+ mov dword ptr [rbp-0x38], edx
jne G_M46810_IG39
- xor edx, edx
- mov dword ptr [rbp-0x30], edx
- jmp G_M46810_IG39
- ;; size=19 bbWeight=8 PerfScore 36.00
-G_M46810_IG18:
- cmp eax, 8
- jne G_M46810_IG25
- ;; size=9 bbWeight=8 PerfScore 10.00
-G_M46810_IG19:
- mov rsi, gword ptr [rbp-0x90]
- mov rdi, 0xD1FFAB1E ; System.Reflection.MethodBase
- mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
- call [rcx]CORINFO_HELP_CHKCASTCLASS
- test r14b, r14b
- je SHORT G_M46810_IG24
- mov rdi, 0xD1FFAB1E ; global ptr
- test byte ptr [rdi], 1
- je G_M46810_IG51
- ;; size=53 bbWeight=8 PerfScore 80.00
-G_M46810_IG20:
- mov rdi, gword ptr [rbp-0x90]
- mov rax, qword ptr [rbp-0x70]
- mov rcx, qword ptr [rax+0x50]
- call [rcx+0x20]System.Reflection.MethodBase:get_Attributes():int:this
- test eax, 0x800
- je G_M46810_IG39
- mov rdi, gword ptr [rbp-0x90]
- mov rax, qword ptr [rbp-0x70]
- mov rcx, qword ptr [rax+0x40]
- call [rcx+0x30]System.Reflection.MemberInfo:get_Name():System.String:this
- cmp dword ptr [rax+0x08], 3
- jl SHORT G_M46810_IG22
- ;; size=53 bbWeight=8 PerfScore 154.00
-G_M46810_IG21:
- mov edi, dword ptr [rax+0x0C]
- xor edi, 0xD1FFAB1E
- mov eax, dword ptr [rax+0x0E]
- xor eax, 0xD1FFAB1E
- or edi, eax
- sete dil
- movzx rdi, dil
- jmp SHORT G_M46810_IG23
- ;; size=29 bbWeight=4 PerfScore 32.00
-G_M46810_IG22:
- xor edi, edi
- ;; size=2 bbWeight=4 PerfScore 1.00
-G_M46810_IG23:
- test edi, edi
- je G_M46810_IG39
- ;; size=8 bbWeight=8 PerfScore 10.00
-G_M46810_IG24:
- mov rdi, gword ptr [rbp-0x90]
- mov rax, qword ptr [rbp-0x70]
- mov rax, qword ptr [rax+0x50]
- call [rax+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this
mov gword ptr [rbp-0x98], rax
- mov rdi, gword ptr [rbp-0x90]
- mov rcx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:GetTypeParameters(System.Reflection.MemberInfo):System.Type[]
- call [rcx]Microsoft.VisualBasic.CompilerServices.Symbols:GetTypeParameters(System.Reflection.MemberInfo):System.Type[]
- mov r8d, dword ptr [rax+0x08]
- mov dword ptr [rbp-0x38], r8d
- mov rdi, gword ptr [rbp-0x90]
- mov rcx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte
- call [rcx]Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte
- test eax, eax
- je G_M46810_IG29
- jmp G_M46810_IG28
- ;; size=84 bbWeight=8 PerfScore 182.00
-G_M46810_IG25:
- cmp eax, 16
- jne G_M46810_IG39
- test r14b, r14b
- jne G_M46810_IG39
- mov rsi, gword ptr [rbp-0x90]
+ mov rsi, rax
mov rdi, 0xD1FFAB1E ; System.Reflection.PropertyInfo
- mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
- call [rax]CORINFO_HELP_CHKCASTCLASS
- mov rdi, gword ptr [rbp-0x90]
+ mov r8, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
+ call [r8]CORINFO_HELP_CHKCASTCLASS
+ mov rdi, gword ptr [rbp-0x98]
xor esi, esi
mov rax, qword ptr [rbp-0x70]
mov rax, qword ptr [rax+0x58]
mov qword ptr [rbp-0x60], rax
call [rax+0x08]System.Reflection.PropertyInfo:GetGetMethod(ubyte):System.Reflection.MethodInfo:this
- mov gword ptr [rbp-0xA0], rax
+ mov gword ptr [rbp-0xA8], rax
test rax, rax
- jne G_M46810_IG27
- mov rdi, gword ptr [rbp-0x90]
+ jne G_M46810_IG19
+ mov rdi, gword ptr [rbp-0x98]
xor esi, esi
mov rax, qword ptr [rbp-0x60]
call [rax+0x18]System.Reflection.PropertyInfo:GetSetMethod(ubyte):System.Reflection.MethodInfo:this
- mov gword ptr [rbp-0xA8], rax
+ mov gword ptr [rbp-0xB0], rax
mov rdi, rax
mov rcx, qword ptr [rax]
mov rcx, qword ptr [rcx+0x50]
call [rcx+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this
- mov gword ptr [rbp-0xB0], rax
+ mov gword ptr [rbp-0xB8], rax
mov esi, dword ptr [rax+0x08]
sub esi, 2
jo G_M46810_IG53
add esi, 1
jo G_M46810_IG53
movsxd rsi, esi
mov rdi, 0xD1FFAB1E ; System.Reflection.ParameterInfo[]
call CORINFO_HELP_NEWARR_1_OBJ
mov edx, dword ptr [rax+0x08]
- mov rdi, gword ptr [rbp-0xB0]
- mov gword ptr [rbp-0x98], rax
+ mov rdi, gword ptr [rbp-0xB8]
+ mov gword ptr [rbp-0xA0], rax
mov rsi, rax
mov rcx, 0xD1FFAB1E ; code for System.Array:Copy(System.Array,System.Array,int)
call [rcx]System.Array:Copy(System.Array,System.Array,int)
- mov rdi, gword ptr [rbp-0xA8]
+ mov rdi, gword ptr [rbp-0xB0]
mov rax, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte
- ;; size=218 bbWeight=8 PerfScore 374.00
-G_M46810_IG26:
+ ;; size=220 bbWeight=8 PerfScore 382.00
+G_M46810_IG18:
call [rax]Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte
test eax, eax
- je SHORT G_M46810_IG29
- jmp SHORT G_M46810_IG28
- ;; size=8 bbWeight=8 PerfScore 50.00
-G_M46810_IG27:
+ je G_M46810_IG28
+ jmp G_M46810_IG27
+ ;; size=15 bbWeight=8 PerfScore 50.00
+G_M46810_IG19:
mov rdi, rax
mov rcx, qword ptr [rax]
mov rcx, qword ptr [rcx+0x50]
call [rcx+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this
- mov gword ptr [rbp-0x98], rax
- mov rdi, gword ptr [rbp-0xA0]
+ mov gword ptr [rbp-0xA0], rax
+ mov rdi, gword ptr [rbp-0xA8]
mov rcx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte
call [rcx]Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte
test eax, eax
- je SHORT G_M46810_IG29
- ;; size=43 bbWeight=8 PerfScore 110.00
-G_M46810_IG28:
- xor eax, eax
- mov dword ptr [rbp-0x30], eax
+ je G_M46810_IG28
+ jmp G_M46810_IG27
+ ;; size=52 bbWeight=8 PerfScore 126.00
+G_M46810_IG20:
+ test r14b, r14b
+ jne G_M46810_IG39
+ xor edx, edx
+ mov dword ptr [rbp-0x30], edx
+ jmp G_M46810_IG39
+ ;; size=19 bbWeight=8 PerfScore 36.00
+G_M46810_IG21:
+ mov qword ptr [rbp-0x70], rcx
+ mov gword ptr [rbp-0x98], rax
+ mov rsi, rax
+ mov rdi, 0xD1FFAB1E ; System.Reflection.MethodBase
+ mov rdx, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
+ call [rdx]CORINFO_HELP_CHKCASTCLASS
+ test r14b, r14b
+ je G_M46810_IG26
+ mov rdi, 0xD1FFAB1E ; global ptr
+ test byte ptr [rdi], 1
+ je G_M46810_IG51
+ ;; size=64 bbWeight=8 PerfScore 90.00
+G_M46810_IG22:
+ mov rdi, gword ptr [rbp-0x98]
+ mov rax, qword ptr [rbp-0x70]
+ mov rcx, qword ptr [rax+0x50]
+ call [rcx+0x20]System.Reflection.MethodBase:get_Attributes():int:this
+ test eax, 0x800
+ je G_M46810_IG39
+ mov rax, gword ptr [rbp-0x98]
+ mov rcx, qword ptr [rbp-0x70]
+ mov gword ptr [rbp-0x98], rax
+ mov rdi, rax
+ mov qword ptr [rbp-0x70], rcx
+ mov rdx, qword ptr [rcx+0x40]
+ call [rdx+0x30]System.Reflection.MemberInfo:get_Name():System.String:this
+ cmp dword ptr [rax+0x08], 3
+ jl SHORT G_M46810_IG24
+ ;; size=67 bbWeight=8 PerfScore 172.00
+G_M46810_IG23:
+ mov edi, dword ptr [rax+0x0C]
+ xor edi, 0xD1FFAB1E
+ mov eax, dword ptr [rax+0x0E]
+ xor eax, 0xD1FFAB1E
+ or edi, eax
+ sete dil
+ movzx rdi, dil
+ jmp SHORT G_M46810_IG25
+ ;; size=29 bbWeight=4 PerfScore 32.00
+G_M46810_IG24:
+ xor edi, edi
+ ;; size=2 bbWeight=4 PerfScore 1.00
+G_M46810_IG25:
+ test edi, edi
+ je G_M46810_IG39
+ ;; size=8 bbWeight=8 PerfScore 10.00
+G_M46810_IG26:
+ mov rdi, gword ptr [rbp-0x98]
+ mov rax, qword ptr [rbp-0x70]
+ mov rax, qword ptr [rax+0x50]
+ call [rax+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this
+ mov gword ptr [rbp-0xA0], rax
+ mov rdi, gword ptr [rbp-0x98]
+ mov rcx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:GetTypeParameters(System.Reflection.MemberInfo):System.Type[]
+ call [rcx]Microsoft.VisualBasic.CompilerServices.Symbols:GetTypeParameters(System.Reflection.MemberInfo):System.Type[]
+ mov edx, dword ptr [rax+0x08]
+ mov dword ptr [rbp-0x38], edx
+ mov rdi, gword ptr [rbp-0x98]
+ mov rcx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte
+ call [rcx]Microsoft.VisualBasic.CompilerServices.Symbols:IsShadows(System.Reflection.MethodBase):ubyte
+ test eax, eax
+ je SHORT G_M46810_IG28
+ ;; size=73 bbWeight=8 PerfScore 166.00
+G_M46810_IG27:
+ xor ecx, ecx
+ mov dword ptr [rbp-0x30], ecx
;; size=5 bbWeight=8 PerfScore 10.00
-G_M46810_IG29:
+G_M46810_IG28:
xor ecx, ecx
mov dword ptr [rbp-0x40], ecx
;; size=5 bbWeight=8 PerfScore 10.00
-G_M46810_IG30:
+G_M46810_IG29:
mov dword ptr [rbp-0x48], ecx
mov dword ptr [rbp-0x50], -1
lea rcx, [rbp-0x50]
lea rsi, [rbp-0x40]
lea rdx, [rbp-0x48]
- mov rdi, gword ptr [rbp-0x98]
+ mov rdi, gword ptr [rbp-0xA0]
mov r8, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.Symbols:GetAllParameterCounts(System.Reflection.ParameterInfo[],byref,byref,byref)
call [r8]Microsoft.VisualBasic.CompilerServices.Symbols:GetAllParameterCounts(System.Reflection.ParameterInfo[],byref,byref,byref)
cmp dword ptr [rbp-0x50], 0
setge al
movzx rax, al
mov dword ptr [rbp-0x54], eax
cmp r15d, dword ptr [rbp-0x40]
jl G_M46810_IG38
test eax, eax
- jne SHORT G_M46810_IG31
+ jne SHORT G_M46810_IG30
cmp r15d, dword ptr [rbp-0x48]
jg G_M46810_IG38
;; size=79 bbWeight=8 PerfScore 154.00
-G_M46810_IG31:
+G_M46810_IG30:
mov r10d, dword ptr [rbp-0x2C]
test r10d, r10d
- jle SHORT G_M46810_IG32
+ jle SHORT G_M46810_IG31
mov dword ptr [rbp-0x2C], r10d
mov edi, dword ptr [rbp-0x38]
cmp r10d, edi
mov r10d, dword ptr [rbp-0x2C]
jne G_M46810_IG37
;; size=29 bbWeight=8 PerfScore 52.00
-G_M46810_IG32:
+G_M46810_IG31:
test eax, eax
- jne SHORT G_M46810_IG34
+ jne SHORT G_M46810_IG33
;; size=4 bbWeight=8 PerfScore 10.00
-G_M46810_IG33:
+G_M46810_IG32:
+ mov gword ptr [rbp-0x78], rbx
mov dword ptr [rbp-0x2C], r10d
- jmp SHORT G_M46810_IG35
- ;; size=6 bbWeight=4 PerfScore 12.00
-G_M46810_IG34:
+ jmp SHORT G_M46810_IG34
+ ;; size=10 bbWeight=4 PerfScore 16.00
+G_M46810_IG33:
cmp r15d, dword ptr [rbp-0x48]
+ mov gword ptr [rbp-0x78], rbx
mov dword ptr [rbp-0x2C], r10d
jne SHORT G_M46810_IG36
- ;; size=10 bbWeight=8 PerfScore 32.00
-G_M46810_IG35:
- mov r11, gword ptr [rbp-0x78]
+ ;; size=14 bbWeight=8 PerfScore 40.00
+G_M46810_IG34:
+ mov r11, gword ptr [rbp-0x80]
mov gword ptr [rsp], r11
mov gword ptr [rsp+0x08], r13
movzx rdi, r14b
mov dword ptr [rsp+0x10], edi
- mov rcx, gword ptr [rbp-0x80]
+ mov rcx, gword ptr [rbp-0x88]
mov gword ptr [rsp+0x18], rcx
mov r9, gword ptr [rbp+0x28]
mov gword ptr [rsp+0x20], r9
- mov rdi, gword ptr [rbp-0x90]
- mov rsi, gword ptr [rbp-0x98]
+ mov rdi, gword ptr [rbp-0x98]
+ mov rsi, gword ptr [rbp-0xA0]
mov edx, dword ptr [rbp-0x50]
mov r8, r12
mov r9d, r15d
xor ecx, ecx
- mov r11, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
- call [r11]Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
+ mov rbx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
+ call [rbx]Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
cmp dword ptr [rbp-0x54], 0
- je G_M46810_IG39
- ;; size=87 bbWeight=8 PerfScore 146.00
+ jne SHORT G_M46810_IG36
+ ;; size=85 bbWeight=8 PerfScore 146.00
+G_M46810_IG35:
+ mov rbx, gword ptr [rbp-0x78]
+ jmp G_M46810_IG39
+ ;; size=9 bbWeight=4 PerfScore 12.00
G_M46810_IG36:
- mov rax, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x80]
mov gword ptr [rsp], rax
mov gword ptr [rsp+0x08], r13
movzx rdi, r14b
mov dword ptr [rsp+0x10], edi
- mov r11, gword ptr [rbp-0x80]
+ mov r11, gword ptr [rbp-0x88]
mov gword ptr [rsp+0x18], r11
mov rcx, gword ptr [rbp+0x28]
mov gword ptr [rsp+0x20], rcx
- mov rdi, gword ptr [rbp-0x90]
- mov rsi, gword ptr [rbp-0x98]
+ mov rdi, gword ptr [rbp-0x98]
+ mov rsi, gword ptr [rbp-0xA0]
mov edx, dword ptr [rbp-0x50]
mov r8, r12
mov r9d, r15d
mov ecx, 1
- mov rax, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
- call [rax]Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
+ mov rbx, 0xD1FFAB1E ; code for Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
+ call [rbx]Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container)
+ mov rbx, gword ptr [rbp-0x78]
jmp SHORT G_M46810_IG39
- ;; size=81 bbWeight=8 PerfScore 138.00
+ ;; size=88 bbWeight=8 PerfScore 146.00
G_M46810_IG37:
mov rax, bword ptr [rbp+0x20]
mov edi, dword ptr [rax]
add edi, 1
jo G_M46810_IG53
mov bword ptr [rbp+0x20], rax
mov dword ptr [rax], edi
mov dword ptr [rbp-0x2C], r10d
jmp SHORT G_M46810_IG39
;; size=27 bbWeight=8 PerfScore 74.00
G_M46810_IG38:
mov rcx, bword ptr [rbp+0x18]
mov edi, dword ptr [rcx]
add edi, 1
jo G_M46810_IG53
mov bword ptr [rbp+0x18], rcx
mov dword ptr [rcx], edi
;; size=21 bbWeight=8 PerfScore 50.00
G_M46810_IG39:
mov edx, dword ptr [rbp-0x34]
add edx, 1
jo G_M46810_IG53
cmp dword ptr [rbp-0x64], edx
jle SHORT G_M46810_IG42
;; size=17 bbWeight=32 PerfScore 168.00
G_M46810_IG40:
mov dword ptr [rbp-0x34], edx
mov edi, edx
mov rdi, gword ptr [rbx+8*rdi+0x10]
- mov r8, qword ptr [rdi]
- mov r8, qword ptr [r8+0x40]
- call [r8+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
- mov rcx, gword ptr [rbp-0x88]
+ mov rax, qword ptr [rdi]
+ mov rax, qword ptr [rax+0x40]
+ call [rax+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this
+ mov rcx, gword ptr [rbp-0x90]
cmp rax, rcx
je G_M46810_IG10
- ;; size=37 bbWeight=16 PerfScore 200.00
+ ;; size=36 bbWeight=16 PerfScore 200.00
G_M46810_IG41:
mov edx, dword ptr [rbp-0x34]
;; size=3 bbWeight=8 PerfScore 8.00
G_M46810_IG42:
- mov r8d, dword ptr [rbp-0x30]
- test r8d, r8d
+ mov ecx, dword ptr [rbp-0x30]
+ test ecx, ecx
je G_M46810_IG14
mov esi, dword ptr [rbp-0x64]
cmp esi, edx
- mov dword ptr [rbp-0x30], r8d
- mov ecx, esi
+ mov dword ptr [rbp-0x30], ecx
jg G_M46810_IG07
jmp G_M46810_IG14
- ;; size=35 bbWeight=4 PerfScore 31.00
+ ;; size=30 bbWeight=4 PerfScore 30.00
G_M46810_IG43:
- mov rdi, gword ptr [r15+0x08]
+ mov rdi, gword ptr [r12+0x08]
mov rsi, rdi
mov eax, dword ptr [rsi+0x08]
cmp ebx, eax
jae G_M46810_IG54
mov ecx, ebx
cmp gword ptr [rsi+8*rcx+0x10], 0
jne SHORT G_M46810_IG48
- ;; size=28 bbWeight=4 PerfScore 39.00
+ ;; size=29 bbWeight=4 PerfScore 39.00
G_M46810_IG44:
mov esi, ebx
add esi, 1
jo SHORT G_M46810_IG53
jmp SHORT G_M46810_IG46
;; size=9 bbWeight=2 PerfScore 7.00
G_M46810_IG45:
add esi, 1
jo SHORT G_M46810_IG53
;; size=5 bbWeight=8 PerfScore 10.00
G_M46810_IG46:
cmp esi, edx
jge SHORT G_M46810_IG47
jae SHORT G_M46810_IG52
mov rcx, rdi
cmp esi, eax
jae SHORT G_M46810_IG54
cmp gword ptr [rcx+8*rsi+0x10], 0
je SHORT G_M46810_IG45
;; size=21 bbWeight=16 PerfScore 124.00
G_M46810_IG47:
sub esi, ebx
jo SHORT G_M46810_IG53
mov edx, esi
- mov rdi, r15
+ mov rdi, r12
mov esi, ebx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:RemoveRange(int,int):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:RemoveRange(int,int):this
;; size=23 bbWeight=2 PerfScore 10.50
G_M46810_IG48:
add ebx, 1
jo SHORT G_M46810_IG53
- cmp ebx, dword ptr [r15+0x10]
+ cmp ebx, dword ptr [r12+0x10]
jl G_M46810_IG15
- ;; size=15 bbWeight=4 PerfScore 21.00
+ ;; size=16 bbWeight=4 PerfScore 21.00
G_M46810_IG49:
- mov rax, r15
+ mov rax, r12
;; size=3 bbWeight=1 PerfScore 0.25
G_M46810_IG50:
- add rsp, 184
+ add rsp, 200
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
G_M46810_IG51:
mov rdi, 0xD1FFAB1E ; Microsoft.VisualBasic.CompilerServices.Symbols
call CORINFO_HELP_GET_GCSTATIC_BASE
- jmp G_M46810_IG20
+ jmp G_M46810_IG22
;; size=20 bbWeight=0 PerfScore 0.00
G_M46810_IG52:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M46810_IG53:
call CORINFO_HELP_OVERFLOW
int3
;; size=6 bbWeight=0 PerfScore 0.00
G_M46810_IG54:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M46810_IG19 - G_M46810_IG02
- dd G_M46810_IG17 - G_M46810_IG02
+RWD00 dd G_M46810_IG21 - G_M46810_IG02
+ dd G_M46810_IG20 - G_M46810_IG02
+ dd G_M46810_IG39 - G_M46810_IG02
+ dd G_M46810_IG20 - G_M46810_IG02
+ dd G_M46810_IG39 - G_M46810_IG02
+ dd G_M46810_IG39 - G_M46810_IG02
+ dd G_M46810_IG39 - G_M46810_IG02
+ dd G_M46810_IG21 - G_M46810_IG02
+ dd G_M46810_IG39 - G_M46810_IG02
+ dd G_M46810_IG39 - G_M46810_IG02
+ dd G_M46810_IG39 - G_M46810_IG02
+ dd G_M46810_IG39 - G_M46810_IG02
+ dd G_M46810_IG39 - G_M46810_IG02
+ dd G_M46810_IG39 - G_M46810_IG02
dd G_M46810_IG39 - G_M46810_IG02
dd G_M46810_IG17 - G_M46810_IG02
-; Total bytes of code 1522, prolog size 60, PerfScore 3034.61, instruction count 377, allocated bytes for code 1522 (MethodHash=dba74925) for method Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],ubyte,System.Type,byref,byref,Microsoft.VisualBasic.CompilerServices.Symbols+Container):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (FullOpts)
+; Total bytes of code 1603, prolog size 60, PerfScore 3138.21, instruction count 390, allocated bytes for code 1603 (MethodHash=dba74925) for method Microsoft.VisualBasic.CompilerServices.OverloadResolution:CollectOverloadCandidates(System.Reflection.MemberInfo[],System.Object[],int,System.String[],System.Type[],ubyte,System.Type,byref,byref,Microsoft.VisualBasic.CompilerServices.Symbols+Container):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (FullOpts)
; ============================================================ 26 (8.72 % of base) - System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte ; Assembly listing for method System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T04] ( 4, 8 ) long -> rdi single-def
; V01 arg1 [V01,T00] ( 10, 23.50) int -> rsi
; V02 arg2 [V02,T10] ( 4, 3.50) byref -> rdx single-def
; V03 arg3 [V03,T12] ( 3, 2.25) ubyte -> rcx single-def
; V04 arg4 [V04,T09] ( 3, 4 ) ubyte -> r8 single-def
; V05 loc0 [V05,T11] ( 4, 5.50) int -> r9
; V06 loc1 [V06,T03] ( 6, 11 ) int -> r10
; V07 loc2 [V07,T06] ( 6, 9.50) ubyte -> r11
; V08 loc3 [V08,T08] ( 4, 7 ) ubyte -> rbx
; V09 loc4 [V09,T01] ( 9, 22.00) ushort -> rax
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V11 tmp1 [V11,T14] ( 3, 3 ) int -> r11 "dup spill"
;* V12 tmp2 [V12 ] ( 0, 0 ) int -> zero-ref
; V13 tmp3 [V13,T15] ( 2, 2 ) int -> rax "Single return block return value"
; V14 cse0 [V14,T05] ( 3, 10 ) int -> r14 "CSE #05: aggressive"
; V15 cse1 [V15,T07] ( 4, 8 ) int -> r15 "CSE #02: aggressive"
-; V16 cse2 [V16,T13] ( 2, 4.25) int -> rcx hoist "CSE #01: moderate"
+; V16 cse2 [V16,T13] ( 2, 4.25) int -> [rbp-0x2C] spill-single-def hoist "CSE #01: moderate"
; V17 rat0 [V17,T02] ( 3, 11.99) int -> r13 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M57636_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- lea rbp, [rsp+0x28]
- ;; size=15 bbWeight=1 PerfScore 6.50
+ push rax
+ lea rbp, [rsp+0x30]
+ ;; size=16 bbWeight=1 PerfScore 7.50
G_M57636_IG02:
xor r9d, r9d
xor r10d, r10d
xor r11d, r11d
xor ebx, ebx
mov r15d, dword ptr [rdx]
cmp esi, r15d
- jge G_M57636_IG12
+ jge G_M57636_IG18
;; size=23 bbWeight=1 PerfScore 4.25
G_M57636_IG03:
movzx rcx, cl
+ mov dword ptr [rbp-0x2C], ecx
align [0 bytes for IG04]
- ;; size=3 bbWeight=0.25 PerfScore 0.06
+ ;; size=6 bbWeight=0.25 PerfScore 0.31
G_M57636_IG04:
movsxd rax, esi
movzx r14, word ptr [rdi+2*rax]
mov eax, r14d
test ecx, ecx
- jne SHORT G_M57636_IG07
- ;; size=15 bbWeight=4 PerfScore 15.00
+ jne G_M57636_IG14
+ ;; size=19 bbWeight=4 PerfScore 15.00
G_M57636_IG05:
cmp eax, 47
- je G_M57636_IG12
+ je G_M57636_IG18
cmp eax, 92
- je SHORT G_M57636_IG12
+ je G_M57636_IG18
test r8b, r8b
- je SHORT G_M57636_IG09
+ je SHORT G_M57636_IG08
cmp eax, 63
- ja SHORT G_M57636_IG09
- ;; size=24 bbWeight=2 PerfScore 10.00
+ ja SHORT G_M57636_IG08
+ ;; size=28 bbWeight=2 PerfScore 10.00
G_M57636_IG06:
- mov r13, 0xD1FFAB1E
- bt r13, rax
- jae SHORT G_M57636_IG12
- jmp SHORT G_M57636_IG09
- ;; size=18 bbWeight=2.00 PerfScore 7.48
-G_M57636_IG07:
mov r13d, eax
- sub r13d, 37
- cmp r13d, 56
- ja SHORT G_M57636_IG09
- ;; size=13 bbWeight=2 PerfScore 3.50
+ lea r12, [reloc @RWD00]
+ mov r12d, dword ptr [r12+4*r13]
+ lea rcx, G_M57636_IG02
+ add r12, rcx
+ jmp r12
+ ;; size=27 bbWeight=2.00 PerfScore 11.98
+G_M57636_IG07:
+ mov ecx, dword ptr [rbp-0x2C]
+ ;; size=3 bbWeight=1.00 PerfScore 1.00
G_M57636_IG08:
- mov r12, 0xD1FFAB1E
- bt r12, r13
- jb SHORT G_M57636_IG12
- ;; size=16 bbWeight=2.00 PerfScore 3.49
-G_M57636_IG09:
lea r13d, [rax-0x30]
cmp r13d, 9
- jbe SHORT G_M57636_IG15
+ ja SHORT G_M57636_IG16
;; size=10 bbWeight=4 PerfScore 7.00
-G_M57636_IG10:
- cmp eax, 46
- jne G_M57636_IG18
+G_M57636_IG09:
test r11d, r11d
- je G_M57636_IG18
- test r10d, r10d
- setg r11b
- movzx r11, r11b
- test r11d, ebx
- jne SHORT G_M57636_IG18
- inc r9d
- xor r11d, r11d
- xor r10d, r10d
- xor ebx, ebx
- ;; size=45 bbWeight=2 PerfScore 12.50
-G_M57636_IG11:
- inc esi
- cmp esi, r15d
- jl G_M57636_IG04
- ;; size=11 bbWeight=4 PerfScore 6.00
-G_M57636_IG12:
- cmp r9d, 3
- sete al
- movzx rax, al
- and r11d, eax
- je SHORT G_M57636_IG13
- mov dword ptr [rdx], esi
- ;; size=17 bbWeight=0.50 PerfScore 1.88
-G_M57636_IG13:
- movzx rax, r11b
- ;; size=4 bbWeight=0.50 PerfScore 0.12
-G_M57636_IG14:
- pop rbx
- pop r12
- pop r13
- pop r14
- pop r15
- pop rbp
- ret
- ;; size=11 bbWeight=0.50 PerfScore 2.00
-G_M57636_IG15:
- test r11d, r11d
- jne SHORT G_M57636_IG17
+ jne SHORT G_M57636_IG11
cmp eax, 48
- jne SHORT G_M57636_IG17
+ jne SHORT G_M57636_IG11
lea r11d, [rsi+0x01]
cmp r11d, r15d
- jge SHORT G_M57636_IG16
+ jge SHORT G_M57636_IG10
lea eax, [rsi+0x01]
cdqe
cmp word ptr [rdi+2*rax], 48
- je SHORT G_M57636_IG18
+ je SHORT G_M57636_IG12
;; size=31 bbWeight=2 PerfScore 18.00
-G_M57636_IG16:
+G_M57636_IG10:
mov ebx, 1
;; size=5 bbWeight=2 PerfScore 0.50
-G_M57636_IG17:
+G_M57636_IG11:
mov r11d, 1
lea r10d, [r10+4*r10]
lea r10d, [r14+2*r10-0x30]
cmp r10d, 255
- jle SHORT G_M57636_IG11
+ jle SHORT G_M57636_IG17
;; size=24 bbWeight=2 PerfScore 6.00
-G_M57636_IG18:
+G_M57636_IG12:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M57636_IG19:
+G_M57636_IG13:
+ add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 2.00
+ ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M57636_IG14:
+ mov r13d, eax
+ sub r13d, 37
+ cmp r13d, 56
+ ja SHORT G_M57636_IG08
+ ;; size=13 bbWeight=2 PerfScore 3.50
+G_M57636_IG15:
+ mov r12, 0xD1FFAB1E
+ bt r12, r13
+ jb SHORT G_M57636_IG18
+ jmp SHORT G_M57636_IG08
+ ;; size=18 bbWeight=2.00 PerfScore 7.48
+G_M57636_IG16:
+ cmp eax, 46
+ jne SHORT G_M57636_IG12
+ test r11d, r11d
+ je SHORT G_M57636_IG12
+ test r10d, r10d
+ setg r11b
+ movzx r11, r11b
+ test r11d, ebx
+ jne SHORT G_M57636_IG12
+ inc r9d
+ xor r11d, r11d
+ xor r10d, r10d
+ xor ebx, ebx
+ ;; size=37 bbWeight=2 PerfScore 12.50
+G_M57636_IG17:
+ inc esi
+ cmp esi, r15d
+ jl G_M57636_IG04
+ ;; size=11 bbWeight=4 PerfScore 6.00
+G_M57636_IG18:
+ cmp r9d, 3
+ sete al
+ movzx rax, al
+ and r11d, eax
+ je SHORT G_M57636_IG19
+ mov dword ptr [rdx], esi
+ ;; size=17 bbWeight=0.50 PerfScore 1.88
+G_M57636_IG19:
+ movzx rax, r11b
+ ;; size=4 bbWeight=0.50 PerfScore 0.12
+G_M57636_IG20:
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ ret
+ ;; size=15 bbWeight=0.50 PerfScore 2.12
+RWD00 dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG18 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG18 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG07 - G_M57636_IG02
+ dd G_M57636_IG18 - G_M57636_IG02
-; Total bytes of code 298, prolog size 15, PerfScore 106.41, instruction count 98, allocated bytes for code 298 (MethodHash=dbf31edb) for method System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts)
+
+; Total bytes of code 324, prolog size 16, PerfScore 117.39, instruction count 106, allocated bytes for code 324 (MethodHash=dbf31edb) for method System.IPv4AddressHelper:IsValidCanonical(ulong,int,byref,ubyte,ubyte):ubyte (FullOpts)
; ============================================================ Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/4a3a7550d311d988ac4d6f92fb8711c3 |
Top method improvements-140 (-13.42 % of base) - Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GenerateBinaryOperator(Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall):System.Linq.Expressions.Expression:this ; Assembly listing for method Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GenerateBinaryOperator(Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall):System.Linq.Expressions.Expression:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 25 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T03] ( 4, 4 ) ref -> rbx this class-hnd single-def <Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter>
; V01 arg1 [V01,T04] ( 4, 4 ) ref -> r15 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall>
; V02 loc0 [V02,T07] ( 3, 3 ) ref -> r14 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.ExprList>
; V03 loc1 [V03,T00] ( 22, 11.50) ref -> r13 class-hnd single-def <System.Linq.Expressions.Expression>
; V04 loc2 [V04,T01] ( 22, 11.50) ref -> rax class-hnd single-def <System.Linq.Expressions.Expression>
-; V05 loc3 [V05,T05] ( 8, 5 ) int -> rbx
+; V05 loc3 [V05,T05] ( 7, 4.50) int -> rbx
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref "Single return block return value"
; V08 rat0 [V08,T06] ( 3, 4 ) ref -> rsi "Spilling to split statement for tree"
; V09 rat1 [V09,T02] ( 4, 7 ) ref -> r14 "replacement local"
; V10 rat2 [V10,T12] ( 3, 2 ) long -> rdi "CSE for expectedClsNode"
-; V11 rat3 [V11,T08] ( 3, 2.94) int -> r15 "ReplaceWithLclVar is creating a new local variable"
-; V12 rat4 [V12,T10] ( 3, 2.83) int -> rbx "ReplaceWithLclVar is creating a new local variable"
-; V13 rat5 [V13,T09] ( 3, 2.88) int -> r14 "ReplaceWithLclVar is creating a new local variable"
-; V14 rat6 [V14,T11] ( 3, 2.83) int -> r12 "ReplaceWithLclVar is creating a new local variable"
+; V11 rat3 [V11,T08] ( 3, 2.94) int -> rdi "ReplaceWithLclVar is creating a new local variable"
+; V12 rat4 [V12,T11] ( 3, 2.83) int -> rbx "ReplaceWithLclVar is creating a new local variable"
+; V13 rat5 [V13,T10] ( 3, 2.88) int -> r15 "ReplaceWithLclVar is creating a new local variable"
+; V14 rat6 [V14,T09] ( 3, 2.92) int -> rbx "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M50533_IG01:
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
mov r15, rsi
- ;; size=22 bbWeight=1 PerfScore 8.00
+ ;; size=19 bbWeight=1 PerfScore 6.00
G_M50533_IG02:
mov rsi, gword ptr [r15+0x40]
mov r14, rsi
test r14, r14
je SHORT G_M50533_IG04
;; size=12 bbWeight=1 PerfScore 3.50
G_M50533_IG03:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.ExprList
cmp qword ptr [r14], rdi
jne G_M50533_IG56
;; size=19 bbWeight=0.50 PerfScore 2.12
G_M50533_IG04:
mov rsi, gword ptr [r14+0x38]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GetExpression(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):System.Linq.Expressions.Expression:this
call [rax]Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GetExpression(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):System.Linq.Expressions.Expression:this
mov r13, rax
mov rsi, gword ptr [r14+0x40]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GetExpression(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):System.Linq.Expressions.Expression:this
call [rax]Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GetExpression(Microsoft.CSharp.RuntimeBinder.Semantics.Expr):System.Linq.Expressions.Expression:this
mov ebx, dword ptr [r15+0x60]
cmp ebx, 30
jle G_M50533_IG35
;; size=54 bbWeight=1 PerfScore 14.50
G_M50533_IG05:
cmp ebx, 32
jne SHORT G_M50533_IG07
mov rdi, r13
mov rsi, rax
xor edx, edx
xor rcx, rcx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:GreaterThanOrEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=25 bbWeight=0.50 PerfScore 1.25
G_M50533_IG06:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:GreaterThanOrEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG07:
- lea r15d, [rbx-0x23]
- cmp r15d, 16
+ lea edi, [rbx-0x23]
+ cmp edi, 16
ja SHORT G_M50533_IG09
- ;; size=10 bbWeight=0.50 PerfScore 0.88
+ ;; size=8 bbWeight=0.50 PerfScore 0.88
G_M50533_IG08:
- mov edi, r15d
+ mov edi, edi
lea rsi, [reloc @RWD00]
mov esi, dword ptr [rsi+4*rdi]
lea rdx, G_M50533_IG02
add rsi, rdx
jmp rsi
- ;; size=25 bbWeight=0.47 PerfScore 2.83
+ ;; size=24 bbWeight=0.47 PerfScore 2.83
G_M50533_IG09:
add ebx, -54
cmp ebx, 4
ja G_M50533_IG55
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M50533_IG10:
mov edi, ebx
lea rsi, [reloc @RWD68]
mov esi, dword ptr [rsi+4*rdi]
lea rdx, G_M50533_IG02
add rsi, rdx
jmp rsi
;; size=24 bbWeight=0.42 PerfScore 2.50
G_M50533_IG11:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:SubtractChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG12:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:SubtractChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG13:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Subtract(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG14:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:Subtract(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG15:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:RightShift(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG16:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:RightShift(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG17:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:OrElse(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG18:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:OrElse(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG19:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Or(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG20:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:Or(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG21:
mov rdi, r13
mov rsi, rax
xor edx, edx
xor rcx, rcx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:NotEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=20 bbWeight=0.50 PerfScore 0.62
G_M50533_IG22:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:NotEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG23:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:MultiplyChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG24:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:MultiplyChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG25:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Multiply(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG26:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:Multiply(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG27:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Modulo(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG28:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:Modulo(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG29:
mov rdi, r13
mov rsi, rax
xor edx, edx
xor rcx, rcx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:LessThanOrEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=20 bbWeight=0.50 PerfScore 0.62
G_M50533_IG30:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:LessThanOrEqual(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG31:
mov rdi, r13
mov rsi, rax
xor edx, edx
xor rcx, rcx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:LessThan(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=20 bbWeight=0.50 PerfScore 0.62
G_M50533_IG32:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:LessThan(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG33:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:LeftShift(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG34:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:LeftShift(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG35:
- lea r14d, [rbx-0x07]
- cmp r14d, 6
+ lea r15d, [rbx-0x07]
+ cmp r15d, 6
ja SHORT G_M50533_IG37
;; size=10 bbWeight=0.50 PerfScore 0.88
G_M50533_IG36:
- mov edi, r14d
+ mov edi, r15d
lea rsi, [reloc @RWD88]
mov esi, dword ptr [rsi+4*rdi]
lea rdx, G_M50533_IG02
add rsi, rdx
jmp rsi
;; size=25 bbWeight=0.44 PerfScore 2.62
G_M50533_IG37:
- lea r12d, [rbx-0x17]
- cmp r12d, 4
- ja SHORT G_M50533_IG39
- ;; size=10 bbWeight=0.50 PerfScore 0.88
+ add ebx, -23
+ cmp ebx, 7
+ ja G_M50533_IG55
+ ;; size=12 bbWeight=0.50 PerfScore 0.75
G_M50533_IG38:
- mov edi, r12d
+ mov edi, ebx
lea rsi, [reloc @RWD116]
mov esi, dword ptr [rsi+4*rdi]
lea rdx, G_M50533_IG02
add rsi, rdx
jmp rsi
- ;; size=25 bbWeight=0.42 PerfScore 2.50
+ ;; size=24 bbWeight=0.46 PerfScore 2.75
G_M50533_IG39:
- cmp ebx, 30
- jne G_M50533_IG55
mov rdi, r13
mov rsi, rax
xor edx, edx
xor rcx, rcx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:GreaterThan(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=29 bbWeight=0.50 PerfScore 1.25
+ ;; size=20 bbWeight=0.50 PerfScore 0.62
G_M50533_IG40:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:GreaterThan(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG41:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:ExclusiveOr(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG42:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:ExclusiveOr(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG43:
mov rdi, r13
mov rsi, rax
xor edx, edx
xor rcx, rcx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Equal(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=20 bbWeight=0.50 PerfScore 0.62
G_M50533_IG44:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:Equal(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG45:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Divide(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG46:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:Divide(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG47:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:AndAlso(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG48:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:AndAlso(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG49:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:And(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG50:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:And(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG51:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:AddChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG52:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:AddChecked(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG53:
mov rdi, r13
mov rsi, rax
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Linq.Expressions.Expression:Add(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
;; size=18 bbWeight=0.50 PerfScore 0.50
G_M50533_IG54:
- add rsp, 8
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Linq.Expressions.Expression:Add(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo):System.Linq.Expressions.BinaryExpression
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=11 bbWeight=0.50 PerfScore 2.25
G_M50533_IG55:
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Error:InternalCompilerError():System.Exception
call [rax]Microsoft.CSharp.RuntimeBinder.Error:InternalCompilerError():System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=21 bbWeight=0 PerfScore 0.00
G_M50533_IG56:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=13 bbWeight=0 PerfScore 0.00
RWD00 dd G_M50533_IG33 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG31 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG29 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG27 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG25 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG23 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG21 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG19 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG17 - G_M50533_IG02
RWD68 dd G_M50533_IG15 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG13 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG11 - G_M50533_IG02
RWD88 dd G_M50533_IG53 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG51 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG49 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG47 - G_M50533_IG02
RWD116 dd G_M50533_IG45 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG43 - G_M50533_IG02
dd G_M50533_IG55 - G_M50533_IG02
dd G_M50533_IG41 - G_M50533_IG02
+ dd G_M50533_IG55 - G_M50533_IG02
+ dd G_M50533_IG55 - G_M50533_IG02
+ dd G_M50533_IG39 - G_M50533_IG02
-; Total bytes of code 1043, prolog size 16, PerfScore 109.58, instruction count 335, allocated bytes for code 1043 (MethodHash=8c4a3a9a) for method Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GenerateBinaryOperator(Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall):System.Linq.Expressions.Expression:this (FullOpts)
+; Total bytes of code 903, prolog size 13, PerfScore 99.21, instruction count 289, allocated bytes for code 903 (MethodHash=8c4a3a9a) for method Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter:GenerateBinaryOperator(Microsoft.CSharp.RuntimeBinder.Semantics.ExprCall):System.Linq.Expressions.Expression:this (FullOpts)
; ============================================================ -100 (-18.80 % of base) - System.Text.RegularExpressions.RegexNode:Reduce():System.Text.RegularExpressions.RegexNode:this ; Assembly listing for method System.Text.RegularExpressions.RegexNode:Reduce():System.Text.RegularExpressions.RegexNode:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 15, 9 ) ref -> rdi this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-; V01 loc0 [V01,T01] ( 11, 6 ) ref -> rdi class-hnd <System.Text.RegularExpressions.RegexNode>
-; V02 loc1 [V02,T02] ( 7, 4.50) ubyte -> rax
+; V01 loc0 [V01,T01] ( 11, 6 ) ref -> rax class-hnd <System.Text.RegularExpressions.RegexNode>
+; V02 loc1 [V02,T02] ( 6, 4 ) ubyte -> rax
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
-; V05 rat0 [V05,T04] ( 3, 2.92) int -> rbx "ReplaceWithLclVar is creating a new local variable"
+; V05 rat0 [V05,T04] ( 3, 2.99) int -> rax "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M64711_IG01:
push rbp
- push rbx
- push rax
- lea rbp, [rsp+0x10]
- ;; size=8 bbWeight=1 PerfScore 3.50
+ mov rbp, rsp
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M64711_IG02:
movzx rax, byte ptr [rdi+0x2E]
cmp eax, 13
je SHORT G_M64711_IG04
;; size=9 bbWeight=1 PerfScore 3.25
G_M64711_IG03:
and dword ptr [rdi+0x28], -2
;; size=4 bbWeight=0.50 PerfScore 1.50
G_M64711_IG04:
cmp eax, 8
- jbe G_M64711_IG17
+ jbe G_M64711_IG16
;; size=9 bbWeight=1 PerfScore 1.25
G_M64711_IG05:
cmp eax, 11
- je G_M64711_IG18
- lea ebx, [rax-0x18]
- cmp ebx, 10
+ je G_M64711_IG17
+ add eax, -24
+ cmp eax, 21
ja SHORT G_M64711_IG07
- ;; size=17 bbWeight=0.50 PerfScore 1.50
+ ;; size=17 bbWeight=0.50 PerfScore 1.38
G_M64711_IG06:
- mov eax, ebx
+ mov eax, eax
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rax]
lea rdx, G_M64711_IG02
add rcx, rdx
jmp rcx
- ;; size=24 bbWeight=0.46 PerfScore 2.75
+ ;; size=24 bbWeight=0.49 PerfScore 2.97
G_M64711_IG07:
- cmp eax, 45
- je G_M64711_IG18
- ;; size=9 bbWeight=0.50 PerfScore 0.62
+ mov rax, rdi
+ jmp G_M64711_IG18
+ ;; size=8 bbWeight=0.50 PerfScore 1.12
G_M64711_IG08:
- jmp G_M64711_IG19
- ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M64711_IG09:
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceExpressionConditional():System.Text.RegularExpressions.RegexNode:this
call [rax]System.Text.RegularExpressions.RegexNode:ReduceExpressionConditional():System.Text.RegularExpressions.RegexNode:this
- mov rdi, rax
- jmp G_M64711_IG19
- ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M64711_IG10:
+ jmp SHORT G_M64711_IG18
+ ;; size=14 bbWeight=0.50 PerfScore 2.62
+G_M64711_IG09:
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceBackreferenceConditional():System.Text.RegularExpressions.RegexNode:this
call [rax]System.Text.RegularExpressions.RegexNode:ReduceBackreferenceConditional():System.Text.RegularExpressions.RegexNode:this
- mov rdi, rax
- jmp G_M64711_IG19
- ;; size=20 bbWeight=0.50 PerfScore 2.75
-G_M64711_IG11:
+ jmp SHORT G_M64711_IG18
+ ;; size=14 bbWeight=0.50 PerfScore 2.62
+G_M64711_IG10:
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceAtomic():System.Text.RegularExpressions.RegexNode:this
call [rax]System.Text.RegularExpressions.RegexNode:ReduceAtomic():System.Text.RegularExpressions.RegexNode:this
- mov rdi, rax
- jmp SHORT G_M64711_IG19
- ;; size=17 bbWeight=0.50 PerfScore 2.75
-G_M64711_IG12:
+ jmp SHORT G_M64711_IG18
+ ;; size=14 bbWeight=0.50 PerfScore 2.62
+G_M64711_IG11:
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceLookaround():System.Text.RegularExpressions.RegexNode:this
call [rax]System.Text.RegularExpressions.RegexNode:ReduceLookaround():System.Text.RegularExpressions.RegexNode:this
- mov rdi, rax
- jmp SHORT G_M64711_IG19
- ;; size=17 bbWeight=0.50 PerfScore 2.75
-G_M64711_IG13:
+ jmp SHORT G_M64711_IG18
+ ;; size=14 bbWeight=0.50 PerfScore 2.62
+G_M64711_IG12:
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceGroup():System.Text.RegularExpressions.RegexNode:this
call [rax]System.Text.RegularExpressions.RegexNode:ReduceGroup():System.Text.RegularExpressions.RegexNode:this
- mov rdi, rax
- jmp SHORT G_M64711_IG19
- ;; size=17 bbWeight=0.50 PerfScore 2.75
-G_M64711_IG14:
+ jmp SHORT G_M64711_IG18
+ ;; size=14 bbWeight=0.50 PerfScore 2.62
+G_M64711_IG13:
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceLoops():System.Text.RegularExpressions.RegexNode:this
call [rax]System.Text.RegularExpressions.RegexNode:ReduceLoops():System.Text.RegularExpressions.RegexNode:this
- mov rdi, rax
- jmp SHORT G_M64711_IG19
- ;; size=17 bbWeight=0.50 PerfScore 2.75
-G_M64711_IG15:
+ jmp SHORT G_M64711_IG18
+ ;; size=14 bbWeight=0.50 PerfScore 2.62
+G_M64711_IG14:
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceConcatenation():System.Text.RegularExpressions.RegexNode:this
call [rax]System.Text.RegularExpressions.RegexNode:ReduceConcatenation():System.Text.RegularExpressions.RegexNode:this
- mov rdi, rax
- jmp SHORT G_M64711_IG19
- ;; size=17 bbWeight=0.50 PerfScore 2.75
-G_M64711_IG16:
+ jmp SHORT G_M64711_IG18
+ ;; size=14 bbWeight=0.50 PerfScore 2.62
+G_M64711_IG15:
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceAlternation():System.Text.RegularExpressions.RegexNode:this
call [rax]System.Text.RegularExpressions.RegexNode:ReduceAlternation():System.Text.RegularExpressions.RegexNode:this
- mov rdi, rax
- jmp SHORT G_M64711_IG19
- ;; size=17 bbWeight=0.50 PerfScore 2.75
-G_M64711_IG17:
+ jmp SHORT G_M64711_IG18
+ ;; size=14 bbWeight=0.50 PerfScore 2.62
+G_M64711_IG16:
cmp eax, 5
- je SHORT G_M64711_IG18
+ je SHORT G_M64711_IG17
cmp eax, 8
- jne G_M64711_IG08
+ jne G_M64711_IG07
;; size=14 bbWeight=0.50 PerfScore 1.25
-G_M64711_IG18:
+G_M64711_IG17:
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:ReduceSet():System.Text.RegularExpressions.RegexNode:this
call [rax]System.Text.RegularExpressions.RegexNode:ReduceSet():System.Text.RegularExpressions.RegexNode:this
- mov rdi, rax
- ;; size=15 bbWeight=0.50 PerfScore 1.75
+ ;; size=12 bbWeight=0.50 PerfScore 1.62
+G_M64711_IG18:
+ nop
+ ;; size=1 bbWeight=1 PerfScore 0.25
G_M64711_IG19:
- mov rax, rdi
- ;; size=3 bbWeight=1 PerfScore 0.25
-G_M64711_IG20:
- add rsp, 8
- pop rbx
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
-RWD00 dd G_M64711_IG16 - G_M64711_IG02
- dd G_M64711_IG15 - G_M64711_IG02
+ ;; size=2 bbWeight=1 PerfScore 1.50
+RWD00 dd G_M64711_IG15 - G_M64711_IG02
dd G_M64711_IG14 - G_M64711_IG02
- dd G_M64711_IG14 - G_M64711_IG02
- dd G_M64711_IG08 - G_M64711_IG02
dd G_M64711_IG13 - G_M64711_IG02
+ dd G_M64711_IG13 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
dd G_M64711_IG12 - G_M64711_IG02
- dd G_M64711_IG12 - G_M64711_IG02
+ dd G_M64711_IG11 - G_M64711_IG02
dd G_M64711_IG11 - G_M64711_IG02
dd G_M64711_IG10 - G_M64711_IG02
dd G_M64711_IG09 - G_M64711_IG02
+ dd G_M64711_IG08 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
+ dd G_M64711_IG07 - G_M64711_IG02
+ dd G_M64711_IG17 - G_M64711_IG02
-; Total bytes of code 266, prolog size 8, PerfScore 42.88, instruction count 68, allocated bytes for code 266 (MethodHash=41750338) for method System.Text.RegularExpressions.RegexNode:Reduce():System.Text.RegularExpressions.RegexNode:this (FullOpts)
+; Total bytes of code 216, prolog size 4, PerfScore 38.34, instruction count 54, allocated bytes for code 216 (MethodHash=41750338) for method System.Text.RegularExpressions.RegexNode:Reduce():System.Text.RegularExpressions.RegexNode:this (FullOpts)
; ============================================================ -50 (-17.99 % of base) - System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte ; Assembly listing for method System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
; V01 arg1 [V01,T10] ( 4, 3 ) byref -> rbx single-def
; V02 arg2 [V02,T11] ( 4, 3 ) byref -> r15 single-def
; V03 arg3 [V03,T12] ( 3, 3 ) byref -> r8 single-def
; V04 loc0 [V04,T07] ( 7, 12.25) int -> r13
; V05 loc1 [V05,T13] ( 6, 4.25) int -> r14
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V08 tmp2 [V08,T04] ( 3, 20 ) ushort -> rdx "Inlining Arg"
+; V08 tmp2 [V08,T05] ( 2, 16 ) ushort -> rax "Inlining Arg"
;* V09 tmp3 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-; V10 tmp4 [V10,T05] ( 3, 20 ) ushort -> rdx "Inlining Arg"
+; V10 tmp4 [V10,T06] ( 2, 16 ) ushort -> r9 "Inlining Arg"
;* V11 tmp5 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
; V12 tmp6 [V12,T09] ( 3, 6 ) int -> rdx "Inlining Arg"
;* V13 tmp7 [V13 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V14 tmp8 [V14 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V15 tmp9 [V15,T16] ( 0, 0 ) struct ( 8) zero-ref do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <System.Buffers.Text.Base64Helper+Base64CharValidatable>
; V16 tmp10 [V16,T08] ( 4, 10 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V17 tmp11 [V17,T06] ( 5, 15 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V17 tmp11 [V17,T04] ( 5, 15 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP
;* V18 tmp12 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP
;* V19 tmp13 [V19 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
; V20 tmp14 [V20,T14] ( 2, 2 ) byref -> rsi single-def "field V13._reference (fldOffset=0x0)" P-INDEP
; V21 tmp15 [V21,T15] ( 2, 2 ) int -> rdx "field V13._length (fldOffset=0x8)" P-INDEP
; V22 rat0 [V22,T03] ( 7, 21.75) long -> r13 "Widened IV V04"
; V23 rat1 [V23,T00] ( 8, 25.75) long -> r14 "Widened IV V05"
-; V24 rat2 [V24,T01] ( 3, 22.67) int -> r12 "ReplaceWithLclVar is creating a new local variable"
-; V25 rat3 [V25,T02] ( 3, 22.67) int -> rax "ReplaceWithLclVar is creating a new local variable"
+; V24 rat2 [V24,T01] ( 3, 23.84) int -> rax "ReplaceWithLclVar is creating a new local variable"
+; V25 rat3 [V25,T02] ( 3, 23.84) int -> r9 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M60008_IG01:
push rbp
push r15
push r14
push r13
- push r12
push rbx
- push rax
- lea rbp, [rsp+0x30]
+ lea rbp, [rsp+0x20]
mov rbx, rdx
mov r15, rcx
- ;; size=22 bbWeight=1 PerfScore 8.00
+ ;; size=19 bbWeight=1 PerfScore 6.00
G_M60008_IG02:
lea r14d, [rsi-0x01]
xor r13d, r13d
jmp SHORT G_M60008_IG04
- align [1 bytes for IG03]
- ;; size=10 bbWeight=1 PerfScore 2.75
+ align [4 bytes for IG03]
+ ;; size=13 bbWeight=1 PerfScore 2.75
G_M60008_IG03:
- lea edx, [r13+0x01]
- mov r13d, edx
+ lea eax, [r13+0x01]
+ mov r13d, eax
;; size=7 bbWeight=4 PerfScore 3.00
G_M60008_IG04:
cmp r13d, esi
jl SHORT G_M60008_IG06
;; size=5 bbWeight=8 PerfScore 10.00
G_M60008_IG05:
- jmp SHORT G_M60008_IG11
- align [0 bytes for IG10]
+ jmp SHORT G_M60008_IG10
+ align [0 bytes for IG09]
;; size=2 bbWeight=0.25 PerfScore 0.50
G_M60008_IG06:
- movzx rdx, word ptr [rdi+2*r13]
- lea r12d, [rdx-0x09]
- cmp r12d, 4
+ movzx rax, word ptr [rdi+2*r13]
+ add eax, -9
+ cmp eax, 23
ja SHORT G_M60008_IG08
- ;; size=15 bbWeight=4 PerfScore 15.00
+ ;; size=13 bbWeight=4 PerfScore 14.00
G_M60008_IG07:
- mov eax, r12d
- lea rcx, [reloc @RWD00]
- mov ecx, dword ptr [rcx+4*rax]
- lea rdx, G_M60008_IG02
- add rcx, rdx
- jmp rcx
- ;; size=25 bbWeight=3.33 PerfScore 20.00
+ mov ecx, 0xD1FFAB1E
+ bt ecx, eax
+ jb SHORT G_M60008_IG03
+ ;; size=10 bbWeight=3.92 PerfScore 6.86
G_M60008_IG08:
- cmp edx, 32
- je SHORT G_M60008_IG03
- ;; size=5 bbWeight=2 PerfScore 2.50
-G_M60008_IG09:
- jmp SHORT G_M60008_IG11
+ jmp SHORT G_M60008_IG10
;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M60008_IG10:
- lea edx, [r14-0x01]
- mov r14d, edx
+G_M60008_IG09:
+ lea eax, [r14-0x01]
+ mov r14d, eax
;; size=7 bbWeight=4 PerfScore 3.00
-G_M60008_IG11:
+G_M60008_IG10:
cmp r14d, r13d
- jg SHORT G_M60008_IG13
+ jg SHORT G_M60008_IG12
;; size=5 bbWeight=8 PerfScore 10.00
-G_M60008_IG12:
- jmp SHORT G_M60008_IG16
+G_M60008_IG11:
+ jmp SHORT G_M60008_IG14
;; size=2 bbWeight=0.25 PerfScore 0.50
-G_M60008_IG13:
+G_M60008_IG12:
cmp r14d, esi
- jae G_M60008_IG23
- movzx rdx, word ptr [rdi+2*r14]
- lea eax, [rdx-0x09]
- cmp eax, 4
- ja SHORT G_M60008_IG15
- ;; size=22 bbWeight=4 PerfScore 20.00
+ jae G_M60008_IG21
+ movzx r9, word ptr [rdi+2*r14]
+ add r9d, -9
+ cmp r9d, 23
+ ja SHORT G_M60008_IG14
+ ;; size=24 bbWeight=4 PerfScore 19.00
+G_M60008_IG13:
+ mov eax, 0xD1FFAB1E
+ bt eax, r9d
+ jb SHORT G_M60008_IG09
+ ;; size=11 bbWeight=3.92 PerfScore 6.86
G_M60008_IG14:
- mov eax, eax
- lea rcx, [reloc @RWD20]
- mov ecx, dword ptr [rcx+4*rax]
- lea rdx, G_M60008_IG02
- add rcx, rdx
- jmp rcx
- ;; size=24 bbWeight=3.33 PerfScore 20.00
-G_M60008_IG15:
- cmp edx, 32
- je SHORT G_M60008_IG10
- ;; size=5 bbWeight=2 PerfScore 2.50
-G_M60008_IG16:
lea edx, [r14+0x01]
sub edx, r13d
mov ecx, r13d
mov eax, edx
add rcx, rax
mov esi, esi
cmp rcx, rsi
- ja SHORT G_M60008_IG22
+ ja SHORT G_M60008_IG20
mov esi, r13d
lea rsi, bword ptr [rdi+2*rsi]
xor edi, edi
mov rcx, r8
mov rax, 0xD1FFAB1E ; code for System.Buffers.Text.Base64Helper:IsValid[ushort,System.Buffers.Text.Base64Helper+Base64CharValidatable](System.Buffers.Text.Base64Helper+Base64CharValidatable,System.ReadOnlySpan`1[ushort],byref):ubyte
call [rax]System.Buffers.Text.Base64Helper:IsValid[ushort,System.Buffers.Text.Base64Helper+Base64CharValidatable](System.Buffers.Text.Base64Helper+Base64CharValidatable,System.ReadOnlySpan`1[ushort],byref):ubyte
test eax, eax
- jne SHORT G_M60008_IG20
+ jne SHORT G_M60008_IG18
;; size=50 bbWeight=1 PerfScore 8.75
-G_M60008_IG17:
+G_M60008_IG15:
xor eax, eax
mov dword ptr [rbx], eax
;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M60008_IG18:
+G_M60008_IG16:
mov dword ptr [r15], eax
;; size=3 bbWeight=0.50 PerfScore 0.50
-G_M60008_IG19:
- add rsp, 8
+G_M60008_IG17:
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M60008_IG20:
+ ;; size=9 bbWeight=0.50 PerfScore 1.75
+G_M60008_IG18:
mov dword ptr [rbx], r13d
inc r14d
mov dword ptr [r15], r14d
mov eax, 1
;; size=14 bbWeight=0.50 PerfScore 1.25
-G_M60008_IG21:
- add rsp, 8
+G_M60008_IG19:
pop rbx
- pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M60008_IG22:
+ ;; size=9 bbWeight=0.50 PerfScore 1.75
+G_M60008_IG20:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M60008_IG23:
+G_M60008_IG21:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M60008_IG03 - G_M60008_IG02
- dd G_M60008_IG03 - G_M60008_IG02
- dd G_M60008_IG09 - G_M60008_IG02
- dd G_M60008_IG09 - G_M60008_IG02
- dd G_M60008_IG03 - G_M60008_IG02
-RWD20 dd G_M60008_IG10 - G_M60008_IG02
- dd G_M60008_IG10 - G_M60008_IG02
- dd G_M60008_IG16 - G_M60008_IG02
- dd G_M60008_IG16 - G_M60008_IG02
- dd G_M60008_IG10 - G_M60008_IG02
-
-; Total bytes of code 278, prolog size 22, PerfScore 134.12, instruction count 96, allocated bytes for code 278 (MethodHash=a4951597) for method System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte (FullOpts)
+; Total bytes of code 228, prolog size 19, PerfScore 98.10, instruction count 80, allocated bytes for code 228 (MethodHash=a4951597) for method System.Security.Cryptography.PemEncoding:TryCountBase64(System.ReadOnlySpan`1[ushort],byref,byref,byref):ubyte (FullOpts)
; ============================================================ -32 (-19.16 % of base) - System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte ; Assembly listing for method System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T07] ( 4, 3.25) ref -> rdi class-hnd single-def <System.String>
;* V01 loc0 [V01,T09] ( 0, 0 ) int -> zero-ref
-; V02 loc1 [V02,T00] ( 12, 28 ) ushort -> rdx
+; V02 loc1 [V02,T00] ( 11, 26 ) ushort -> rdx
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 cse0 [V04,T08] ( 3, 2.25) int -> rcx "CSE #01: aggressive"
; V05 rat0 [V05,T01] ( 4, 12.25) byref -> rdi "Strength reduced derived IV"
; V06 rat1 [V06,T02] ( 4, 12.25) int -> rcx "Trip count IV"
; V07 rat2 [V07,T05] ( 2, 8 ) int -> rax "ReplaceWithLclVar is creating a new local variable"
; V08 rat3 [V08,T06] ( 2, 8 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
-; V09 rat4 [V09,T03] ( 3, 11.60) int -> rsi "ReplaceWithLclVar is creating a new local variable"
-; V10 rat5 [V10,T04] ( 3, 11.33) int -> r8 "ReplaceWithLclVar is creating a new local variable"
+; V09 rat4 [V09,T04] ( 3, 11.60) int -> rsi "ReplaceWithLclVar is creating a new local variable"
+; V10 rat5 [V10,T03] ( 3, 11.92) int -> rdx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 0
G_M3909_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M3909_IG02:
mov ecx, dword ptr [rdi+0x08]
test ecx, ecx
- jle G_M3909_IG15
- ;; size=11 bbWeight=1 PerfScore 3.25
+ jle SHORT G_M3909_IG14
+ ;; size=7 bbWeight=1 PerfScore 3.25
G_M3909_IG03:
add rdi, 12
align [0 bytes for IG04]
;; size=4 bbWeight=0.25 PerfScore 0.06
G_M3909_IG04:
movzx rdx, word ptr [rdi]
cmp edx, 47
jbe SHORT G_M3909_IG09
;; size=8 bbWeight=4 PerfScore 13.00
G_M3909_IG05:
cmp edx, 93
jbe SHORT G_M3909_IG08
cmp edx, 123
je SHORT G_M3909_IG06
cmp edx, 125
- jne SHORT G_M3909_IG14
+ jne SHORT G_M3909_IG13
;; size=15 bbWeight=2 PerfScore 7.50
G_M3909_IG06:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M3909_IG07:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
G_M3909_IG08:
lea eax, [rdx-0x3A]
cmp eax, 6
jbe SHORT G_M3909_IG06
add edx, -91
cmp edx, 2
- ja SHORT G_M3909_IG14
+ ja SHORT G_M3909_IG13
jmp SHORT G_M3909_IG06
;; size=18 bbWeight=2 PerfScore 10.50
G_M3909_IG09:
cmp edx, 32
jbe SHORT G_M3909_IG11
cmp edx, 34
je SHORT G_M3909_IG06
lea esi, [rdx-0x27]
cmp esi, 8
- ja SHORT G_M3909_IG14
+ ja SHORT G_M3909_IG13
;; size=18 bbWeight=2 PerfScore 8.50
G_M3909_IG10:
- mov r8d, esi
+ mov edx, esi
lea rax, [reloc @RWD00]
- mov eax, dword ptr [rax+4*r8]
- lea rdx, G_M3909_IG02
- add rax, rdx
- jmp rax
- ;; size=26 bbWeight=1.80 PerfScore 10.80
-G_M3909_IG11:
- lea r8d, [rdx-0x09]
- cmp r8d, 4
- ja SHORT G_M3909_IG13
- ;; size=10 bbWeight=2 PerfScore 3.50
-G_M3909_IG12:
- mov eax, r8d
- lea rdx, [reloc @RWD36]
- mov edx, dword ptr [rdx+4*rax]
+ mov eax, dword ptr [rax+4*rdx]
lea rsi, G_M3909_IG02
- add rdx, rsi
- jmp rdx
- ;; size=25 bbWeight=1.67 PerfScore 10.00
+ add rax, rsi
+ jmp rax
+ ;; size=24 bbWeight=1.80 PerfScore 10.80
+G_M3909_IG11:
+ add edx, -9
+ cmp edx, 23
+ ja SHORT G_M3909_IG13
+ ;; size=8 bbWeight=2 PerfScore 3.00
+G_M3909_IG12:
+ mov eax, 0xD1FFAB1E
+ bt eax, edx
+ jb SHORT G_M3909_IG06
+ ;; size=10 bbWeight=1.96 PerfScore 3.43
G_M3909_IG13:
- cmp edx, 32
- je SHORT G_M3909_IG06
- ;; size=5 bbWeight=2 PerfScore 2.50
-G_M3909_IG14:
add rdi, 2
dec ecx
- jne G_M3909_IG04
- ;; size=12 bbWeight=4 PerfScore 6.00
-G_M3909_IG15:
+ jne SHORT G_M3909_IG04
+ ;; size=8 bbWeight=4 PerfScore 6.00
+G_M3909_IG14:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3909_IG16:
+G_M3909_IG15:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
RWD00 dd G_M3909_IG06 - G_M3909_IG02
dd G_M3909_IG06 - G_M3909_IG02
dd G_M3909_IG06 - G_M3909_IG02
- dd G_M3909_IG14 - G_M3909_IG02
- dd G_M3909_IG14 - G_M3909_IG02
+ dd G_M3909_IG13 - G_M3909_IG02
+ dd G_M3909_IG13 - G_M3909_IG02
dd G_M3909_IG06 - G_M3909_IG02
- dd G_M3909_IG14 - G_M3909_IG02
- dd G_M3909_IG14 - G_M3909_IG02
- dd G_M3909_IG06 - G_M3909_IG02
-RWD36 dd G_M3909_IG06 - G_M3909_IG02
- dd G_M3909_IG06 - G_M3909_IG02
- dd G_M3909_IG14 - G_M3909_IG02
- dd G_M3909_IG14 - G_M3909_IG02
+ dd G_M3909_IG13 - G_M3909_IG02
+ dd G_M3909_IG13 - G_M3909_IG02
dd G_M3909_IG06 - G_M3909_IG02
-; Total bytes of code 167, prolog size 4, PerfScore 78.61, instruction count 56, allocated bytes for code 167 (MethodHash=4006f0ba) for method System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte (FullOpts)
+; Total bytes of code 135, prolog size 4, PerfScore 69.04, instruction count 51, allocated bytes for code 139 (MethodHash=4006f0ba) for method System.Net.HttpValidationHelpers:IsInvalidMethodOrHeaderString(System.String):ubyte (FullOpts)
; ============================================================ Larger list of diffs: https://gist.github.com/MihuBot/f73eeb12e46c6b3275444d071f41c3ba |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 20 minutes 2 seconds.
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: