@Override public void visit(BreakStatement statement) { if (statement.getTarget() == blockToCount) { ++count; } }
private boolean briefStatementComparison(List<Statement> firstSeq, List<Statement> secondSeq) { if (firstSeq.isEmpty() && secondSeq.isEmpty()) { return true; } if (firstSeq.size() != 1 || secondSeq.size() != 1) { return false; } Statement first = firstSeq.get(0); Statement second = secondSeq.get(0); if (first instanceof BreakStatement && second instanceof BreakStatement) { BreakStatement firstBreak = (BreakStatement) first; BreakStatement secondBreak = (BreakStatement) second; return firstBreak.getTarget() == secondBreak.getTarget(); } return false; }
@Override public void visit(BreakStatement statement) { if (blockSuccessors.containsKey(statement.getTarget())) { if (usageCounter.getCount(statement.getTarget()) == 1) { currentSequence.subList(currentIndex, currentSequence.size()).clear(); List<Statement> successors = blockSuccessors.remove(statement.getTarget()); currentSequence.addAll(successors); successors.clear(); --currentIndex; return; } } currentSequence.subList(currentIndex + 1, currentSequence.size()).clear(); }
@Override public void visit(BreakStatement statement) { IdentifiedStatement target = statement.getTarget(); if (target == null) { target = currentBlock; } incrementBlock(target); }
@Override public void visit(BreakStatement statement) { try { output.writeByte(statement.getTarget() != null && statement.getTarget().getId() != null ? 8 : 9); writeLocation(statement.getLocation()); if (statement.getTarget() != null && statement.getTarget().getId() != null) { output.writeUTF(statement.getTarget().getId()); } } catch (IOException e) { throw new IOExceptionWrapper(e); } }
@Override public void visit(BreakStatement statement) { IdentifiedStatement target = statement.getTarget(); if (target == null) { target = currentBreakTarget; } WasmBlock wasmTarget = breakTargets.get(target); usedBlocks.add(wasmTarget); result = new WasmBreak(wasmTarget); result.setLocation(statement.getLocation()); }
private boolean hitsRedundantBreakThreshold(List<Statement> statements, IdentifiedStatement exit) { int count = 0; for (int i = 0; i < statements.size(); ++i) { Statement stmt = statements.get(i); if (!(stmt instanceof ConditionalStatement)) { continue; } ConditionalStatement conditional = (ConditionalStatement) stmt; if (!conditional.getConsequent().isEmpty() && !conditional.getAlternative().isEmpty()) { continue; } List<Statement> innerStatements = !conditional.getConsequent().isEmpty() ? conditional.getConsequent() : conditional.getAlternative(); if (innerStatements.isEmpty()) { continue; } Statement last = innerStatements.get(innerStatements.size() - 1); if (!(last instanceof BreakStatement)) { continue; } BreakStatement breakStmt = (BreakStatement) last; if (exit != null && exit == breakStmt.getTarget() && ++count == 8) { return true; } } return false; }
@Override public void visit(BreakStatement statement) { if (statement.getTarget() == replacedBreak) { replaceBy = new ContinueStatement(); replaceBy.setTarget(replacement); replaceBy.setLocation(statement.getLocation()); } }
IdentifiedStatement target = ((BreakStatement) last).getTarget(); if (exit == target) { statements.remove(statements.size() - 1); if (last instanceof BreakStatement) { BreakStatement breakStmt = (BreakStatement) last; if (exit != null && exit == breakStmt.getTarget()) { cond.getConsequent().remove(cond.getConsequent().size() - 1); List<Statement> remaining = statements.subList(i + 1, statements.size()); if (last instanceof BreakStatement) { BreakStatement breakStmt = (BreakStatement) last; if (exit != null && exit == breakStmt.getTarget()) { cond.getAlternative().remove(cond.getAlternative().size() - 1); List<Statement> remaining = statements.subList(i + 1, statements.size());
if (cond.getConsequent().size() == 1 && cond.getConsequent().get(0) instanceof BreakStatement) { BreakStatement breakStmt = (BreakStatement) cond.getConsequent().get(0); if (breakStmt.getTarget() == statement) { statement.getBody().remove(0); if (statement.getCondition() != null) {
@Override public void visit(BreakStatement statement) { try { debugEmitter.emitStatementStart(); if (statement.getLocation() != null) { pushLocation(statement.getLocation()); } writer.append("break"); if (statement.getTarget() != null) { writer.append(' ').append(mapBlockId(statement.getTarget().getId())); } writer.append(";").softNewLine(); if (statement.getLocation() != null) { popLocation(); } } catch (IOException e) { throw new RenderingException("IO error occurred", e); } }
@Override public void visit(BreakStatement statement) { if (statement.getTarget() == blockToCount) { ++count; } }
@Override public void visit(BreakStatement statement) { if (blockSuccessors.containsKey(statement.getTarget())) { if (usageCounter.getCount(statement.getTarget()) == 1) { currentSequence.subList(currentIndex, currentSequence.size()).clear(); List<Statement> successors = blockSuccessors.remove(statement.getTarget()); currentSequence.addAll(successors); successors.clear(); --currentIndex; return; } } currentSequence.subList(currentIndex + 1, currentSequence.size()).clear(); }
@Override public void visit(BreakStatement statement) { IdentifiedStatement target = statement.getTarget(); if (target == null) { target = currentBlock; } incrementBlock(target); }
@Override public void visit(BreakStatement statement) { try { output.writeByte(statement.getTarget() != null && statement.getTarget().getId() != null ? 8 : 9); writeLocation(statement.getLocation()); if (statement.getTarget() != null && statement.getTarget().getId() != null) { output.writeUTF(statement.getTarget().getId()); } } catch (IOException e) { throw new IOExceptionWrapper(e); } }
@Override public void visit(BreakStatement statement) { IdentifiedStatement target = statement.getTarget(); if (target == null) { target = currentBreakTarget; } WasmBlock wasmTarget = breakTargets.get(target); usedBlocks.add(wasmTarget); result = new WasmBreak(wasmTarget); result.setLocation(statement.getLocation()); }
@Override public void visit(BreakStatement statement) { if (statement.getTarget() == replacedBreak) { replaceBy = new ContinueStatement(); replaceBy.setTarget(replacement); replaceBy.setLocation(statement.getLocation()); } }