src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/FinalFieldBarrierNode.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/FinalFieldBarrierNode.java

Print this page




  26 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_2;
  27 import static jdk.vm.ci.code.MemoryBarriers.LOAD_STORE;
  28 import static jdk.vm.ci.code.MemoryBarriers.STORE_STORE;
  29 
  30 import org.graalvm.compiler.core.common.type.StampFactory;
  31 import org.graalvm.compiler.graph.NodeClass;
  32 import org.graalvm.compiler.nodeinfo.NodeInfo;
  33 import org.graalvm.compiler.nodes.FixedWithNextNode;
  34 import org.graalvm.compiler.nodes.ValueNode;
  35 import org.graalvm.compiler.nodes.extended.MembarNode;
  36 import org.graalvm.compiler.nodes.spi.Lowerable;
  37 import org.graalvm.compiler.nodes.spi.LoweringTool;
  38 import org.graalvm.compiler.nodes.spi.Virtualizable;
  39 import org.graalvm.compiler.nodes.spi.VirtualizerTool;
  40 import org.graalvm.compiler.nodes.virtual.VirtualObjectNode;
  41 
  42 @NodeInfo(cycles = CYCLES_20, size = SIZE_2)
  43 public class FinalFieldBarrierNode extends FixedWithNextNode implements Virtualizable, Lowerable {
  44     public static final NodeClass<FinalFieldBarrierNode> TYPE = NodeClass.create(FinalFieldBarrierNode.class);
  45 
  46     @Input private ValueNode value;
  47 
  48     public FinalFieldBarrierNode(ValueNode value) {
  49         super(TYPE, StampFactory.forVoid());
  50         this.value = value;
  51     }
  52 
  53     public ValueNode getValue() {
  54         return value;
  55     }
  56 
  57     @Override
  58     public void virtualize(VirtualizerTool tool) {
  59         if (tool.getAlias(value) instanceof VirtualObjectNode) {
  60             tool.delete();
  61         }
  62     }
  63 
  64     @Override
  65     public void lower(LoweringTool tool) {
  66         graph().replaceFixedWithFixed(this, graph().add(new MembarNode(LOAD_STORE | STORE_STORE)));
  67     }
  68 }


  26 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_2;
  27 import static jdk.vm.ci.code.MemoryBarriers.LOAD_STORE;
  28 import static jdk.vm.ci.code.MemoryBarriers.STORE_STORE;
  29 
  30 import org.graalvm.compiler.core.common.type.StampFactory;
  31 import org.graalvm.compiler.graph.NodeClass;
  32 import org.graalvm.compiler.nodeinfo.NodeInfo;
  33 import org.graalvm.compiler.nodes.FixedWithNextNode;
  34 import org.graalvm.compiler.nodes.ValueNode;
  35 import org.graalvm.compiler.nodes.extended.MembarNode;
  36 import org.graalvm.compiler.nodes.spi.Lowerable;
  37 import org.graalvm.compiler.nodes.spi.LoweringTool;
  38 import org.graalvm.compiler.nodes.spi.Virtualizable;
  39 import org.graalvm.compiler.nodes.spi.VirtualizerTool;
  40 import org.graalvm.compiler.nodes.virtual.VirtualObjectNode;
  41 
  42 @NodeInfo(cycles = CYCLES_20, size = SIZE_2)
  43 public class FinalFieldBarrierNode extends FixedWithNextNode implements Virtualizable, Lowerable {
  44     public static final NodeClass<FinalFieldBarrierNode> TYPE = NodeClass.create(FinalFieldBarrierNode.class);
  45 
  46     @OptionalInput private ValueNode value;
  47 
  48     public FinalFieldBarrierNode(ValueNode value) {
  49         super(TYPE, StampFactory.forVoid());
  50         this.value = value;
  51     }
  52 
  53     public ValueNode getValue() {
  54         return value;
  55     }
  56 
  57     @Override
  58     public void virtualize(VirtualizerTool tool) {
  59         if (value != null && tool.getAlias(value) instanceof VirtualObjectNode) {
  60             tool.delete();
  61         }
  62     }
  63 
  64     @Override
  65     public void lower(LoweringTool tool) {
  66         graph().replaceFixedWithFixed(this, graph().add(new MembarNode(LOAD_STORE | STORE_STORE)));
  67     }
  68 }
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/FinalFieldBarrierNode.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File