From 1b99532f42913aa715aefa12e08085c2f82f0803 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Sat, 30 Oct 2004 01:13:26 +0000 Subject: [PATCH] Checking in changes that: 1) Generate C99 code instead of C++ code. The code should still work with a C++ compiler. 2) PrintWrapper class to enable putting declarations at top of functions so we can make old versions of gcc work. --- .../RepairCompiler/MCC/CRuntime/SimpleHash.c | 28 +- .../RepairCompiler/MCC/CRuntime/SimpleHash.h | 22 +- Repair/RepairCompiler/MCC/CRuntime/size.h | 2 +- Repair/RepairCompiler/MCC/Compiler.java | 71 ++-- Repair/RepairCompiler/MCC/IR/DotExpr.java | 87 +++-- .../RepairCompiler/MCC/IR/ElementOfExpr.java | 10 +- .../RepairCompiler/MCC/IR/ImageSetExpr.java | 46 +-- .../RepairCompiler/MCC/IR/LogicStatement.java | 29 +- .../RepairCompiler/MCC/IR/MetaInclusion.java | 51 ++- .../RepairCompiler/MCC/IR/NaiveGenerator.java | 97 +++-- Repair/RepairCompiler/MCC/IR/OpExpr.java | 20 +- .../RepairCompiler/MCC/IR/PrintWrapper.java | 56 +++ .../RepairCompiler/MCC/IR/RelationExpr.java | 26 +- .../MCC/IR/RelationFunctionExpr.java | 32 +- .../MCC/IR/RelationInclusion.java | 31 +- .../MCC/IR/RelationQuantifier.java | 38 +- .../MCC/IR/RepairGenerator.java | 359 +++++++++--------- Repair/RepairCompiler/MCC/IR/SetExpr.java | 8 +- .../RepairCompiler/MCC/IR/SetInclusion.java | 2 +- .../RepairCompiler/MCC/IR/SetQuantifier.java | 28 +- .../RepairCompiler/MCC/IR/SizeofFunction.java | 24 +- .../MCC/IR/StructureGenerator.java | 44 +-- Repair/RepairCompiler/MCC/IR/SumExpr.java | 10 +- Repair/RepairCompiler/MCC/IR/TupleOfExpr.java | 8 +- Repair/RepairCompiler/MCC/IR/UpdateNode.java | 32 +- Repair/RepairCompiler/MCC/IR/VarExpr.java | 4 +- Repair/RepairCompiler/MCC/IR/WorkList.java | 58 +-- .../MCC/IR/WorklistGenerator.java | 129 +++---- Repair/RepairCompiler/MCC/Makefile | 2 +- Repair/RepairCompiler/MCC/Runtime/size.h | 8 +- 30 files changed, 701 insertions(+), 661 deletions(-) create mode 100755 Repair/RepairCompiler/MCC/IR/PrintWrapper.java diff --git a/Repair/RepairCompiler/MCC/CRuntime/SimpleHash.c b/Repair/RepairCompiler/MCC/CRuntime/SimpleHash.c index b238c22..187d70f 100755 --- a/Repair/RepairCompiler/MCC/CRuntime/SimpleHash.c +++ b/Repair/RepairCompiler/MCC/CRuntime/SimpleHash.c @@ -151,11 +151,11 @@ void WorkListadd(struct WorkList *thisvar, int id,int type, int lvalue, int rval } /* SIMPLE HASH ********************************************************/ -struct SimpleIterator* createiterator(struct SimpleHash * thisvar) { +struct SimpleIterator* SimpleHashcreateiterator(struct SimpleHash * thisvar) { return allocateSimpleIterator(thisvar->listhead,thisvar->listtail,thisvar->tailindex/*,thisvar*/); } -void iterator(struct SimpleHash *thisvar, struct SimpleIterator * it) { +void SimpleHashiterator(struct SimpleHash *thisvar, struct SimpleIterator * it) { it->cur=thisvar->listhead; it->index=0; it->tailindex=thisvar->tailindex; @@ -453,11 +453,11 @@ void freeRepairHash(struct RepairHash *thisvar) { #define SETFLAG (1<<31) -int addset(struct RepairHash *thisvar, int setv, int rule, int value, int data) { - return addrelation(thisvar, setv||SETFLAG, rule, value,0,data); +int RepairHashaddset(struct RepairHash *thisvar, int setv, int rule, int value, int data) { + return RepairHashaddrelation(thisvar, setv||SETFLAG, rule, value,0,data); } -int addrelation(struct RepairHash *thisvar, int relation, int rule, int lvalue, int rvalue, int data) { +int RepairHashaddrelation(struct RepairHash *thisvar, int relation, int rule, int lvalue, int rvalue, int data) { unsigned int hashkey = ((unsigned int)(relation ^ rule ^ lvalue ^ rvalue)) % thisvar->size; struct RepairHashNode **ptr = &thisvar->bucket[hashkey]; @@ -483,7 +483,7 @@ int addrelation(struct RepairHash *thisvar, int relation, int rule, int lvalue, return 1; } -int addrelation2(struct RepairHash *thisvar, int relation, int rule, int lvalue, int rvalue, int data, int data2) { +int RepairHashaddrelation2(struct RepairHash *thisvar, int relation, int rule, int lvalue, int rvalue, int data, int data2) { unsigned int hashkey = ((unsigned int)(relation ^ rule ^ lvalue ^ rvalue)) % thisvar->size; struct RepairHashNode **ptr = &thisvar->bucket[hashkey]; @@ -509,11 +509,11 @@ int addrelation2(struct RepairHash *thisvar, int relation, int rule, int lvalue, return 1; } -bool containsset(struct RepairHash *thisvar, int setv, int rule, int value) { - return containsrelation(thisvar, setv||SETFLAG, rule, value,0); +bool RepairHashcontainsset(struct RepairHash *thisvar, int setv, int rule, int value) { + return RepairHashcontainsrelation(thisvar, setv||SETFLAG, rule, value,0); } -bool containsrelation(struct RepairHash *thisvar, int relation, int rule, int lvalue, int rvalue) { +bool RepairHashcontainsrelation(struct RepairHash *thisvar, int relation, int rule, int lvalue, int rvalue) { unsigned int hashkey = ((unsigned int)(relation ^ rule ^ lvalue ^ rvalue)) % thisvar->size; struct RepairHashNode **ptr = &thisvar->bucket[hashkey]; @@ -532,11 +532,11 @@ bool containsrelation(struct RepairHash *thisvar, int relation, int rule, int lv return false; } -int getset(struct RepairHash *thisvar, int setv, int rule, int value) { - return getrelation(thisvar, setv||SETFLAG, rule, value,0); +int RepairHashgetset(struct RepairHash *thisvar, int setv, int rule, int value) { + return RepairHashgetrelation(thisvar, setv||SETFLAG, rule, value,0); } -int ismodify(struct RepairHash *thisvar, int relation, int rule, int lvalue,int rvalue) { +int RepairHashismodify(struct RepairHash *thisvar, int relation, int rule, int lvalue,int rvalue) { unsigned int hashkey = ((unsigned int)(relation ^ rule ^ lvalue ^ rvalue)) % thisvar->size; struct RepairHashNode **ptr = &thisvar->bucket[hashkey]; @@ -555,7 +555,7 @@ int ismodify(struct RepairHash *thisvar, int relation, int rule, int lvalue,int return 0; } -int getrelation2(struct RepairHash *thisvar, int relation, int rule, int lvalue,int rvalue) { +int RepairHashgetrelation2(struct RepairHash *thisvar, int relation, int rule, int lvalue,int rvalue) { unsigned int hashkey = ((unsigned int)(relation ^ rule ^ lvalue ^ rvalue)) % thisvar->size; struct RepairHashNode **ptr = &thisvar->bucket[hashkey]; @@ -574,7 +574,7 @@ int getrelation2(struct RepairHash *thisvar, int relation, int rule, int lvalue, return 0; } -int getrelation(struct RepairHash *thisvar, int relation, int rule, int lvalue,int rvalue) { +int RepairHashgetrelation(struct RepairHash *thisvar, int relation, int rule, int lvalue,int rvalue) { unsigned int hashkey = ((unsigned int)(relation ^ rule ^ lvalue ^ rvalue)) % thisvar->size; struct RepairHashNode **ptr = &thisvar->bucket[hashkey]; diff --git a/Repair/RepairCompiler/MCC/CRuntime/SimpleHash.h b/Repair/RepairCompiler/MCC/CRuntime/SimpleHash.h index e87ed7b..48439bc 100755 --- a/Repair/RepairCompiler/MCC/CRuntime/SimpleHash.h +++ b/Repair/RepairCompiler/MCC/CRuntime/SimpleHash.h @@ -87,7 +87,7 @@ int SimpleHashget(struct SimpleHash *,int key, int* data); int SimpleHashcountdata(struct SimpleHash *,int data); void SimpleHashaddParent(struct SimpleHash *,struct SimpleHash* parent); int SimpleHashfirstkey(struct SimpleHash *); -struct SimpleIterator* SimpleHashcreateiterator(struct SimpleHash *, struct SimpleHash *); +struct SimpleIterator* SimpleHashcreateiterator(struct SimpleHash *); void SimpleHashiterator(struct SimpleHash *, struct SimpleIterator * it); int SimpleHashcount(struct SimpleHash *, int key); void SimpleHashaddAll(struct SimpleHash *, struct SimpleHash * set); @@ -106,7 +106,7 @@ struct SimpleHash { int tailindex; }; -inline int count(struct SimpleHash * thisvar) { +inline int SimpleHashcountset(struct SimpleHash * thisvar) { return thisvar->numelements; } @@ -191,15 +191,15 @@ struct RepairHashNode { struct RepairHash * noargallocateRepairHash(); struct RepairHash * allocateRepairHash(int size); void freeRepairHash(struct RepairHash *); -int addset(struct RepairHash *, int setv, int rule, int value, int data); -int addrelation(struct RepairHash *, int relation, int rule, int lvalue, int rvalue, int data); -int addrelation2(struct RepairHash *, int relation, int rule, int lvalue, int rvalue, int data, int data2); -bool containsset(struct RepairHash *, int setv, int rule, int value); -bool containsrelation(struct RepairHash *, int relation, int rule, int lvalue, int rvalue); -int getset(struct RepairHash *, int setv, int rule, int value); -int getrelation(struct RepairHash *, int relation, int rule, int lvalue, int rvalue); -int getrelation2(struct RepairHash *, int relation, int rule, int lvalue, int rvalue); -int ismodify(struct RepairHash *, int relation, int rule, int lvalue, int rvalue); +int RepairHashaddset(struct RepairHash *, int setv, int rule, int value, int data); +int RepairHashaddrelation(struct RepairHash *, int relation, int rule, int lvalue, int rvalue, int data); +int RepairHashaddrelation2(struct RepairHash *, int relation, int rule, int lvalue, int rvalue, int data, int data2); +bool RepairHashcontainsset(struct RepairHash *, int setv, int rule, int value); +bool RepairHashcontainsrelation(struct RepairHash *, int relation, int rule, int lvalue, int rvalue); +int RepairHashgetset(struct RepairHash *, int setv, int rule, int value); +int RepairHashgetrelation(struct RepairHash *, int relation, int rule, int lvalue, int rvalue); +int RepairHashgetrelation2(struct RepairHash *, int relation, int rule, int lvalue, int rvalue); +int RepairHashismodify(struct RepairHash *, int relation, int rule, int lvalue, int rvalue); struct RepairHash { int numelements; diff --git a/Repair/RepairCompiler/MCC/CRuntime/size.h b/Repair/RepairCompiler/MCC/CRuntime/size.h index 5b11610..b672d5d 100755 --- a/Repair/RepairCompiler/MCC/CRuntime/size.h +++ b/Repair/RepairCompiler/MCC/CRuntime/size.h @@ -1,4 +1,4 @@ -struct foo_state {int l;}; +#include "specs/x86/cache_aux.h" int getfield(int type, int fieldindex); int isArray(int type, int fieldindex); int isPtr(int type, int fieldindex); diff --git a/Repair/RepairCompiler/MCC/Compiler.java b/Repair/RepairCompiler/MCC/Compiler.java index 04ad0ba..41794e7 100755 --- a/Repair/RepairCompiler/MCC/Compiler.java +++ b/Repair/RepairCompiler/MCC/Compiler.java @@ -9,11 +9,11 @@ import MCC.IR.*; *