src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/DefaultHotSpotLoweringProvider.java
equal
deleted
inserted
replaced
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 && |