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 import java.util.function.Predicate; |
29 import java.util.function.Predicate; |
30 |
30 |
|
31 import org.graalvm.collections.EconomicMap; |
|
32 import org.graalvm.collections.Equivalence; |
31 import org.graalvm.compiler.core.common.PermanentBailoutException; |
33 import org.graalvm.compiler.core.common.PermanentBailoutException; |
32 import org.graalvm.compiler.core.common.RetryableBailoutException; |
34 import org.graalvm.compiler.core.common.RetryableBailoutException; |
33 import org.graalvm.compiler.core.common.cfg.Loop; |
35 import org.graalvm.compiler.core.common.cfg.Loop; |
34 import org.graalvm.compiler.core.common.util.CompilationAlarm; |
36 import org.graalvm.compiler.core.common.util.CompilationAlarm; |
35 import org.graalvm.compiler.nodes.AbstractEndNode; |
37 import org.graalvm.compiler.nodes.AbstractEndNode; |
36 import org.graalvm.compiler.nodes.AbstractMergeNode; |
38 import org.graalvm.compiler.nodes.AbstractMergeNode; |
37 import org.graalvm.compiler.nodes.FixedNode; |
39 import org.graalvm.compiler.nodes.FixedNode; |
38 import org.graalvm.compiler.nodes.LoopBeginNode; |
40 import org.graalvm.compiler.nodes.LoopBeginNode; |
39 import org.graalvm.compiler.nodes.StructuredGraph; |
41 import org.graalvm.compiler.nodes.StructuredGraph; |
40 import org.graalvm.compiler.nodes.cfg.Block; |
42 import org.graalvm.compiler.nodes.cfg.Block; |
41 import org.graalvm.util.Equivalence; |
|
42 import org.graalvm.util.EconomicMap; |
|
43 |
43 |
44 public final class ReentrantBlockIterator { |
44 public final class ReentrantBlockIterator { |
45 |
45 |
46 public static class LoopInfo<StateT> { |
46 public static class LoopInfo<StateT> { |
47 |
47 |