C2: CastPP should not change the type of the pointer

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: P3
    • 27
    • 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.

            Assignee:
            Unassigned
            Reporter:
            Quan Anh Mai
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: