RFR: 8342651: Refactor array constant to use an array of jbyte [v5]

Quan Anh Mai qamai at openjdk.org
Fri Dec 6 11:54:25 UTC 2024


> Hi,
> 
> This small patch refactors array constants in C2 to use an array of `jbyte`s instead of an array of `jvalue`. The former is much easier to work with and we can do `memcpy` with them trivially.
> 
> Since code buffers support alignment of the constant section, I have also allowed constant tables to be aligned more than 8 bytes and used it for constant vectors on machines not supporting `SSE3`. I also fixed an issue with code buffer relocation where the temporary buffer is not correctly aligned.
> 
> This patch is extracted from https://github.com/openjdk/jdk/pull/21229. Tests passed with `UseSSE=2` where 16-byte constants would be generated, as well as normal testing routines.
> 
> Please take a look and leave your reviews, thanks a lot.

Quan Anh Mai has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision:

 - Merge branch 'master' into constanttable
 - add comment to ConstantTable::alignment
 - Merge branch 'master' into constanttable
 - indentation
 - Merge branch 'master' into constanttable
 - Merge branch 'master' into constanttable
 - refactor array constant, fix codebuffer reallocation

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/21596/files
  - new: https://git.openjdk.org/jdk/pull/21596/files/b8a8d9a3..ed66a106

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=21596&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=21596&range=03-04

  Stats: 109219 lines in 1736 files changed: 81360 ins; 19597 del; 8262 mod
  Patch: https://git.openjdk.org/jdk/pull/21596.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/21596/head:pull/21596

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


More information about the hotspot-compiler-dev mailing list