/** * given a DelayabilityAnalysis and the computations of each unit, calculates the latest * computation-point for each expression. the <code>equivRhsMap</code> could be calculated on the * fly, but it is <b>very</b> likely that it already exists (as similar maps are used for * calculating Earliestness, Delayed,... * * @param dg a ExceptionalUnitGraph * @param delayed the delayability-analysis of the same graph. * @param equivRhsMap all computations of the graph */ public LatestComputation(UnitGraph unitGraph, DelayabilityAnalysis delayed, Map equivRhsMap) { this( unitGraph, delayed, equivRhsMap, new ArrayPackedSet(new CollectionFlowUniverse(equivRhsMap.values()))); }
/** * Report the counts collected by instrumentation (for now, at least, there is no need to * provide access to the individual values as numbers). * * @return a string listing the counts. */ public String reportInstrumentation() { int setCount = 0; for (Iterator it = sizeToSets.values().iterator(); it.hasNext(); ) { List sizeList = (List) it.next(); setCount += sizeList.size(); } if (setCount != registeredSets) { throw new IllegalStateException( "ThrowableSet.reportInstrumentation() assertion failure: registeredSets != list count"); } StringBuffer buf = new StringBuffer("registeredSets: ") .append(setCount) .append("\naddsOfRefType: ") .append(addsOfRefType) .append("\naddsOfAnySubType: ") .append(addsOfAnySubType) .append("\naddsOfSet: ") .append(addsOfSet) .append("\naddsInclusionFromMap: ") .append(addsInclusionFromMap) .append("\naddsInclusionFromMemo: ") .append(addsInclusionFromMemo) .append("\naddsInclusionFromSearch: ") .append(addsInclusionFromSearch) .append("\naddsInclusionInterrupted: ") .append(addsInclusionInterrupted) .append("\naddsExclusionWithoutSearch: ") .append(addsExclusionWithoutSearch) .append("\naddsExclusionWithSearch: ") .append(addsExclusionWithSearch) .append("\nremovesOfAnySubType: ") .append(removesOfAnySubType) .append("\nremovesFromMap: ") .append(removesFromMap) .append("\nremovesFromMemo: ") .append(removesFromMemo) .append("\nremovesFromSearch: ") .append(removesFromSearch) .append("\nregistrationCalls: ") .append(registrationCalls) .append("\ncatchableAsQueries: ") .append(catchableAsQueries) .append("\ncatchableAsFromMap: ") .append(catchableAsFromMap) .append("\ncatchableAsFromSearch: ") .append(catchableAsFromSearch) .append('\n'); return buf.toString(); }