RFR: 8308915: RISC-V: Improve temporary vector register usage avoiding the use of v0

Dingli Zhang dzhang at openjdk.org
Fri May 26 02:47:15 UTC 2023


We have some macro assembler functions that use v0 hardcoded as a temporary
register currently.

However, the mask value used to control execution of a masked vector
instruction is always supplied by vector register v0 in RVV1.0[1]. So if v0 is
not used as a mask register in subsequent instructions, it is better to
replace it with other vector registers to improve code execution efficiency.

In addition, this pr also adds several missing spaces in the format of the
instructions, and fixes several pipeline classes.

[1] https://github.com/riscv/riscv-v-spec/blob/v1.0/v-spec.adoc

## Testing:
QEMU w/ UseRVV:
- [x] Tier1 tests (release)
- [ ] Tier2 tests (release)
- [ ] Tier3 tests (release)
- [x] test/jdk/jdk/incubator/vector (fastdebug)

-------------

Commit messages:
 - 8308915: RISC-V: Improve temporary vector register usage avoiding the use of v0

Changes: https://git.openjdk.org/jdk/pull/14166/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14166&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8308915
  Stats: 124 lines in 3 files changed: 61 ins; 0 del; 63 mod
  Patch: https://git.openjdk.org/jdk/pull/14166.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/14166/head:pull/14166

PR: https://git.openjdk.org/jdk/pull/14166


More information about the hotspot-compiler-dev mailing list