[vectorIntrinsics] RFR: 8261394: [vector] Crash with "assert(Matcher::vector_size_supported(elem_bt, length)) failed: length in range" [v2]

Xiaohong Gong xgong at openjdk.java.net
Fri Feb 19 08:31:11 UTC 2021


> The crash is introduced by [1] and happens when the compiler is making an unspported vector type:
>   assert(Matcher::vector_size_supported(elem_bt, length)) failed: length in range
> Before vectorization for each vector intrinsic, the hotspot will check whether current arch supports the vector operation from several aspects like the backend implementation, the vector type and length. Once one of them is not matched, the compiler will stop the vectorization and go back to the default java implementation.
> 
> The changes in [1] missed the check for "Op_CallLeafVector". I think the double 64-bits vector is not supported to be vectorized. However, due to the missing check, the compiler continues the progress and then the crash happens.
> 
> This patch fixes it by making sure the check contains all opcodes.
> 
> [1] https://bugs.openjdk.java.net/browse/JDK-8261267

Xiaohong Gong has updated the pull request incrementally with one additional commit since the last revision:

  Add vector size check for "Op_CallLeafVector"

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

Changes:
  - all: https://git.openjdk.java.net/panama-vector/pull/38/files
  - new: https://git.openjdk.java.net/panama-vector/pull/38/files/c7fb9276..2d471105

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=38&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=38&range=00-01

  Stats: 9 lines in 1 file changed: 7 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/panama-vector/pull/38.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/38/head:pull/38

PR: https://git.openjdk.java.net/panama-vector/pull/38


More information about the panama-dev mailing list