/** * Constructs a fully-initialized instance. (This method exists so as * to avoid calling a large amount of code in the constructor.) * * @param meth {@code non-null;} method to process * @param domInfos {@code non-null;} the raw dominator info * @param postdom true for postdom information, false for normal dom info */ public static Dominators make(SsaMethod meth, DomFront.DomInfo[] domInfos, boolean postdom) { Dominators result = new Dominators(meth, domInfos, postdom); result.run(); return result; }
private SsaBasicBlock eval(SsaBasicBlock v) { DFSInfo bbInfo = info[v.getIndex()]; if (bbInfo.ancestor == null) { return v; } compress(v); return bbInfo.rep; }
DFSInfo wInfo = info[w.getIndex()]; BitSet preds = getPreds(w); for (int j = preds.nextSetBit(0); j >= 0; int predSemidom = info[eval(predBlock).getIndex()].semidom; if (predSemidom < wInfo.semidom) { wInfo.semidom = predSemidom; int lastItem = wParentBucket.size() - 1; SsaBasicBlock last = wParentBucket.remove(lastItem); SsaBasicBlock U = eval(last); if (info[U.getIndex()].semidom < info[last.getIndex()].semidom) {
Dominators methDom = Dominators.make(meth, domInfos, false);
DFSInfo wInfo = info[w.getIndex()]; BitSet preds = getPreds(w); for (int j = preds.nextSetBit(0); j >= 0; int predSemidom = info[eval(predBlock).getIndex()].semidom; if (predSemidom < wInfo.semidom) { wInfo.semidom = predSemidom; int lastItem = wParentBucket.size() - 1; SsaBasicBlock last = wParentBucket.remove(lastItem); SsaBasicBlock U = eval(last); if (info[U.getIndex()].semidom < info[last.getIndex()].semidom) {
Dominators methDom = Dominators.make(meth, domInfos, false);
/** * Constructs a fully-initialized instance. (This method exists so as * to avoid calling a large amount of code in the constructor.) * * @param meth {@code non-null;} method to process * @param domInfos {@code non-null;} the raw dominator info * @param postdom true for postdom information, false for normal dom info */ public static Dominators make(SsaMethod meth, DomFront.DomInfo[] domInfos, boolean postdom) { Dominators result = new Dominators(meth, domInfos, postdom); result.run(); return result; }
DFSInfo wInfo = info[w.getIndex()]; BitSet preds = getPreds(w); for (int j = preds.nextSetBit(0); j >= 0; int predSemidom = info[eval(predBlock).getIndex()].semidom; if (predSemidom < wInfo.semidom) { wInfo.semidom = predSemidom; int lastItem = wParentBucket.size() - 1; SsaBasicBlock last = wParentBucket.remove(lastItem); SsaBasicBlock U = eval(last); if (info[U.getIndex()].semidom < info[last.getIndex()].semidom) {
private SsaBasicBlock eval(SsaBasicBlock v) { DFSInfo bbInfo = info[v.getIndex()]; if (bbInfo.ancestor == null) { return v; } compress(v); return bbInfo.rep; }
Dominators methDom = Dominators.make(meth, domInfos, false);
/** * Constructs a fully-initialized instance. (This method exists so as * to avoid calling a large amount of code in the constructor.) * * @param meth {@code non-null;} method to process * @param domInfos {@code non-null;} the raw dominator info * @param postdom true for postdom information, false for normal dom info */ public static Dominators make(SsaMethod meth, DomFront.DomInfo[] domInfos, boolean postdom) { Dominators result = new Dominators(meth, domInfos, postdom); result.run(); return result; }
DFSInfo wInfo = info[w.getIndex()]; BitSet preds = getPreds(w); for (int j = preds.nextSetBit(0); j >= 0; int predSemidom = info[eval(predBlock).getIndex()].semidom; if (predSemidom < wInfo.semidom) { wInfo.semidom = predSemidom; int lastItem = wParentBucket.size() - 1; SsaBasicBlock last = wParentBucket.remove(lastItem); SsaBasicBlock U = eval(last); if (info[U.getIndex()].semidom < info[last.getIndex()].semidom) {
private SsaBasicBlock eval(SsaBasicBlock v) { DFSInfo bbInfo = info[v.getIndex()]; if (bbInfo.ancestor == null) { return v; } compress(v); return bbInfo.rep; }
Dominators methDom = Dominators.make(meth, domInfos, false);
/** * Constructs a fully-initialized instance. (This method exists so as * to avoid calling a large amount of code in the constructor.) * * @param meth {@code non-null;} method to process * @param domInfos {@code non-null;} the raw dominator info * @param postdom true for postdom information, false for normal dom info */ public static Dominators make(SsaMethod meth, DomFront.DomInfo[] domInfos, boolean postdom) { Dominators result = new Dominators(meth, domInfos, postdom); result.run(); return result; }
DFSInfo wInfo = info[w.getIndex()]; BitSet preds = getPreds(w); for (int j = preds.nextSetBit(0); j >= 0; int predSemidom = info[eval(predBlock).getIndex()].semidom; if (predSemidom < wInfo.semidom) { wInfo.semidom = predSemidom; int lastItem = wParentBucket.size() - 1; SsaBasicBlock last = wParentBucket.remove(lastItem); SsaBasicBlock U = eval(last); if (info[U.getIndex()].semidom < info[last.getIndex()].semidom) {
private SsaBasicBlock eval(SsaBasicBlock v) { DFSInfo bbInfo = info[v.getIndex()]; if (bbInfo.ancestor == null) { return v; } compress(v); return bbInfo.rep; }
Dominators methDom = Dominators.make(meth, domInfos, false);
/** * Constructs a fully-initialized instance. (This method exists so as * to avoid calling a large amount of code in the constructor.) * * @param meth {@code non-null;} method to process * @param domInfos {@code non-null;} the raw dominator info * @param postdom true for postdom information, false for normal dom info */ public static Dominators make(SsaMethod meth, DomFront.DomInfo[] domInfos, boolean postdom) { Dominators result = new Dominators(meth, domInfos, postdom); result.run(); return result; }
DFSInfo wInfo = info[w.getIndex()]; BitSet preds = getPreds(w); for (int j = preds.nextSetBit(0); j >= 0; int predSemidom = info[eval(predBlock).getIndex()].semidom; if (predSemidom < wInfo.semidom) { wInfo.semidom = predSemidom; int lastItem = wParentBucket.size() - 1; SsaBasicBlock last = wParentBucket.remove(lastItem); SsaBasicBlock U = eval(last); if (info[U.getIndex()].semidom < info[last.getIndex()].semidom) {