Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8294578

[PPC64] C2: Missing is_oop information when using disjoint compressed oops mode

XMLWordPrintable

    • b18
    • ppc

        New assertion from JDK-8293844 was hit on PPC64 while running jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWithHeapBasedOops.java:
        # Internal Error (/src/hotspot/share/opto/output.cpp:941)
        # assert(t->base() == Type::Int || t->base() == Type::Half || t->base() == Type::FloatCon || t->base() == Type::FloatBot) failed: Unexpected type: inst:

        Debugging shows that the C2's decodeN_mergeDisjointNode misses a set_oop call which causes the issue.
        The usage in decodeN_Disjoint_isel_Ex is not problematic because it is only inserted in the middle of a postalloc_expand sequence. But, the usage in decodeN_Disjoint_notNull_Ex should get fixed because it produces an oop at the end of the postalloc_expand sequence.

              mdoerr Martin Doerr
              mdoerr Martin Doerr
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: