aa
LoopNode.java
Go to the documentation of this file.
1 package com.cliffc.aa.node;
2 
3 import java.util.function.Predicate;
4 
5 // Merge backedge results; exactly a 2-input Region.
6 public class LoopNode extends RegionNode {
7  public LoopNode() { super(OP_LOOP); }
8 
9  @Override Node walk_dom_last(Predicate<Node> P) {
10  Node n = in(1).walk_dom_last(P); // Only walk loop fall-in
11  if( n != null ) return n; // Take last answer first
12  return P.test(this) ? this : null;
13  }
14 
15 }
com.cliffc.aa.node.Node.walk_dom_last
Node walk_dom_last(Predicate< Node > P)
Definition: Node.java:863
com.cliffc.aa.node.Node.OP_LOOP
static final byte OP_LOOP
Definition: Node.java:32
com.cliffc.aa.node.LoopNode.walk_dom_last
Node walk_dom_last(Predicate< Node > P)
Definition: LoopNode.java:9
com.cliffc.aa.node.Node
Definition: Node.java:16
com.cliffc.aa.node.LoopNode.LoopNode
LoopNode()
Definition: LoopNode.java:7
com.cliffc.aa.node.Node.in
Node in(int i)
Definition: Node.java:126
com.cliffc.aa.node.LoopNode
Definition: LoopNode.java:6
com.cliffc.aa.node.RegionNode
Definition: RegionNode.java:11