Need to allow for one spare encoding for the non-executed case with no suitable stores.
authorbdemsky <bdemsky@uci.edu>
Wed, 10 May 2017 00:41:48 +0000 (17:41 -0700)
committerbdemsky <bdemsky@uci.edu>
Wed, 10 May 2017 00:41:48 +0000 (17:41 -0700)
loadrf.cc
threads.cc

index 2d5984a015c7ba17968339ce5d8ca14794c7d993..52a08fb0b162de198c037c3853eecd38e2fb2278 100644 (file)
--- a/loadrf.cc
+++ b/loadrf.cc
@@ -18,7 +18,7 @@
 LoadRF::LoadRF(EPRecord *_load, ConstGen *cg) : load(_load) {
        RecordSet *mrfSet=cg->getMayReadFromSet(load);
        uint numstores=mrfSet->getSize();
-       numvars=NUMBITS(numstores-1);
+       numvars=NUMBITS(numstores); 
        vars=(Constraint **)model_malloc(numvars*sizeof(Constraint *));
        cg->getArrayNewVars(numvars, vars);
 }
index 52b7ca9db9f8c3d7eae6bcea16a86266d27b9ac8..a3497e09f2b3693ac757f21cdb68851ded13fe84 100644 (file)
 /** Allocate a stack for a new thread. */
 static void * stack_allocate(size_t size)
 {
+       // TODO: This could be a bug if we have programs that start threads
+       // in different orders.  The solution is to use the same strategy
+       // the ALLOC action uses.
+
        return snapshot_malloc(size);
 }