[RISC-V] Always report call target in range#119304
Conversation
|
No regressions, more cruft removed. Diffs are based on 104,367 contexts (2,270 MinOpts, 102,097 FullOpts). MISSED contexts: 2 (0.00%) Overall (-3,163,368 bytes)
MinOpts (-502,760 bytes)
FullOpts (-2,660,608 bytes)
Example diffslinux.riscv64.Checked.3.mch-32 (-32.00%) : 695.dasm - TestLibrary.HostPolicyMock:Mock_corehost_resolve_component_dependencies(int,System.String,System.String,System.String):TestLibrary.HostPolicyMock+MockValues_corehost_resolve_component_dependencies (FullOpts)@@ -26,33 +26,25 @@ G_M6441_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=16 bbWeight=1 PerfScore 9.00
G_M6441_IG02: ; bbWeight=1, gcrefRegs=3800 {a1 a2 a3}, byrefRegs=0000 {}, byref
; gcrRegs +[a1-a3]
- lui a4, 0xD1FFAB1E
- addiw a4, a4, 0xD1FFAB1E
- slli a4, a4, 12
- addi a4, a4, 0xD1FFAB1E
- slli a4, a4, 3
- jalr ra, 0xD1FFAB1E(a4) // <unknown method>
+ auipc ra, 0xD1FFAB1E
+ jalr ra // <unknown method>
; gcrRegs -[a1-a3]
lui a0, 0xD1FFAB1E
addiw a0, a0, 0xD1FFAB1E
slli a0, a0, 12
addi a0, a0, 0xD1FFAB1E
slli a0, a0, 3
- lui a1, 0xD1FFAB1E
- addiw a1, a1, 0xD1FFAB1E
- slli a1, a1, 12
- addi a1, a1, 0xD1FFAB1E
- slli a1, a1, 3
- jalr ra, 0xD1FFAB1E(a1) // CORINFO_HELP_NEWSFAST
+ auipc ra, 0xD1FFAB1E
+ jalr ra // CORINFO_HELP_NEWSFAST
; gcrRegs +[a0]
- ;; size=68 bbWeight=1 PerfScore 21.00
+ ;; size=36 bbWeight=1 PerfScore 13.00
G_M6441_IG03: ; bbWeight=1, epilog, nogc, extend
ld ra, 8(sp)
ld fp, 0(sp)
addi sp, sp, 16
ret ;; size=16 bbWeight=1 PerfScore 7.50
-; Total bytes of code 100, prolog size 16, PerfScore 37.50, instruction count 13, allocated bytes for code 100 (MethodHash=7421e6d6) for method TestLibrary.HostPolicyMock:Mock_corehost_resolve_component_dependencies(int,System.String,System.String,System.String):TestLibrary.HostPolicyMock+MockValues_corehost_resolve_component_dependencies (FullOpts)
+; Total bytes of code 68, prolog size 16, PerfScore 29.50, instruction count 11, allocated bytes for code 68 (MethodHash=7421e6d6) for method TestLibrary.HostPolicyMock:Mock_corehost_resolve_component_dependencies(int,System.String,System.String,System.String):TestLibrary.HostPolicyMock+MockValues_corehost_resolve_component_dependencies (FullOpts)
; ============================================================
Unwind Info:
@@ -63,7 +55,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 50 (0x00032) Actual length = 100 (0x000064)
+ Function Length : 34 (0x00022) Actual length = 68 (0x000044)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)-16 (-30.77%) : 52577.dasm - JIT.HardwareIntrinsics.Arm.Helpers:RoundToPositiveInfinity(double):double (FullOpts)@@ -21,21 +21,15 @@ G_M38667_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sd ra, 8(sp)
mv fp, sp
;; size=16 bbWeight=1 PerfScore 9.00
-G_M38667_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- lui a0, 0xD1FFAB1E
- addiw a0, a0, 0xD1FFAB1E
- slli a0, a0, 12
- addi a0, a0, 0xD1FFAB1E
- slli a0, a0, 3
- ;; size=20 bbWeight=1 PerfScore 5.00
-G_M38667_IG03: ; bbWeight=1, epilog, nogc, extend
+G_M38667_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ld ra, 8(sp)
ld fp, 0(sp)
addi sp, sp, 16
- jr a0 // <unknown method>
- ;; size=16 bbWeight=1 PerfScore 7.50
+ auipc t2, 0xD1FFAB1E
+ jr t2 // <unknown method>
+ ;; size=20 bbWeight=1 PerfScore 8.50
-; Total bytes of code 52, prolog size 16, PerfScore 21.50, instruction count 9, allocated bytes for code 52 (MethodHash=70aa68f4) for method JIT.HardwareIntrinsics.Arm.Helpers:RoundToPositiveInfinity(double):double (FullOpts)
+; Total bytes of code 36, prolog size 16, PerfScore 17.50, instruction count 8, allocated bytes for code 36 (MethodHash=70aa68f4) for method JIT.HardwareIntrinsics.Arm.Helpers:RoundToPositiveInfinity(double):double (FullOpts)
; ============================================================
Unwind Info:
@@ -46,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 52 (0x000034)
+ Function Length : 18 (0x00012) Actual length = 36 (0x000024)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)-16 (-30.77%) : 102261.dasm - ComWrappersTests.GlobalInstance.Program+<>c:b__11_0():System.Object:this (FullOpts)@@ -19,21 +19,15 @@ G_M30715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sd ra, 8(sp)
mv fp, sp
;; size=16 bbWeight=1 PerfScore 9.00
-G_M30715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- lui a0, 0xD1FFAB1E
- addiw a0, a0, 0xD1FFAB1E
- slli a0, a0, 12
- addi a0, a0, 0xD1FFAB1E
- slli a0, a0, 3
- ;; size=20 bbWeight=1 PerfScore 5.00
-G_M30715_IG03: ; bbWeight=1, epilog, nogc, extend
+G_M30715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ld ra, 8(sp)
ld fp, 0(sp)
addi sp, sp, 16
- jr a0 // <unknown method>
- ;; size=16 bbWeight=1 PerfScore 7.50
+ auipc t2, 0xD1FFAB1E
+ jr t2 // <unknown method>
+ ;; size=20 bbWeight=1 PerfScore 8.50
-; Total bytes of code 52, prolog size 16, PerfScore 21.50, instruction count 9, allocated bytes for code 52 (MethodHash=1a2f8804) for method ComWrappersTests.GlobalInstance.Program+<>c:<ValidatePInvokes>b__11_0():System.Object:this (FullOpts)
+; Total bytes of code 36, prolog size 16, PerfScore 17.50, instruction count 8, allocated bytes for code 36 (MethodHash=1a2f8804) for method ComWrappersTests.GlobalInstance.Program+<>c:<ValidatePInvokes>b__11_0():System.Object:this (FullOpts)
; ============================================================
Unwind Info:
@@ -44,7 +38,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 52 (0x000034)
+ Function Length : 18 (0x00012) Actual length = 36 (0x000024)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)+0 (0.00%) : 103392.dasm - Microsoft.Diagnostics.Symbols.SymbolReader:get_SourceCacheDirectory():System.String:this (FullOpts)No diffs found? +0 (0.00%) : 103360.dasm - Microsoft.Diagnostics.Symbols.SymbolPath:DefaultSymbolCache(bool):System.String:this (FullOpts)No diffs found? +0 (0.00%) : 102096.dasm - ILGEN_0x496bb0b:Main():int (FullOpts)No diffs found? DetailsSize improvements/regressions per collection
PerfScore improvements/regressions per collection
Context information
jit-analyze output |
|
@risc-vv /run |
0bc7710 is being scheduled for building and testingGIT: |
RISC-V pull_request-CLR-QEMU: 9109 / 9139 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V pull_request-CLR-VF2: 9109 / 9139 (99.67%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V pull_request-FX-QEMU: 0 / 0 (100.00%)report.xml, report.md, failures.xml, testclr_details.tar.zst RISC-V pull_request-FX-VF2: 0 / 71 (0.00%)report.xml, report.md, failures.xml, testclr_details.tar.zst Build information and commandsGIT: |
|
We will review .NET 11 PRs when we are done with .NET 10 last minute works and less busy. Please give us a few more weeks. |
auipc + jalrinstruction combo has 32-bit range. Further calls are kept absolute by the same condition as x64:runtime/src/coreclr/jit/lower.cpp
Lines 6866 to 6876 in a6740f4
Part of #84834, cc @dotnet/samsung