20 * or visit www.oracle.com if you need additional information or have any |
20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. |
21 * questions. |
22 */ |
22 */ |
23 package org.graalvm.compiler.java; |
23 package org.graalvm.compiler.java; |
24 |
24 |
|
25 import static org.graalvm.compiler.nodes.cfg.ControlFlowGraph.multiplyProbabilities; |
|
26 |
25 import java.util.List; |
27 import java.util.List; |
26 |
28 |
|
29 import org.graalvm.collections.EconomicMap; |
27 import org.graalvm.compiler.nodes.AbstractBeginNode; |
30 import org.graalvm.compiler.nodes.AbstractBeginNode; |
28 import org.graalvm.compiler.nodes.AbstractMergeNode; |
31 import org.graalvm.compiler.nodes.AbstractMergeNode; |
29 import org.graalvm.compiler.nodes.ControlSplitNode; |
32 import org.graalvm.compiler.nodes.ControlSplitNode; |
30 import org.graalvm.compiler.nodes.FixedNode; |
33 import org.graalvm.compiler.nodes.FixedNode; |
31 import org.graalvm.compiler.nodes.LoopBeginNode; |
34 import org.graalvm.compiler.nodes.LoopBeginNode; |
32 import org.graalvm.compiler.nodes.LoopExitNode; |
35 import org.graalvm.compiler.nodes.LoopExitNode; |
33 import org.graalvm.compiler.nodes.StructuredGraph; |
36 import org.graalvm.compiler.nodes.StructuredGraph; |
34 import org.graalvm.compiler.nodes.cfg.ControlFlowGraph; |
37 import org.graalvm.compiler.nodes.cfg.ControlFlowGraph; |
35 import org.graalvm.compiler.phases.Phase; |
38 import org.graalvm.compiler.phases.Phase; |
36 import org.graalvm.compiler.phases.graph.ReentrantNodeIterator; |
39 import org.graalvm.compiler.phases.graph.ReentrantNodeIterator; |
37 import org.graalvm.util.EconomicMap; |
|
38 |
|
39 import static org.graalvm.compiler.nodes.cfg.ControlFlowGraph.multiplyProbabilities; |
|
40 |
40 |
41 public final class ComputeLoopFrequenciesClosure extends ReentrantNodeIterator.NodeIteratorClosure<Double> { |
41 public final class ComputeLoopFrequenciesClosure extends ReentrantNodeIterator.NodeIteratorClosure<Double> { |
42 |
42 |
43 private static final ComputeLoopFrequenciesClosure INSTANCE = new ComputeLoopFrequenciesClosure(); |
43 private static final ComputeLoopFrequenciesClosure INSTANCE = new ComputeLoopFrequenciesClosure(); |
44 |
44 |