src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/graph/SinglePassNodeIterator.java
equal
deleted
inserted
replaced
25 import java.util.ArrayDeque; |
25 import java.util.ArrayDeque; |
26 import java.util.ArrayList; |
26 import java.util.ArrayList; |
27 import java.util.Deque; |
27 import java.util.Deque; |
28 import java.util.List; |
28 import java.util.List; |
29 |
29 |
|
30 import org.graalvm.collections.EconomicMap; |
|
31 import org.graalvm.collections.Equivalence; |
30 import org.graalvm.compiler.graph.Node; |
32 import org.graalvm.compiler.graph.Node; |
31 import org.graalvm.compiler.graph.NodeBitMap; |
33 import org.graalvm.compiler.graph.NodeBitMap; |
32 import org.graalvm.compiler.nodes.AbstractBeginNode; |
34 import org.graalvm.compiler.nodes.AbstractBeginNode; |
33 import org.graalvm.compiler.nodes.AbstractMergeNode; |
35 import org.graalvm.compiler.nodes.AbstractMergeNode; |
34 import org.graalvm.compiler.nodes.ControlSinkNode; |
36 import org.graalvm.compiler.nodes.ControlSinkNode; |
40 import org.graalvm.compiler.nodes.InvokeWithExceptionNode; |
42 import org.graalvm.compiler.nodes.InvokeWithExceptionNode; |
41 import org.graalvm.compiler.nodes.LoopBeginNode; |
43 import org.graalvm.compiler.nodes.LoopBeginNode; |
42 import org.graalvm.compiler.nodes.LoopEndNode; |
44 import org.graalvm.compiler.nodes.LoopEndNode; |
43 import org.graalvm.compiler.nodes.StartNode; |
45 import org.graalvm.compiler.nodes.StartNode; |
44 import org.graalvm.compiler.nodes.StructuredGraph; |
46 import org.graalvm.compiler.nodes.StructuredGraph; |
45 import org.graalvm.util.Equivalence; |
|
46 import org.graalvm.util.EconomicMap; |
|
47 |
47 |
48 /** |
48 /** |
49 * A SinglePassNodeIterator iterates the fixed nodes of the graph in post order starting from its |
49 * A SinglePassNodeIterator iterates the fixed nodes of the graph in post order starting from its |
50 * start node. Unlike in iterative dataflow analysis, a single pass is performed, which allows |
50 * start node. Unlike in iterative dataflow analysis, a single pass is performed, which allows |
51 * keeping a smaller working set of pending {@link MergeableState}. This iteration scheme requires: |
51 * keeping a smaller working set of pending {@link MergeableState}. This iteration scheme requires: |