RFR: 8329555: Crash in intrinsifying heap-based MemorySegment Vector store/loads [v2]

Jatin Bhateja jbhateja at openjdk.org
Sat Apr 20 18:20:54 UTC 2024


> - Problem is related to bi-morphic inlining of ms.unsafeBase() in presence of multiple receiver type profiles (OfFloat, OfByte) which results into formation of an abstract type phi node at JVM state convergence points.
> - Due to this, for mismatched memory segment access, inline expander is unable to infer the element type of array wrapped within the memory segment and this results into an assertion failure while computing the source lane count.
> - For non-masked mismatched memory segment vector read/write accesses, intrinsification can continue with unknown backing storage type and compiler can skip inserting explicit reinterpretation IR after loading from or before storing to backing storage which is mandatory for semantic correctness of big-endian memory layout.
> - For vector write access, this may prevent value forwarding, which may result into subsequent redundant vector loads from same address, but preventing intensification failure will offset that cost.
> 
> Kindly review and share your feedback.
> 
> Best Regards,
> Jatin

Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:

  Review suggestions incorporated.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/18749/files
  - new: https://git.openjdk.org/jdk/pull/18749/files/493470c1..0c67e68a

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=18749&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=18749&range=00-01

  Stats: 4 lines in 1 file changed: 2 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/18749.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18749/head:pull/18749

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


More information about the hotspot-compiler-dev mailing list