RFR: 8264104: Eliminate unnecessary vector mask conversion during VectorUnbox for floating point VectorMask [v2]
Xiaohong Gong
xgong at openjdk.java.net
Mon Mar 29 06:28:42 UTC 2021
> The Vector API defines different element types for floating point VectorMask. For example, the bitwise related APIs use "`long/int`", while data related APIs use "`double/float`". This makes some optimizations that based on the type checking cannot work well.
>
> For example, the VectorBox/Unbox elimination like `"VectorUnbox (VectorBox v) ==> v"` requires the types of output and
> input are equal. Normally this is necessary. However, due to the different element type for floating point VectorMask with the same species, the VectorBox/Unbox pattern is optimized to:
> VectorLoadMask (VectorStoreMask vmask)
> Actually the types can be treated as the same one for such cases. And considering the vector mask representation is the same for
> vectors with the same element size and vector length, it's safe to do the optimization:
> VectorLoadMask (VectorStoreMask vmask) ==> vmask
> The same issue exists for GVN which is based on the type of a node. Making the mask node's` hash()/cmp()` methods depends on the element size instead of the element type can fix it.
Xiaohong Gong has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision:
8264104: Eliminate unnecessary vector mask conversion during VectorUnbox for floating point VectorMask
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/3238/files
- new: https://git.openjdk.java.net/jdk/pull/3238/files/af74280a..bf5b2028
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3238&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3238&range=00-01
Stats: 0 lines in 0 files changed: 0 ins; 0 del; 0 mod
Patch: https://git.openjdk.java.net/jdk/pull/3238.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/3238/head:pull/3238
PR: https://git.openjdk.java.net/jdk/pull/3238
More information about the hotspot-compiler-dev
mailing list