< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/LoopBeginNode.java

Print this page




 283         unswitches++;
 284     }
 285 
 286     public int getInversionCount() {
 287         return inversionCount;
 288     }
 289 
 290     public void setInversionCount(int count) {
 291         inversionCount = count;
 292     }
 293 
 294     @Override
 295     public void simplify(SimplifierTool tool) {
 296         canonicalizePhis(tool);
 297     }
 298 
 299     public boolean isLoopExit(AbstractBeginNode begin) {
 300         return begin instanceof LoopExitNode && ((LoopExitNode) begin).loopBegin() == this;
 301     }
 302 










 303     public void removeExits() {
 304         for (LoopExitNode loopexit : loopExits().snapshot()) {
 305             loopexit.removeProxies();
 306             FrameState loopStateAfter = loopexit.stateAfter();
 307             graph().replaceFixedWithFixed(loopexit, graph().add(new BeginNode()));
 308             if (loopStateAfter != null) {
 309                 GraphUtil.tryKillUnused(loopStateAfter);
 310             }
 311         }
 312     }
 313 
 314     public GuardingNode getOverflowGuard() {
 315         return overflowGuard;
 316     }
 317 
 318     public void setOverflowGuard(GuardingNode overflowGuard) {
 319         updateUsagesInterface(this.overflowGuard, overflowGuard);
 320         this.overflowGuard = overflowGuard;
 321     }
 322 




 283         unswitches++;
 284     }
 285 
 286     public int getInversionCount() {
 287         return inversionCount;
 288     }
 289 
 290     public void setInversionCount(int count) {
 291         inversionCount = count;
 292     }
 293 
 294     @Override
 295     public void simplify(SimplifierTool tool) {
 296         canonicalizePhis(tool);
 297     }
 298 
 299     public boolean isLoopExit(AbstractBeginNode begin) {
 300         return begin instanceof LoopExitNode && ((LoopExitNode) begin).loopBegin() == this;
 301     }
 302 
 303     public LoopExitNode getSingleLoopExit() {
 304         assert loopExits().count() == 1;
 305         return loopExits().first();
 306     }
 307 
 308     public LoopEndNode getSingleLoopEnd() {
 309         assert loopEnds().count() == 1;
 310         return loopEnds().first();
 311     }
 312 
 313     public void removeExits() {
 314         for (LoopExitNode loopexit : loopExits().snapshot()) {
 315             loopexit.removeProxies();
 316             FrameState loopStateAfter = loopexit.stateAfter();
 317             graph().replaceFixedWithFixed(loopexit, graph().add(new BeginNode()));
 318             if (loopStateAfter != null) {
 319                 GraphUtil.tryKillUnused(loopStateAfter);
 320             }
 321         }
 322     }
 323 
 324     public GuardingNode getOverflowGuard() {
 325         return overflowGuard;
 326     }
 327 
 328     public void setOverflowGuard(GuardingNode overflowGuard) {
 329         updateUsagesInterface(this.overflowGuard, overflowGuard);
 330         this.overflowGuard = overflowGuard;
 331     }
 332 


< prev index next >