C2: Missed Ideal optimization opportunity with ConvF2HF and -XX:+StressIncrementalInlining

XMLWordPrintable

    • Type: Bug
    • Resolution: Duplicate
    • Priority: P4
    • None
    • Affects Version/s: 27
    • Component/s: hotspot

      At least the following tests fail with JVM args "-XX:-TieredCompilation -XX:VerifyIterativeGVN=1110 -XX:+UnlockDiagnosticVMOptions -XX:+StressIncrementalInlining" with "Missed Ideal optimization" for ConvF2HF:
       - compiler/floatingpoint/TestSubNodeFloatDoubleNegation.java
       - compiler/igvn/TestMinMaxIdentity.java
       - compiler/c2/aarch64/TestFloat16Replicate.java
       - compiler/intrinsics/float16/TestFloat16MaxMinSpecialValues.java
       - compiler/c2/irTests/MulHFNodeIdealizationTests.java

      Example error output for compiler/c2/aarch64/TestFloat16Replicate.java:
      Missed Ideal optimization (can_reshape=false):
      The node was replaced by Ideal.
      Old node:
      dist dump
      ---------------------------------------------
         1 419 AddF === _ 546 418 [[ 455 478 ]] !jvms: Float16::add @ bci:8 (line 1165) TestFloat16Replicate::TestFloat16AddOutOfRange @ bci:24 (line 126)
         0 478 ConvF2HF === _ 419 [[ 488 506 ]] #short !jvms: Float16::valueOf @ bci:5 (line 364) Float16::add @ bci:9 (line 1165) TestFloat16Replicate::TestFloat16AddOutOfRange @ bci:24 (line 126)
      The result after Ideal:
      dist dump
      ---------------------------------------------
         1 549 AddHF === _ 547 548 [[ 550 ]] !jvms: Float16::add @ bci:1 (line 1165) TestFloat16Replicate::TestFloat16AddOutOfRange @ bci:24 (line 126)
         0 550 ReinterpretHF2S === _ 549 [[ ]] !jvms: Float16::add @ bci:1 (line 1165) TestFloat16Replicate::TestFloat16AddOutOfRange @ bci:24 (line 126)


      Missed Ideal optimization (can_reshape=true):
      The node was replaced by Ideal.
      Old node:
      dist dump
      ---------------------------------------------
         1 419 AddF === _ 546 418 [[ 455 478 ]] !jvms: Float16::add @ bci:8 (line 1165) TestFloat16Replicate::TestFloat16AddOutOfRange @ bci:24 (line 126)
         0 478 ConvF2HF === _ 419 [[ 488 506 ]] #short !jvms: Float16::valueOf @ bci:5 (line 364) Float16::add @ bci:9 (line 1165) TestFloat16Replicate::TestFloat16AddOutOfRange @ bci:24 (line 126)
      The result after Ideal:
      dist dump
      ---------------------------------------------
         1 549 AddHF === _ 547 548 [[ 550 553 ]] !orig=[552] !jvms: Float16::add @ bci:1 (line 1165) TestFloat16Replicate::TestFloat16AddOutOfRange @ bci:24 (line 126)
         0 553 ReinterpretHF2S === _ 549 [[ ]] !jvms: Float16::add @ bci:1 (line 1165) TestFloat16Replicate::TestFloat16AddOutOfRange @ bci:24 (line 126)

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (src/hotspot/share/opto/phaseX.cpp:1117), pid=3238193, tid=3238233
      # assert(!failure) failed: Missed optimization opportunity/broken graph in PhaseIterGVN
      #
      # JRE version: Java(TM) SE Runtime Environment (27.0+6) (fastdebug build 27-ea+6-453)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-ea+6-453, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
      # Problematic frame:
      # V [libjvm.so+0x15f1830] PhaseIterGVN::verify_optimize()+0xc70

            Assignee:
            Unassigned
            Reporter:
            Manuel Hässig
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: