src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/cfg/Loop.java
equal
deleted
inserted
replaced
175 lastId = block.getId(); |
175 lastId = block.getId(); |
176 } |
176 } |
177 return true; |
177 return true; |
178 } |
178 } |
179 |
179 |
180 /** |
|
181 * Determines if one loop is a transitive parent of another loop. |
|
182 * |
|
183 * @param childLoop The loop for which parentLoop might be a transitive parent loop. |
|
184 * @param parentLoop The loop which might be a transitive parent loop of child loop. |
|
185 * @return {@code true} if parentLoop is a (transitive) parent loop of childLoop, {@code false} |
|
186 * otherwise |
|
187 */ |
|
188 public static <T extends AbstractBlockBase<T>> boolean transitiveParentLoop(Loop<T> childLoop, Loop<T> parentLoop) { |
|
189 Loop<T> curr = childLoop; |
|
190 while (curr != null) { |
|
191 if (curr == parentLoop) { |
|
192 return true; |
|
193 } |
|
194 curr = curr.getParent(); |
|
195 } |
|
196 return false; |
|
197 } |
|
198 |
|
199 @Override |
180 @Override |
200 public int hashCode() { |
181 public int hashCode() { |
201 return index + depth * 31; |
182 return index + depth * 31; |
202 } |
183 } |
203 |
184 |