notier_vs_profile
52 removals
80 lines
54 additions
81 lines
; Assembly listing for method helloworld.loop:PartitionScalar(byref,byref,byref,int):ulong (FullOpts)
; Assembly listing for method helloworld.loop:PartitionScalar(byref,byref,byref,int):ulong (Tier1)
; Emitting BLENDED_CODE for generic ARM64 - Windows
; Emitting BLENDED_CODE for generic ARM64 - Windows
; FullOpts code
; Tier1 code
; optimized code
; optimized code
; optimized using Dynamic PGO
; fp based frame
; fp based frame
; fully interruptible
; fully interruptible
; No PGO data
; with Dynamic PGO: fgCalledCount is 717568
; invoked as altjit
; invoked as altjit
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T03] ( 4, 7 ) byref -> x0 single-def
; V00 arg0 [V00,T04] ( 4, 14.04) byref -> x0 single-def
; V01 arg1 [V01,T06] ( 3, 4 ) byref -> x1 single-def
; V01 arg1 [V01,T08] ( 3, 2.21) byref -> x1 single-def
; V02 arg2 [V02,T07] ( 3, 4 ) byref -> x2 single-def
; V02 arg2 [V02,T05] ( 3, 12.82) byref -> x2 single-def
; V03 arg3 [V03,T08] ( 3, 3 ) int -> x3 single-def
; V03 arg3 [V03,T07] ( 3, 3.00) int -> x3 single-def
;* V04 loc0 [V04,T11] ( 0, 0 ) long -> zero-ref
;* V04 loc0 [V04,T11] ( 0, 0 ) long -> zero-ref
; V05 loc1 [V05,T05] ( 4, 7 ) long -> x4
; V05 loc1 [V05,T10] ( 4, 1.64) long -> x4
; V06 loc2 [V06,T04] ( 5, 8 ) long -> x5
; V06 loc2 [V06,T00] ( 5, 34.47) long -> x5
; V07 loc3 [V07,T09] ( 2, 5 ) int -> x6 single-def
; V07 loc3 [V07,T06] ( 2, 12.04) int -> x6 single-def
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V09 cse0 [V09,T02] ( 4, 12 ) int -> x8 "CSE #03: aggressive"
; V09 cse0 [V09,T03] ( 4, 33.11) int -> x8 "CSE #03: aggressive"
; V10 cse1 [V10,T10] ( 3, 2.25) long -> x3 "CSE #01: aggressive"
; V10 cse1 [V10,T09] ( 3, 2.92) long -> x3 "CSE #01: aggressive"
; V11 rat0 [V11,T00] ( 4, 12.25) long -> x7 "Strength reduced derived IV"
; V11 rat0 [V11,T01] ( 4, 34.03) long -> x7 "Strength reduced derived IV"
; V12 rat1 [V12,T01] ( 4, 12.25) long -> x3 "Trip count IV"
; V12 rat1 [V12,T02] ( 4, 34.03) long -> x3 "Trip count IV"
;
;
; Lcl frame size = 0
; Lcl frame size = 0
G_M47887_IG01: ;; offset=0x0000
G_M47887_IG01: ;; offset=0x0000
stp fp, lr, [sp, #-0x10]!
stp fp, lr, [sp, #-0x10]!
mov fp, sp
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
;; size=8 bbWeight=1.00 PerfScore 1.50
G_M47887_IG02: ;; offset=0x0008
G_M47887_IG02: ;; offset=0x0008
mov x4, xzr
mov x4, xzr
mov x5, xzr
mov x5, xzr
ldr x6, [x0]
ldr x6, [x0]
ldr w6, [x6]
ldr w6, [x6]
sxtw x3, w3
sxtw x3, w3
cmp x3, #0
cmp x3, #0
ble G_M47887_IG08
ble G_M47887_IG07
;; size=28 bbWeight=1 PerfScore 9.00
;; size=28 bbWeight=1.00 PerfScore 9.00
G_M47887_IG03: ;; offset=0x0024
G_M47887_IG03: ;; offset=0x0024
mov x7, xzr
mov x7, xzr
align [0 bytes for IG04]
align [0 bytes for IG04]
align [0 bytes]
align [0 bytes]
align [0 bytes]
align [0 bytes]
align [0 bytes]
align [0 bytes]
;; size=4 bbWeight=0.25 PerfScore 0.12
;; size=4 bbWeight=0.92 PerfScore 0.46
G_M47887_IG04: ;; offset=0x0028
G_M47887_IG04: ;; offset=0x0028
ldr x8, [x0]
ldr x8, [x0]
ldr w8, [x8, x7]
ldr w8, [x8, x7]
cmp w8, w6
cmp w8, w6
blo G_M47887_IG06
blo G_M47887_IG09
;; size=16 bbWeight=4 PerfScore 30.00
;; size=16 bbWeight=11.04 PerfScore 82.78
G_M47887_IG05: ;; offset=0x0038
G_M47887_IG05: ;; offset=0x0038
ldr x9, [x2]
ldr x9, [x2]
str w8, [x9, x5, LSL #2]
str w8, [x9, x5, LSL #2]
add x5, x5, #1
add x5, x5, #1
b G_M47887_IG07
;; size=12 bbWeight=10.82 PerfScore 48.71
Text moved with changes to lines 70-74 (97.1% similarity)
;; size=16 bbWeight=2 PerfScore 11.00
G_M47887_IG06: ;; offset=0x0044
G_M47887_IG06: ;; offset=0x0048
ldr x9, [x1]
str w8, [x9, x4, LSL #2]
add x4, x4, #1
;; size=12 bbWeight=2 PerfScore 9.00
G_M47887_IG07: ;; offset=0x0054
add x7, x7, #4
add x7, x7, #4
sub x3, x3, #1
sub x3, x3, #1
cbnz x3, G_M47887_IG04
cbnz x3, G_M47887_IG04
;; size=12 bbWeight=4 PerfScore 8.00
;; size=12 bbWeight=11.04 PerfScore 22.07
G_M47887_IG08: ;; offset=0x0060
G_M47887_IG07: ;; offset=0x0050
mov x0, x5
mov x0, x5
;; size=4 bbWeight=1 PerfScore 0.50
;; size=4 bbWeight=1.00 PerfScore 0.50
G_M47887_IG09: ;; offset=0x0064
G_M47887_IG08: ;; offset=0x0054
ldp fp, lr, [sp], #0x10
ldp fp, lr, [sp], #0x10
ret lr
ret lr
Text moved with changes from lines 58-62 (97.1% similarity)
;; size=8 bbWeight=1 PerfScore 2.00
;; size=8 bbWeight=1.00 PerfScore 2.00
G_M47887_IG09: ;; offset=0x005C
ldr x9, [x1]
str w8, [x9, x4, LSL #2]
add x4, x4, #1
b G_M47887_IG06
;; size=16 bbWeight=0.21 PerfScore 1.17
; Total bytes of code 108, prolog size 8, PerfScore 71.12, instruction count 31, allocated bytes for code 108 (MethodHash=e74944f0) for method helloworld.loop:PartitionScalar(byref,byref,byref,int):ulong (FullOpts)
; Total bytes of code 108, prolog size 8, PerfScore 168.19, instruction count 31, allocated bytes for code 108 (MethodHash=e74944f0) for method helloworld.loop:PartitionScalar(byref,byref,byref,int):ulong (Tier1)
; ============================================================
; ============================================================