-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P3
-
Affects Version/s: 24
-
Component/s: hotspot
In JDK-8347006, I suggested Tobias to change a CheckCastPP to a CastPP. This change is, however, dangerous, because since CastPP is removed before matching, it changes the adr_type the scheduler sees to Object instead of Bottom[]. This means the scheduler sees the length load from such arrays to be Object+12, which is incorrect. Since the scheduler sees the load is from a different memory alias class, all kinds of issues can happen:
- The alias class is not immutable anymore, which means the scheduler will try to calculate anti-dependencies, this may lead to unschedulable graphs.
- The memory input is still a Bottom[]+12, while the node says that it wants an Object+12, this results in a broken memory graph, trying to analyze this graph may lead to unpredictable issues.
- The alias class is not immutable anymore, which means the scheduler will try to calculate anti-dependencies, this may lead to unschedulable graphs.
- The memory input is still a Bottom[]+12, while the node says that it wants an Object+12, this results in a broken memory graph, trying to analyze this graph may lead to unpredictable issues.
- caused by
-
JDK-8347006 LoadRangeNode floats above array guard in arraycopy intrinsic
-
- Resolved
-