C2: Missing Identity optimization opportunity with RShiftI and LShiftI

XMLWordPrintable

      The attached Java Fuzzer test fails with the following assertion:

      To reproduce (quite intermittent with Reduced.java):
      $ java -XX:CompileCommand=compileonly,*Test*::mainTest* -XX:-TieredCompilation -Xcomp -XX:+StressIGVN -XX:+StressCCP -XX:VerifyIterativeGVN=1110 -XX:RepeatCompilation=100 Test.java
      $ java -XX:CompileCommand=compileonly,*Reduced*::test* -XX:-TieredCompilation -Xcomp -XX:+StressIGVN -XX:VerifyIterativeGVN=1110 -XX:RepeatCompilation=1000 Reduced.java

      Output:
      Missed Identity optimization:
      Old node:
      dist dump
      ---------------------------------------------
         1 21 ConI === 0 [[ 125 109 65 76 87 98 322 572 658 620 573 298 657 ]] #int:5
         1 298 LShiftI === _ 657 21 [[ 322 ]] !jvms: Reduced::test @ bci:53 (line 17)
         0 322 RShiftI === _ 298 21 [[ 324 ]] !jvms: Reduced::test @ bci:73 (line 19)
      New node:
      dist dump
      ---------------------------------------------
         1 21 ConI === 0 [[ 125 109 65 76 87 98 322 572 658 620 573 298 657 ]] #int:5
         1 658 LShiftI === _ 659 21 [[ 657 ]] !orig=298 !jvms: Reduced::test @ bci:53 (line 17)
         0 657 RShiftI === _ 658 21 [[ 656 298 ]] !orig=322 !jvms: Reduced::test @ bci:73 (line 19)

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35568/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/0749998a-5034-4b32-81b3-be27d8a2b7c1/runs/d604f20f-e69e-4651-82f3-79f998a668d4/workspace/open/src/hotspot/share/opto/phaseX.cpp:1107), pid=1288788, tid=1288807
      # assert(!failure) failed: Missed optimization opportunity/broken graph in PhaseIterGVN
      #
      # JRE version: Java(TM) SE Runtime Environment (27.0+4) (fastdebug build 27-ea+4-314)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-ea+4-314, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0x18a044a] PhaseIterGVN::verify_optimize()+0xd1a
      .................
      Command Line: -XX:CompileCommand=compileonly,*Reduced*::test* -XX:-TieredCompilation -Xcomp -XX:+StressIGVN -XX:VerifyIterativeGVN=1110 -XX:RepeatCompilation=1000 --add-modules=ALL-DEFAULT jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher Reduced.java
      .................
      C2:2272 101 b Reduced::test (119 bytes)

      Stack: [0x00007f7787cfe000,0x00007f7787dfe000], sp=0x00007f7787df8ea0, free space=1003k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x18a044a] PhaseIterGVN::verify_optimize()+0xd1a (phaseX.cpp:1107)
      V [libjvm.so+0x18a0d48] PhaseIterGVN::optimize()+0x418 (phaseX.cpp:1069)
      V [libjvm.so+0xbb1e02] Compile::Optimize()+0xa72 (compile.cpp:2509)
      V [libjvm.so+0xbb51f3] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x2023 (compile.cpp:862)
      V [libjvm.so+0x9cc468] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x498 (c2compiler.cpp:147)
      V [libjvm.so+0xbc47b4] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x854 (compileBroker.cpp:2353)
      V [libjvm.so+0xbc5f40] CompileBroker::compiler_thread_loop()+0x530 (compileBroker.cpp:1989)
      V [libjvm.so+0x112659b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
      V [libjvm.so+0x1bb28f6] Thread::call_run()+0xb6 (thread.cpp:242)
      V [libjvm.so+0x1808518] thread_native_entry(Thread*)+0x118 (os_linux.cpp:860)

        1. Test.java
          7 kB
        2. Reduced.java
          0.7 kB
        3. hs_err_pid1288992.log
          77 kB
        4. FuzzerUtils.java
          13 kB

            Assignee:
            Unassigned
            Reporter:
            Christian Hagedorn
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: