|
Message
From: cvs at opencores.org<cvs@o...>
Date: Mon Jun 26 11:29:46 CEST 2006
Subject: [cvs-checkins] MODIFIED: jop ...
Date: 00/06/06 26:11:29 Modified: jop/java/tools/src/com/jopdesign/build GCRTMethodInfo.java Log: added setGcMethods Revision Changes Path 1.7 jop/java/tools/src/com/jopdesign/build/GCRTMethodInfo.java http://www.opencores.org/cvsweb.shtml/jop/java/tools/src/com/jopdesign/build/GCRTMethodInfo.java.diff?r1=1.6&r2=1.7 (In the diff below, changes in quantity of whitespace are not shown.) Index: GCRTMethodInfo.java =================================================================== RCS file: /cvsroot/rasped/jop/java/tools/src/com/jopdesign/build/GCRTMethodInfo.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- GCRTMethodInfo.java 30 May 2006 12:56:17 -0000 1.6 +++ GCRTMethodInfo.java 26 Jun 2006 09:29:46 -0000 1.7 @@ -56,12 +56,27 @@ static HashMap miMap = new HashMap(); + // true if the method of letting the GC thread + // run with lowest priority is used + static boolean cfgReduce = true; + + // those methods with gc info + // (provided by a call to CallGraph?) + static HashSet gcMethods = null; + + /** + * Contains the set of methods which are included in the stack map generation. + * @param gcMethods + */ + public static void setGcMethods(HashSet gcMethods) { + GCRTMethodInfo.gcMethods = gcMethods; + } + /** * Called from JOPizer->SetGCRTMethodInfo to run the stack simulation for * the method. * - * @param mi - * the method + * @param mi the method */ public static void stackWalker(MethodInfo mi) { ((GCRTMethodInfo) miMap.get(mi)).stackWalker(); @@ -162,7 +177,7 @@ } if (!method.isStatic()) { - margs++; + margs++; // this } if (!method.isAbstract()) { @@ -816,6 +831,17 @@ int ogcimark = 0; int mgcimark = 0; + if(cfgReduce && gcMethods.contains(method)){ + if(out != null){ + out.println("\n\t// no stackwalker info for " + + mi.cli.clazz.getClassName() + "." + mi.methodId +" because cfgReduce == true and gcMethods.contains(method)\n"); + } + + return 0; + } + + + // if(mi.code != null){ // not abstract if (!method.isAbstract()) { if (instCnt != mgci.length || instCnt != ogci.length) { @@ -1133,6 +1159,10 @@ * @return true if pc<instCnt */ public void removePC(int pc){ + + if(cfgReduce && gcMethods.contains(method)) + return; + int oldogci[] = ogci; int oldmgci[] = mgci; ogci = new int[instCnt-1]; @@ -1254,7 +1284,15 @@ * SetMethodInfo's visitJavaClass method. */ public int gcLength() { - return dumpMethodGcis(null); + int len = -1; + if(cfgReduce && gcMethods.contains(method)){ + len = 0; + } + else { + len = dumpMethodGcis(null); + } +
+ return len;
}
/**
@@ -1275,6 +1313,7 @@
}
return sb.toString();
}
+
}
/**
|
 |