35 @NodeInfo(nameTemplate = "GuardPhi({i#values})", allowedUsageTypes = {InputType.Guard}) 36 public final class GuardPhiNode extends PhiNode implements GuardingNode { 37 38 public static final NodeClass<GuardPhiNode> TYPE = NodeClass.create(GuardPhiNode.class); 39 @OptionalInput(InputType.Guard) NodeInputList<ValueNode> values; 40 41 public GuardPhiNode(AbstractMergeNode merge) { 42 super(TYPE, StampFactory.forVoid(), merge); 43 this.values = new NodeInputList<>(this); 44 } 45 46 public GuardPhiNode(AbstractMergeNode merge, ValueNode[] values) { 47 super(TYPE, StampFactory.forVoid(), merge); 48 this.values = new NodeInputList<>(this, values); 49 } 50 51 @Override 52 public NodeInputList<ValueNode> values() { 53 return values; 54 } 55 56 @Override 57 public boolean hasValidInput() { 58 return true; 59 } 60 } | 35 @NodeInfo(nameTemplate = "GuardPhi({i#values})", allowedUsageTypes = {InputType.Guard}) 36 public final class GuardPhiNode extends PhiNode implements GuardingNode { 37 38 public static final NodeClass<GuardPhiNode> TYPE = NodeClass.create(GuardPhiNode.class); 39 @OptionalInput(InputType.Guard) NodeInputList<ValueNode> values; 40 41 public GuardPhiNode(AbstractMergeNode merge) { 42 super(TYPE, StampFactory.forVoid(), merge); 43 this.values = new NodeInputList<>(this); 44 } 45 46 public GuardPhiNode(AbstractMergeNode merge, ValueNode[] values) { 47 super(TYPE, StampFactory.forVoid(), merge); 48 this.values = new NodeInputList<>(this, values); 49 } 50 51 @Override 52 public NodeInputList<ValueNode> values() { 53 return values; 54 } 55 } |