private void collectBlocks(CFG.Block block, Map<Tree, CFGLoop> container) { collectBlocks(block, container, new HashSet<CFG.Block>()); }
private void collectBlocks(CFG.Block block, Map<Tree, CFGLoop> container) { collectBlocks(block, container, new HashSet<CFG.Block>()); }
private void initialize(CFG.Block block, Map<Tree, CFGLoop> container) { Block loopFirstBlock = block.trueBlock(); if (loopFirstBlock == null) { // Special case where no condition is given in FOR loop: only one successor specified loopFirstBlock = block.successors().iterator().next(); } collectBlocks(loopFirstBlock, container); successors.addAll(block.successors()); successors.remove(block.falseBlock()); collectWaysOut(container); }
private void initialize(CFG.Block block, Map<Tree, CFGLoop> container) { Block loopFirstBlock = block.trueBlock(); if (loopFirstBlock == null) { // Special case where no condition is given in FOR loop: only one successor specified loopFirstBlock = block.successors().iterator().next(); } collectBlocks(loopFirstBlock, container); successors.addAll(block.successors()); successors.remove(block.falseBlock()); collectWaysOut(container); }
private boolean returnsToStart(CFG.Block block, Map<Tree, CFGLoop> container, Set<CFG.Block> visitedBlocks) { Set<Block> localSuccessors = localSuccessors(block, container); if (localSuccessors == null) { return true; } boolean answer = false; for (CFG.Block successor : localSuccessors) { if (startingBlock.id() == successor.id()) { answer = true; } else { answer |= collectBlocks(successor, container, visitedBlocks); } } return answer; }
private boolean returnsToStart(CFG.Block block, Map<Tree, CFGLoop> container, Set<CFG.Block> visitedBlocks) { Set<Block> localSuccessors = localSuccessors(block, container); if (localSuccessors == null) { return true; } boolean answer = false; for (CFG.Block successor : localSuccessors) { if (startingBlock.id() == successor.id()) { answer = true; } else { answer |= collectBlocks(successor, container, visitedBlocks); } } return answer; }