* 2a) Use Effects to verify we can access something (reads)
* 2b) Use conflicts to mark conflicts (read/write/strongupdate)
* 2c) At second level of hash, store Heaproots that can cause conflicts at the field
- * 3) Walk hash structure to identify and enumerate weakly connected groups and generate waiting queue slots.
+ * 3) Walk hash structure to identify and enumerate weakly connected groups
* 4) Build internal representation of the rgs (pruned)
* 5) Print c methods by walking internal representation
*/
//Prints out the master traverser Invocation that'll call all other traversers
//based on traverserID
- printMasterTraverserInvocation();
- printResumeTraverserInvocation();
-
+ printMasterTraverserInvocation();
createMasterHashTableArray();
// Adds Extra supporting methods
}
+ //Currently UNUSED method but may be useful in the future.
//This will print the traverser invocation that takes in a traverserID and starting ptr
private void printResumeTraverserInvocation() {
headerFile.println("\nint traverse(void * startingPtr, SESEcommon * record, int traverserID);");
/*
* addChecker creates a case statement for every object that is an inset variable, has more
- * than 1 parent && has conflicts, or where resumes are possible (from waiting queue).
+ * than 1 parent && has conflicts, or where resumes are possible
* See .qualifiesForCaseStatement
*/
private void addChecker(Taint taint,
#include "mem.h"
#include "classdefs.h"
-
-//NOTE: this is only temporary (for testing) and will be removed in favor of thread local variables
-//It's basically an array of hashStructures so we can simulate what would happen in a many-threaded version
__thread HashStructure ** allHashStructures;
#define ISWRITEBIN(x) (x&BINMASK)
#define ISREADBIN(x) (!(x&BINMASK))
}
}
-//NOTE: only temporary
HashStructure ** rcr_createMasterHashTableArray(int maxSize){
return (HashStructure **) malloc(sizeof(HashStructure *) * maxSize);
}
-HashStructure* rcr_createHashtable(int sizeofWaitingQueue){
+HashStructure* rcr_createHashtable(){
int i=0;
HashStructure* newTable=(HashStructure*)RUNMALLOC(sizeof(HashStructure));
for(i=0;i<RNUMBINS;i++){
extern __thread HashStructure ** allHashStructures;
-HashStructure ** rcr_createMasterHashTableArray(int maxSize); //temporary
-HashStructure* rcr_createHashtable(int sizeofWaitingQueue);
+HashStructure ** rcr_createMasterHashTableArray(int maxSize);
+HashStructure* rcr_createHashtable();
WriteBinItem_rcr* rcr_createWriteBinItem( HashStructure* htable );
ReadBinItem_rcr* rcr_createReadBinItem( HashStructure* htable );
inline int rcr_generateKey(void * ptr);