src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/DefaultHotSpotLoweringProvider.java
changeset 58299 6df94ce3ab2f
parent 57537 ecc6e394475f
child 58679 9c3209ff7550
child 58877 aec7bf35d6f5
equal deleted inserted replaced
58298:0152ad7b38b8 58299:6df94ce3ab2f
    61 import org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider;
    61 import org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider;
    62 import org.graalvm.compiler.hotspot.nodes.BeginLockScopeNode;
    62 import org.graalvm.compiler.hotspot.nodes.BeginLockScopeNode;
    63 import org.graalvm.compiler.hotspot.nodes.HotSpotCompressionNode;
    63 import org.graalvm.compiler.hotspot.nodes.HotSpotCompressionNode;
    64 import org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode;
    64 import org.graalvm.compiler.hotspot.nodes.HotSpotDirectCallTargetNode;
    65 import org.graalvm.compiler.hotspot.nodes.HotSpotIndirectCallTargetNode;
    65 import org.graalvm.compiler.hotspot.nodes.HotSpotIndirectCallTargetNode;
       
    66 import org.graalvm.compiler.hotspot.nodes.KlassBeingInitializedCheckNode;
    66 import org.graalvm.compiler.hotspot.nodes.aot.InitializeKlassNode;
    67 import org.graalvm.compiler.hotspot.nodes.aot.InitializeKlassNode;
    67 import org.graalvm.compiler.hotspot.nodes.aot.ResolveConstantNode;
    68 import org.graalvm.compiler.hotspot.nodes.aot.ResolveConstantNode;
    68 import org.graalvm.compiler.hotspot.nodes.aot.ResolveDynamicConstantNode;
    69 import org.graalvm.compiler.hotspot.nodes.aot.ResolveDynamicConstantNode;
    69 import org.graalvm.compiler.hotspot.nodes.aot.ResolveMethodAndLoadCountersNode;
    70 import org.graalvm.compiler.hotspot.nodes.aot.ResolveMethodAndLoadCountersNode;
    70 import org.graalvm.compiler.hotspot.nodes.profiling.ProfileNode;
    71 import org.graalvm.compiler.hotspot.nodes.profiling.ProfileNode;
   403                 if (graph.getGuardsStage().areFrameStatesAtDeopts()) {
   404                 if (graph.getGuardsStage().areFrameStatesAtDeopts()) {
   404                     resolveConstantSnippets.lower((InitializeKlassNode) n, tool);
   405                     resolveConstantSnippets.lower((InitializeKlassNode) n, tool);
   405                 }
   406                 }
   406             } else if (n instanceof ProfileNode) {
   407             } else if (n instanceof ProfileNode) {
   407                 profileSnippets.lower((ProfileNode) n, tool);
   408                 profileSnippets.lower((ProfileNode) n, tool);
       
   409             } else if (n instanceof KlassBeingInitializedCheckNode) {
       
   410                 newObjectSnippets.lower((KlassBeingInitializedCheckNode) n, registers, tool);
   408             } else {
   411             } else {
   409                 super.lower(n, tool);
   412                 super.lower(n, tool);
   410             }
   413             }
   411         }
   414         }
   412     }
   415     }
   711         ForeignCallDescriptor descriptor = RuntimeCalls.runtimeCalls.get(node.getExceptionKind());
   714         ForeignCallDescriptor descriptor = RuntimeCalls.runtimeCalls.get(node.getExceptionKind());
   712         assert descriptor != null;
   715         assert descriptor != null;
   713 
   716 
   714         StructuredGraph graph = node.graph();
   717         StructuredGraph graph = node.graph();
   715         ForeignCallNode foreignCallNode = graph.add(new ForeignCallNode(foreignCalls, descriptor, node.stamp(NodeView.DEFAULT), node.getArguments()));
   718         ForeignCallNode foreignCallNode = graph.add(new ForeignCallNode(foreignCalls, descriptor, node.stamp(NodeView.DEFAULT), node.getArguments()));
       
   719         foreignCallNode.setStateAfter(node.stateAfter());
   716         graph.replaceFixedWithFixed(node, foreignCallNode);
   720         graph.replaceFixedWithFixed(node, foreignCallNode);
   717     }
   721     }
   718 
   722 
   719     private boolean addReadBarrier(RawLoadNode load) {
   723     private boolean addReadBarrier(RawLoadNode load) {
   720         if (runtime.getVMConfig().useG1GC && load.graph().getGuardsStage() == StructuredGraph.GuardsStage.FIXED_DEOPTS && load.object().getStackKind() == JavaKind.Object &&
   724         if (runtime.getVMConfig().useG1GC && load.graph().getGuardsStage() == StructuredGraph.GuardsStage.FIXED_DEOPTS && load.object().getStackKind() == JavaKind.Object &&