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] [MichalPetryka] Fold null checks against known non-null values #750
Comments
Top method improvements-5 (-4.55 % of base) - System.Security.Cryptography.HashProviderDispenser:KmacSupported(System.String):ubyte ; Assembly listing for method System.Security.Cryptography.HashProviderDispenser:KmacSupported(System.String):ubyte (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; 4 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 10, 4.50) ref -> rdi class-hnd single-def <System.String>
-; V01 loc0 [V01,T01] ( 4, 2.50) ubyte -> rax
+; V01 loc0 [V01,T01] ( 3, 2 ) ubyte -> rax
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
;* V04 tmp2 [V04 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V05 tmp3 [V05 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
;* V06 tmp4 [V06 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;
; Lcl frame size = 0
G_M51753_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M51753_IG02:
test rdi, rdi
je SHORT G_M51753_IG04
;; size=5 bbWeight=1 PerfScore 1.25
G_M51753_IG03:
cmp dword ptr [rdi+0x08], 7
je SHORT G_M51753_IG08
;; size=6 bbWeight=0.25 PerfScore 1.00
G_M51753_IG04:
test rdi, rdi
- je SHORT G_M51753_IG07
+ je SHORT G_M51753_IG09
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M51753_IG05:
cmp dword ptr [rdi+0x08], 7
- jne SHORT G_M51753_IG07
+ jne SHORT G_M51753_IG09
;; size=6 bbWeight=0.25 PerfScore 1.00
G_M51753_IG06:
mov rax, 0xD1FFAB1E
xor rax, qword ptr [rdi+0x0C]
mov rcx, 0xD1FFAB1E
xor rcx, qword ptr [rdi+0x12]
or rax, rcx
- je SHORT G_M51753_IG10
+ jne SHORT G_M51753_IG09
;; size=33 bbWeight=0.12 PerfScore 0.97
G_M51753_IG07:
- xor eax, eax
- jmp SHORT G_M51753_IG11
- ;; size=4 bbWeight=0.50 PerfScore 1.12
+ mov eax, 1
+ jmp SHORT G_M51753_IG10
+ ;; size=7 bbWeight=0.50 PerfScore 1.12
G_M51753_IG08:
mov rax, 0xD1FFAB1E
xor rax, qword ptr [rdi+0x0C]
mov rcx, 0xD1FFAB1E
xor rcx, qword ptr [rdi+0x12]
or rax, rcx
- jne SHORT G_M51753_IG05
- ;; size=33 bbWeight=0.12 PerfScore 0.97
+ je SHORT G_M51753_IG07
+ jmp SHORT G_M51753_IG05
+ ;; size=35 bbWeight=0.12 PerfScore 1.22
G_M51753_IG09:
- mov eax, 1
- jmp SHORT G_M51753_IG11
- ;; size=7 bbWeight=0.50 PerfScore 1.12
+ xor eax, eax
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
G_M51753_IG10:
- mov eax, 1
- ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M51753_IG11:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 110, prolog size 4, PerfScore 10.94, instruction count 29, allocated bytes for code 110 (MethodHash=dfbd35d6) for method System.Security.Cryptography.HashProviderDispenser:KmacSupported(System.String):ubyte (FullOpts)
+; Total bytes of code 105, prolog size 4, PerfScore 10.06, instruction count 28, allocated bytes for code 105 (MethodHash=dfbd35d6) for method System.Security.Cryptography.HashProviderDispenser:KmacSupported(System.String):ubyte (FullOpts)
; ============================================================ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 19 minutes 24 seconds.
dotnet/runtime#109164
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: