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::mapconst 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::mapconst 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::mapFunction*, PA::FuncInfo FunctionInfo;
std::mapFunction*, 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::mapconst 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