At least the following tests fail with JVM args "-XX:-TieredCompilation -XX:VerifyIterativeGVN=1110 -XX:+UnlockDiagnosticVMOptions -XX:+StressIncrementalInlining" with "Missed Ideal optimization" for ConvD2F or ConvF2HF:
- compiler/c2/irTests/TestFloat16ScalarOperations.java
- compiler/vectorization/TestFloat16VectorOperations.java
- 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/irTests/TestFloat16ScalarOperations.java:
Missed Ideal optimization (can_reshape=true):
The node was replaced by Ideal.
Old node:
dist dump
---------------------------------------------
1 1460 SqrtD === 5810 5820 [[ 1929 1615 1497 1603 1929 ]] !jvms: Float16::lambda$sqrt$0 @ bci:4 (line 1261) 0x00000000ba0bb428::apply @ bci:4 Float16Math::sqrt @ bci:24 (line 40) Float16::sqrt @ bci:8 (line 1254) TestFloat16ScalarOperations::testSqrtConstantFolding @ bci:54 (line 708)
0 1497 ConvD2F === _ 1460 [[ 1509 1532 ]] #float !jvms: Float16::valueOf @ bci:8 (line 381) Float16::lambda$sqrt$0 @ bci:7 (line 1261) 0x00000000ba0bb428::apply @ bci:4 Float16Math::sqrt @ bci:24 (line 40) Float16::sqrt @ bci:8 (line 1254) TestFloat16ScalarOperations::testSqrtConstantFolding @ bci:54 (line 708)
The result after Ideal:
dist dump
---------------------------------------------
1 5807 Proj === 5802 [[ 5820 5853 5854 ]] #5 !jvms: Float16::doubleValue @ bci:1 (line 895) Float16::lambda$sqrt$0 @ bci:1 (line 1261) 0x00000000ba0bb428::apply @ bci:4 Float16Math::sqrt @ bci:24 (line 40) Float16::sqrt @ bci:8 (line 1254) TestFloat16ScalarOperations::testSqrtConstantFolding @ bci:54 (line 708)
1 5810 CatchProj === 5809 [[ 1491 1460 5853 5854 ]] #0@bci -1 !jvms: Float16::doubleValue @ bci:1 (line 895) Float16::lambda$sqrt$0 @ bci:1 (line 1261) 0x00000000ba0bb428::apply @ bci:4 Float16Math::sqrt @ bci:24 (line 40) Float16::sqrt @ bci:8 (line 1254) TestFloat16ScalarOperations::testSqrtConstantFolding @ bci:54 (line 708)
0 5854 SqrtF === 5810 5807 [[ ]] !jvms: Number::<init> @ bci:1 (line 59) Float16::<init> @ bci:1 (line 128) Float16::valueOf @ bci:8 (line 364) Float16::valueOf @ bci:9 (line 381) Float16::lambda$sqrt$0 @ bci:7 (line 1261) 0x00000000ba0bb428::apply @ bci:4 Float16Math::sqrt @ bci:24 (line 40) Float16::sqrt @ bci:8 (line 1254) TestFloat16ScalarOperations::testSqrtConstantFolding @ bci:20 (line 702)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (.../src/hotspot/share/opto/phaseX.hpp:285), pid=2241683, tid=2241699
# assert(t != nullptr) failed: must set before get
# [...]
=====
Missed Ideal optimization (can_reshape=false):
The node was replaced by Ideal.
Old node:
dist dump
---------------------------------------------
1 514 SubF === _ 840 598 [[ 526 549 ]] !jvms: Float16::subtract @ bci:8 (line 1188) TestFloat16VectorOperations::vectorSubFloat16 @ bci:32 (line 121)
0 549 ConvF2HF === _ 514 [[ 694 ]] #short !jvms: Float16::valueOf @ bci:5 (line 364) Float16::subtract @ bci:9 (line 1188) TestFloat16VectorOperations::vectorSubFloat16 @ bci:32 (line 121)
The result after Ideal:
dist dump
---------------------------------------------
1 844 SubHF === _ 842 843 [[ 845 ]] !jvms: Float16::subtract @ bci:1 (line 1188) TestFloat16VectorOperations::vectorSubFloat16 @ bci:32 (line 121)
0 845 ReinterpretHF2S === _ 844 [[ ]] !jvms: Float16::subtract @ bci:1 (line 1188) TestFloat16VectorOperations::vectorSubFloat16 @ bci:32 (line 121)
- compiler/c2/irTests/TestFloat16ScalarOperations.java
- compiler/vectorization/TestFloat16VectorOperations.java
- 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/irTests/TestFloat16ScalarOperations.java:
Missed Ideal optimization (can_reshape=true):
The node was replaced by Ideal.
Old node:
dist dump
---------------------------------------------
1 1460 SqrtD === 5810 5820 [[ 1929 1615 1497 1603 1929 ]] !jvms: Float16::lambda$sqrt$0 @ bci:4 (line 1261) 0x00000000ba0bb428::apply @ bci:4 Float16Math::sqrt @ bci:24 (line 40) Float16::sqrt @ bci:8 (line 1254) TestFloat16ScalarOperations::testSqrtConstantFolding @ bci:54 (line 708)
0 1497 ConvD2F === _ 1460 [[ 1509 1532 ]] #float !jvms: Float16::valueOf @ bci:8 (line 381) Float16::lambda$sqrt$0 @ bci:7 (line 1261) 0x00000000ba0bb428::apply @ bci:4 Float16Math::sqrt @ bci:24 (line 40) Float16::sqrt @ bci:8 (line 1254) TestFloat16ScalarOperations::testSqrtConstantFolding @ bci:54 (line 708)
The result after Ideal:
dist dump
---------------------------------------------
1 5807 Proj === 5802 [[ 5820 5853 5854 ]] #5 !jvms: Float16::doubleValue @ bci:1 (line 895) Float16::lambda$sqrt$0 @ bci:1 (line 1261) 0x00000000ba0bb428::apply @ bci:4 Float16Math::sqrt @ bci:24 (line 40) Float16::sqrt @ bci:8 (line 1254) TestFloat16ScalarOperations::testSqrtConstantFolding @ bci:54 (line 708)
1 5810 CatchProj === 5809 [[ 1491 1460 5853 5854 ]] #0@bci -1 !jvms: Float16::doubleValue @ bci:1 (line 895) Float16::lambda$sqrt$0 @ bci:1 (line 1261) 0x00000000ba0bb428::apply @ bci:4 Float16Math::sqrt @ bci:24 (line 40) Float16::sqrt @ bci:8 (line 1254) TestFloat16ScalarOperations::testSqrtConstantFolding @ bci:54 (line 708)
0 5854 SqrtF === 5810 5807 [[ ]] !jvms: Number::<init> @ bci:1 (line 59) Float16::<init> @ bci:1 (line 128) Float16::valueOf @ bci:8 (line 364) Float16::valueOf @ bci:9 (line 381) Float16::lambda$sqrt$0 @ bci:7 (line 1261) 0x00000000ba0bb428::apply @ bci:4 Float16Math::sqrt @ bci:24 (line 40) Float16::sqrt @ bci:8 (line 1254) TestFloat16ScalarOperations::testSqrtConstantFolding @ bci:20 (line 702)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (.../src/hotspot/share/opto/phaseX.hpp:285), pid=2241683, tid=2241699
# assert(t != nullptr) failed: must set before get
# [...]
=====
Missed Ideal optimization (can_reshape=false):
The node was replaced by Ideal.
Old node:
dist dump
---------------------------------------------
1 514 SubF === _ 840 598 [[ 526 549 ]] !jvms: Float16::subtract @ bci:8 (line 1188) TestFloat16VectorOperations::vectorSubFloat16 @ bci:32 (line 121)
0 549 ConvF2HF === _ 514 [[ 694 ]] #short !jvms: Float16::valueOf @ bci:5 (line 364) Float16::subtract @ bci:9 (line 1188) TestFloat16VectorOperations::vectorSubFloat16 @ bci:32 (line 121)
The result after Ideal:
dist dump
---------------------------------------------
1 844 SubHF === _ 842 843 [[ 845 ]] !jvms: Float16::subtract @ bci:1 (line 1188) TestFloat16VectorOperations::vectorSubFloat16 @ bci:32 (line 121)
0 845 ReinterpretHF2S === _ 844 [[ ]] !jvms: Float16::subtract @ bci:1 (line 1188) TestFloat16VectorOperations::vectorSubFloat16 @ bci:32 (line 121)
- duplicates
-
JDK-8375686 C2: Missed Ideal optimization opportunity with ConvF2HF and -XX:+StressIncrementalInlining
-
- Closed
-
- relates to
-
JDK-8375686 C2: Missed Ideal optimization opportunity with ConvF2HF and -XX:+StressIncrementalInlining
-
- Closed
-
-
JDK-8375688 C2: Missed Ideal optimization opportunity with VectorMaskToLong and -XX:+StressIncrementalInlining
-
- New
-
-
JDK-8319879 Stress mode to randomize incremental inlining decision
-
- Resolved
-