@Override public Object visitAssignMv(GAPPAssignMv gappAssignMv, Object arg) { curLine++; access(gappAssignMv.getDestination()); return null; }
/** * Returns the maximum used space * @return The maximum used space */ private long maximumUsedSpace() { // Divide and Conquer algorithm start return maximumUsedSpaceDivAndConq(1, curLine, liveStatistics.values()); }
/** * Prints the memory usage of a control flow graph * @param graph The graph */ public static void printMemoryUsage(ControlFlowGraph graph) { MemoryUsage visitor = new MemoryUsage(); graph.accept(visitor); System.out.println("#Instructions: " + visitor.curLine); System.out.println("#Multivectors: " + visitor.liveStatistics.size()); long sum = 0; for (LiveStatistics live : visitor.liveStatistics.values()) { sum += live.getSize(); } System.out.println("Sum of multivectors sizes (liveness start until end): " + sum); System.out.println("Maximum of used space: " + visitor.maximumUsedSpace()); }
@Override public Object visitDotVectors(GAPPDotVectors gappDotVectors, Object arg) { curLine++; access(gappDotVectors.getDestination()); return null; }
long leftMax = maximumUsedSpaceDivAndConq(lineStart, centerlastIntLeft, leftList); long rightMax = maximumUsedSpaceDivAndConq(centerlastIntLeft + 1, lineEnd, rightList);
@Override public Object visitAssignInputsVector(GAPPAssignInputsVector gAPPAssignInputsVector, Object arg) { curLine++; access(new GAPPMultivector("inputsVector")); return null; } }
@Override public Object visitCalculateMvCoeff(GAPPCalculateMvCoeff gappCalculateMvCoeff, Object arg) { curLine++; access(new GAPPMultivector(gappCalculateMvCoeff.getDestination().getName())); access(gappCalculateMvCoeff.getOperand1()); if (gappCalculateMvCoeff.getOperand2() != null) { access(gappCalculateMvCoeff.getOperand2()); } return null; }
@Override public Object visitSetVector(GAPPSetVector gappSetVector, Object arg) { curLine++; for (SetVectorArgument curArg: gappSetVector.getEntries()) if (!curArg.isConstant()) { PairSetOfVariablesAndIndices p = (PairSetOfVariablesAndIndices) curArg; access(p.getSetOfVariable()); } return null; }