< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/cfg/CFGVerifier.java

Print this page




 104 
 105                 for (T block : loop.getBlocks()) {
 106                     assert block.getId() >= loop.getHeader().getId();
 107 
 108                     Loop<?> blockLoop = block.getLoop();
 109                     while (blockLoop != loop) {
 110                         assert blockLoop != null;
 111                         blockLoop = blockLoop.getParent();
 112                     }
 113 
 114                     if (!(block.isLoopHeader() && block.getLoop() == loop)) {
 115                         for (T pred : block.getPredecessors()) {
 116                             if (!loop.getBlocks().contains(pred)) {
 117                                 assert false : "Loop " + loop + " does not contain " + pred;
 118                                 return false;
 119                             }
 120                         }
 121                     }
 122                 }
 123 
 124                 for (T block : loop.getExits()) {
 125                     assert block.getId() >= loop.getHeader().getId();
 126 
 127                     Loop<?> blockLoop = block.getLoop();
 128                     while (blockLoop != null) {
 129                         blockLoop = blockLoop.getParent();
 130                         assert blockLoop != loop;
 131                     }
 132                 }
 133             }
 134         }
 135 
 136         return true;
 137     }
 138 }


 104 
 105                 for (T block : loop.getBlocks()) {
 106                     assert block.getId() >= loop.getHeader().getId();
 107 
 108                     Loop<?> blockLoop = block.getLoop();
 109                     while (blockLoop != loop) {
 110                         assert blockLoop != null;
 111                         blockLoop = blockLoop.getParent();
 112                     }
 113 
 114                     if (!(block.isLoopHeader() && block.getLoop() == loop)) {
 115                         for (T pred : block.getPredecessors()) {
 116                             if (!loop.getBlocks().contains(pred)) {
 117                                 assert false : "Loop " + loop + " does not contain " + pred;
 118                                 return false;
 119                             }
 120                         }
 121                     }
 122                 }
 123 
 124                 for (T block : loop.getLoopExits()) {
 125                     assert block.getId() >= loop.getHeader().getId();
 126 
 127                     Loop<?> blockLoop = block.getLoop();
 128                     while (blockLoop != null) {
 129                         blockLoop = blockLoop.getParent();
 130                         assert blockLoop != loop;
 131                     }
 132                 }
 133             }
 134         }
 135 
 136         return true;
 137     }
 138 }
< prev index next >