25 import static org.graalvm.compiler.nodeinfo.InputType.Memory; 26 import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_0; 27 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_0; 28 29 import org.graalvm.compiler.core.common.LocationIdentity; 30 import org.graalvm.compiler.graph.NodeClass; 31 import org.graalvm.compiler.nodeinfo.NodeInfo; 32 import org.graalvm.compiler.nodes.memory.MemoryCheckpoint; 33 34 @NodeInfo(allowedUsageTypes = {Memory}, cycles = CYCLES_0, size = SIZE_0) 35 public final class KillingBeginNode extends AbstractBeginNode implements MemoryCheckpoint.Single { 36 37 public static final NodeClass<KillingBeginNode> TYPE = NodeClass.create(KillingBeginNode.class); 38 protected LocationIdentity locationIdentity; 39 40 public KillingBeginNode(LocationIdentity locationIdentity) { 41 super(TYPE); 42 this.locationIdentity = locationIdentity; 43 } 44 45 public static KillingBeginNode begin(FixedNode with, LocationIdentity locationIdentity) { 46 if (with instanceof KillingBeginNode) { 47 return (KillingBeginNode) with; 48 } 49 KillingBeginNode begin = with.graph().add(new KillingBeginNode(locationIdentity)); 50 begin.setNext(with); 51 return begin; 52 } 53 54 @Override 55 public LocationIdentity getLocationIdentity() { 56 return locationIdentity; 57 } 58 } | 25 import static org.graalvm.compiler.nodeinfo.InputType.Memory; 26 import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_0; 27 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_0; 28 29 import org.graalvm.compiler.core.common.LocationIdentity; 30 import org.graalvm.compiler.graph.NodeClass; 31 import org.graalvm.compiler.nodeinfo.NodeInfo; 32 import org.graalvm.compiler.nodes.memory.MemoryCheckpoint; 33 34 @NodeInfo(allowedUsageTypes = {Memory}, cycles = CYCLES_0, size = SIZE_0) 35 public final class KillingBeginNode extends AbstractBeginNode implements MemoryCheckpoint.Single { 36 37 public static final NodeClass<KillingBeginNode> TYPE = NodeClass.create(KillingBeginNode.class); 38 protected LocationIdentity locationIdentity; 39 40 public KillingBeginNode(LocationIdentity locationIdentity) { 41 super(TYPE); 42 this.locationIdentity = locationIdentity; 43 } 44 45 public static AbstractBeginNode begin(FixedNode with, LocationIdentity locationIdentity) { 46 if (with instanceof KillingBeginNode) { 47 return (KillingBeginNode) with; 48 } 49 AbstractBeginNode begin = with.graph().add(KillingBeginNode.create(locationIdentity)); 50 begin.setNext(with); 51 return begin; 52 } 53 54 public static AbstractBeginNode create(LocationIdentity locationIdentity) { 55 return new KillingBeginNode(locationIdentity); 56 } 57 58 @Override 59 public LocationIdentity getLocationIdentity() { 60 return locationIdentity; 61 } 62 } |