[jdk19] RFR: 8288112: C2: Error: ShouldNotReachHere() in Type::typerr()
Jatin Bhateja
jbhateja at openjdk.org
Mon Jul 11 14:00:26 UTC 2022
On Fri, 8 Jul 2022 21:57:33 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
> [JDK-8284960](https://bugs.openjdk.org/browse/JDK-8284960) added new vector IR nodes and target specific backend support for Reverse Byte vector operations.
> Auto-vectorization analysis based on vector IR opcode existence and target backed implementation for existing Java SE APIs [Short/Character/Integer/Long].reverseBytes passes since both vector IR and backend support already exist for these operations. This bug fix patch handled missing scalar reverse byte IR cases in SLP optimizer to enable creation of corresponding vector IR nodes.
>
> A new JBS issue [JDK-8290034](https://bugs.openjdk.org/browse/JDK-8290034) is created to add the missing auto-vectorization support for bit reverse operation targeting JDK mainline.
>
> Kindly review and share your feedback.
>
> Best Regards,
> Jatin
> test\micro\org\openjdk\bench\java\lang\Longs.java:148: error: incompatible types: possible lossy conversion from long to in
> Looks good to me, but I still have a problem with the error message. It seems like we could give a better error message if we detected the missing vectorization support earlier. What do you think?
Hi @dean-long , Thanks for your comments, error occurs because SLP analysis passes all the checks to enable creation vector ReverseByte IR, but SLP backend had this case missing due to which some of the IR nodes were vectorized and were feeding into a scalar ReverseByte node, thus while doing a value computation compiler encounters a meet operation b/w vector and scalar lattice. Since its an error related to internals of JIT compiler it will not be of any use to user and just represent incorrect control path selected by compiler. With this patch we do not hit the trap any more.
-------------
PR: https://git.openjdk.org/jdk19/pull/128
More information about the hotspot-compiler-dev
mailing list