Changes in directory llvm-poolalloc/lib/PoolAllocate:
PoolAllocate.h updated: 1.47 -> 1.48 --- Log message: Extra book keeping for SAFECode --- Diffs of the changes: (+35 -4) PoolAllocate.h | 39 +++++++++++++++++++++++++++++++++++---- 1 files changed, 35 insertions(+), 4 deletions(-) Index: llvm-poolalloc/lib/PoolAllocate/PoolAllocate.h diff -u llvm-poolalloc/lib/PoolAllocate/PoolAllocate.h:1.47 llvm-poolalloc/lib/PoolAllocate/PoolAllocate.h:1.48 --- llvm-poolalloc/lib/PoolAllocate/PoolAllocate.h:1.47 Wed May 18 14:56:28 2005 +++ llvm-poolalloc/lib/PoolAllocate/PoolAllocate.h Thu Dec 22 10:32:21 2005 @@ -16,17 +16,28 @@ #ifndef POOLALLOCATE_H #define POOLALLOCATE_H - +//#define SAFECODE 1 +//#define BOUNDS_CHECK 1 +//comment the above two for normal poolallocation #include "llvm/Pass.h" #include "llvm/DerivedTypes.h" #include "llvm/Support/CallSite.h" #include "llvm/ADT/EquivalenceClasses.h" #include "llvm/ADT/VectorExtras.h" #include "llvm/ADT/hash_set" + +#ifdef SAFECODE +//FIXME : make this use some configuration options +#include "/home/vadve/dhurjati/llvm/projects/safecode.typesafe/include/ConvertUnsafeAllocas.h" +#endif + + #include <set> namespace llvm { - +#ifdef SAFECODE + using namespace CUA; +#endif class DSNode; class DSGraph; class Type; @@ -73,6 +84,12 @@ /// function. std::map<const DSNode*, Value*> PoolDescriptors; +#ifdef SAFECODE + //This is a map from Old to New Value Map reverse of the one above + //Useful in SAFECode for check insertion + std::map<const Value*, Value*> ValueMap; +#endif + /// NewToOldValueMap - When and if a function needs to be cloned, this map /// contains a mapping from all of the values in the new function back to /// the values they correspond to in the old function. @@ -105,13 +122,23 @@ Module *CurModule; EquivClassGraphs *ECGraphs; - + std::map<Function*, PA::FuncInfo> FunctionInfo; std::map<Function*, Function*> CloneToOrigMap; public: +#ifdef SAFECODE + ConvertUnsafeAllocas *CUAPass; +#endif Function *PoolInit, *PoolDestroy, *PoolAlloc, *PoolRealloc, *PoolMemAlign; Function *PoolFree; +#ifdef SAFECODE + Function *PoolRegister; +#endif +#ifdef BOUNDS_CHECK + Function *PoolRegister; +#endif + static const Type *PoolDescPtrTy; PA::Heuristic *CurHeuristic; @@ -122,9 +149,13 @@ std::map<const DSNode*, Value*> GlobalNodes; public: +#ifdef SAFECODE + PoolAllocate(bool passAllArguments = true) + : PassAllArguments(passAllArguments) {} +#else PoolAllocate(bool passAllArguments = false) : PassAllArguments(passAllArguments) {} - +#endif bool runOnModule(Module &M); virtual void getAnalysisUsage(AnalysisUsage &AU) const; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits