methodReadWriteSetAnalysis();
computeSharedCoverSet();
- // System.out.println("$$$=" +
- // mapMethodToSharedLocCoverSet.get(methodContainingSSJavaLoop));
- // System.exit(0);
-
sharedLocAnalysis();
eventLoopAnalysis();
// computing gen/kill set
computeKILLSetForWrite(curr, killSet, lhsLocTuple, lhsHeapPath);
- if (!dstLoc.equals(srcLoc)) {
+
+ if (!ssjava.isSameHeightWrite(fn)) {
computeGENSetForHigherWrite(curr, killSet, lhsLocTuple, lhsHeapPath);
updateDeleteSetForHigherWrite(currDeleteSet, lhsLocTuple, lhsHeapPath);
} else {
Hashtable<NTuple<Descriptor>, Set<WriteAge>> KILLSet) {
Set<NTuple<Descriptor>> boundMustWriteSet = mapFlatNodeToBoundMustWriteSet.get(fc);
- System.out.println("#boundMustWriteSet=" + boundMustWriteSet);
for (Iterator iterator = boundMustWriteSet.iterator(); iterator.hasNext();) {
NTuple<Descriptor> heapPath = (NTuple<Descriptor>) iterator.next();
public class BitstreamWrapper {
private static Bitstream stream;
+ private static int idx=0;
@TRUST
public static void init(String filename) {
@TRUST
public static Header readFrame() {
- return stream.readFrame();
+ Header h=stream.readFrame();
+ h.idx=idx++;
+ return h;
}
}
@LOC("T")
private BitReserve br;
+ @LOC("T")
+ private int idx;
+
Header() {
}
-
+
@LATTICE("OUT<BUF,BUF<THIS,THISLOC=THIS,RETURNLOC=OUT")
public String toString() {
@LOC("BUF") StringBuffer buffer = new StringBuffer(200);
*
* @return bitrate in bps
*/
-
+
@RETURNLOC("THIS,Header.FS")
public String bitrate_string() {
@LOC("THIS,Header.T") String kbs = " kb/s";
public BitReserve getBitReserve() {
return br;
}
+
+ @RETURNLOC("THIS,Header.T")
+ public int getIdx() {
+ return idx;
+ }
+ public int setIdx(int idx) {
+ return this.idx = idx;
+ }
+
}
@LOC("THIS,LayerIIIDecoder.HD1") int version = header.version();
// additional codes for the definitely written property
- filter_pos = (filter_pos + 4) & 0xf;
+ filter_pos = (header.getIdx() * 4) & 0xf;
filter1.vidx = 1;
filter2.vidx = 1;
filter1.actual_write_pos = filter_pos;
filter2.actual_write_pos = filter_pos;
- //
-
- // System.out.println("filter1=" + filter1.vidx + " " +
- // filter1.actual_write_pos);
- // System.out.println("filter1=" + filter2.vidx + " " +
- // filter2.actual_write_pos);
// here 'gr' and 'max_gr' should be higher than 'ch','channels', and more
for (gr = 0; gr < max_gr; gr++) { // two granules per channel
System.out.println("Gobble sentinel: +++");\r
\r
// @LOC("IN") int count = 0;\r
- SSJAVA: while (Counter.idx() < 2147483646) {\r
- Counter.inc();\r
+ SSJAVA: while (true) {\r
if (h == null) {\r
break;\r
}\r