src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/cfg/Block.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/cfg/Block.java	Fri Jul  7 09:31:25 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/cfg/Block.java	Fri Jul  7 09:31:25 2017

*** 29,43 **** --- 29,45 ---- import org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph; import org.graalvm.compiler.core.common.cfg.Loop; import org.graalvm.compiler.graph.Node; import org.graalvm.compiler.nodeinfo.Verbosity; import org.graalvm.compiler.nodes.AbstractBeginNode; + import org.graalvm.compiler.nodes.BeginNode; import org.graalvm.compiler.nodes.FixedNode; import org.graalvm.compiler.nodes.FixedWithNextNode; import org.graalvm.compiler.nodes.InvokeWithExceptionNode; import org.graalvm.compiler.nodes.LoopBeginNode; import org.graalvm.compiler.nodes.LoopEndNode; + import org.graalvm.compiler.nodes.LoopExitNode; import org.graalvm.compiler.nodes.memory.MemoryCheckpoint; import org.graalvm.word.LocationIdentity; public final class Block extends AbstractBlockBase<Block> {
*** 46,56 **** --- 48,58 ---- protected final AbstractBeginNode beginNode; protected FixedNode endNode; protected double probability; ! protected Loop<Block> loop; ! private Loop<Block> loop; protected Block postdominator; protected Block distancedDominatorCache; private LocationSet killLocations; private LocationSet killLocationsBetweenThisAndDominator;
*** 65,74 **** --- 67,91 ---- public FixedNode getEndNode() { return endNode; } + /** + * Return the {@link LoopExitNode} for this block if it exists. + */ + public LoopExitNode getLoopExit() { + if (beginNode instanceof BeginNode) { + if (beginNode.next() instanceof LoopExitNode) { + return (LoopExitNode) beginNode.next(); + } + } + if (beginNode instanceof LoopExitNode) { + return (LoopExitNode) beginNode; + } + return null; + } + @Override public Loop<Block> getLoop() { return loop; }

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/cfg/Block.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File