[Nice-commit] Nice/src/mlsub/typing/lowlevel K0.java,1.31,1.32
Brought to you by:
bonniot
From: Daniel B. <bo...@us...> - 2005-07-05 18:33:02
|
Update of /cvsroot/nice/Nice/src/mlsub/typing/lowlevel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8749/src/mlsub/typing/lowlevel Modified Files: K0.java Log Message: Only perform abstract interface computations when at least one soft node implements at least one abstract interface. Speeds up typechecking by another ~ 10%. Index: K0.java =================================================================== RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/K0.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** K0.java 5 Jul 2005 16:04:46 -0000 1.31 --- K0.java 5 Jul 2005 18:32:53 -0000 1.32 *************** *** 594,597 **** --- 594,598 ---- **/ public void indexImplements(int x, int iid) throws Unsatisfiable { + usingInterfaces = true; S.assume(S.a&& hasBeenInitialized); if (LowlevelUnsatisfiable.refinedReports) { *************** *** 1158,1168 **** } private void prepareConstraint() throws Unsatisfiable { collapseMinimal(); ! BitMatrix leq = new BitMatrix(C); ! leq.closure(); ! computeArrows(leq); ! saturateAbs(leq); ! //condense(leq); } --- 1159,1174 ---- } + private boolean usingInterfaces = false; + private void prepareConstraint() throws Unsatisfiable { collapseMinimal(); ! if (usingInterfaces) { ! BitMatrix leq = new BitMatrix(C); ! leq.closure(); ! computeArrows(leq); ! saturateAbs(leq); ! //condense(leq); ! usingInterfaces = false; ! } } |