JDK-8248830 : C2: Optimize Rotate API on x86
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 16
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • CPU: x86
  • Submitted: 2020-07-06
  • Updated: 2024-11-20
  • Resolved: 2020-08-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 16
16 b11Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
- Currently rotate operation is inferred through pattern matching over a sequence of shift left/right followed by logic OR operation. Extend this approach to infer vector rotation operations.
- AVX512 added new vector rotate instructions VPRO[RL][V][QD] which can be exploited by either extending SLP or post SLP pattern matching. 
Comments
This is latest webrev which was reviewed before push: http://cr.openjdk.java.net/~jbhateja/8248830/webrev.06/
04-09-2020

Above stated crash is caused by current bug, crash happened in "Node *OrINode::Ideal(PhaseGVN *phase, bool can_reshape)" either in left/right shift. More details JDK-8252188 V [libjvm.so+0x320ae9] OrINode::Ideal(PhaseGVN*, bool)+0x8b9 V [libjvm.so+0xb92682] PhaseIterGVN::transform_old(Node*)+0x92 V [libjvm.so+0xb8f869] PhaseIterGVN::optimize()+0x109 V [libjvm.so+0xa048a4] PhaseIdealLoop::build_and_optimize(LoopOptsMode)+0xbc4 V [libjvm.so+0x51f65f] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x18f V [libjvm.so+0x51dccf] Compile::Optimize()+0x12bf V [libjvm.so+0x51eda0] Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, DirectiveSet*)+0xc10 V [libjvm.so+0x46d8d1] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x111 V [libjvm.so+0x5277a8] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xd18 V [libjvm.so+0x528278] CompileBroker::compiler_thread_loop()+0x4e8 V [libjvm.so+0xcef6fb] JavaThread::thread_main_inner()+0x11b V [libjvm.so+0xcf45fd] Thread::call_run()+0xfd V [libjvm.so+0xb499a7] thread_native_entry(Thread*)+0xe7
22-08-2020

I'm seeing a crash at # Internal Error (node.hpp:1070), pid=11977, tid=12077 # guarantee(t != NULL) failed: must be con # # JRE version: Java(TM) SE Runtime Environment (16.0+11) (build 16-ea+11-421) # Java VM: Java HotSpot(TM) 64-Bit Server VM (16-ea+11-421, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64) # Problematic frame: # V [libjvm.so+0x320ae9] OrINode::Ideal(PhaseGVN*, bool)+0x8b9 #
21-08-2020

URL: https://hg.openjdk.java.net/jdk/jdk/rev/ebe6d3b79edf User: jbhateja Date: 2020-08-08 20:58:51 +0000
08-08-2020

Patch has been posted for review http://cr.openjdk.java.net/~jbhateja/8248830/webrev.01/
10-07-2020