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

JVMCI: findUniqueConcreteMethod should handle statically bindable methods directly

    XMLWordPrintable

    Details

    • Subcomponent:
    • Introduced In Version:
      13
    • Resolved In Build:
      b28

      Backports

        Description

        After JDK-8223050, bootstrapping Graal now causes an assertion:

        java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler -XX:+BootstrapJVMCI -version
        Bootstrapping JVMCI.[Use -Dgraal.LogFile=<path> to redirect Graal log output to a file.]
        Thread[JVMCI CompilerThread0,9,system]: Compilation of org.graalvm.compiler.phases.common.util.EconomicSetNodeEventListener.changed(Graph$NodeEvent, Node) failed:
        org.graalvm.compiler.graph.GraalGraphError: java.lang.InternalError: Effectively static method org.graalvm.compiler.graph.Node.int org.graalvm.compiler.graph.Node.hashCode() should be handled in Java code
        at node: 75|LoadMethod
        at exact jdk.internal.vm.compiler.collections.EconomicMapImpl.getHashIndex(Object):int
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tryCanonicalize(CanonicalizerPhase.java:340)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.processNode(CanonicalizerPhase.java:262)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.processWorkSet(CanonicalizerPhase.java:241)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.run(CanonicalizerPhase.java:211)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:49)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:197)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.CanonicalizerPhase.applyIncremental(CanonicalizerPhase.java:149)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.CanonicalizerPhase.applyIncremental(CanonicalizerPhase.java:145)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.inlining.walker.InliningData.doInline(InliningData.java:420)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.inlining.walker.InliningData.tryToInline(InliningData.java:464)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.inlining.walker.InliningData.moveForward(InliningData.java:754)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.inlining.InliningPhase.run(InliningPhase.java:100)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.inlining.InliningPhase.run(InliningPhase.java:40)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:197)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:139)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.PhaseSuite.run(PhaseSuite.java:212)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:197)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:139)
        at jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.emitFrontEnd(GraalCompiler.java:220)
        at jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.compile(GraalCompiler.java:144)
        at jdk.internal.vm.compiler/org.graalvm.compiler.core.GraalCompiler.compileGraph(GraalCompiler.java:129)
        at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.HotSpotGraalCompiler.compileHelper(HotSpotGraalCompiler.java:212)
        at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.HotSpotGraalCompiler.compile(HotSpotGraalCompiler.java:226)
        at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.CompilationTask$HotSpotCompilationWrapper.performCompilation(CompilationTask.java:159)
        at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.CompilationTask$HotSpotCompilationWrapper.performCompilation(CompilationTask.java:80)
        at jdk.internal.vm.compiler/org.graalvm.compiler.core.CompilationWrapper.run(CompilationWrapper.java:177)
        at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.CompilationTask.runCompilation(CompilationTask.java:315)
        at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.HotSpotGraalCompiler.compileMethod(HotSpotGraalCompiler.java:142)
        at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.HotSpotGraalCompiler.compileMethod(HotSpotGraalCompiler.java:108)
        at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.compileMethod(HotSpotJVMCIRuntime.java:693)
        Caused by: java.lang.InternalError: Effectively static method org.graalvm.compiler.graph.Node.int org.graalvm.compiler.graph.Node.hashCode() should be handled in Java code
        at jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVM.findUniqueConcreteMethod(Native Method)
        at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotResolvedJavaMethodImpl.uniqueConcreteMethod(HotSpotResolvedJavaMethodImpl.java:427)
        at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.findUniqueConcreteMethod(HotSpotResolvedObjectTypeImpl.java:587)
        at jdk.internal.vm.compiler/org.graalvm.compiler.nodes.extended.LoadMethodNode.canonical(LoadMethodNode.java:100)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tryCanonicalize(CanonicalizerPhase.java:335)
        ... 30 more

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                dlong Dean Long
                Reporter:
                dnsimon Douglas Simon
                Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved: