[llvm-commits] [poolalloc] r44245 - in /poolalloc/branches/SVA/lib: DSA/Local.cpp DSA/Makefile PoolAllocate/Makefile PoolAllocate/TransformFunctionBody.cpp

John Criswell criswell at uiuc.edu
Mon Nov 19 13:44:41 PST 2007


Author: criswell
Date: Mon Nov 19 15:44:41 2007
New Revision: 44245

URL: http://llvm.org/viewvc/llvm-project?rev=44245&view=rev
Log:
Recognize malloc() and free() as allocators and deallocators, even in
kernel mode.
Build object files for linking with the SAFECode tool.
Use the correct type for pools when running in kernel and non-kernel mode.

Modified:
    poolalloc/branches/SVA/lib/DSA/Local.cpp
    poolalloc/branches/SVA/lib/DSA/Makefile
    poolalloc/branches/SVA/lib/PoolAllocate/Makefile
    poolalloc/branches/SVA/lib/PoolAllocate/TransformFunctionBody.cpp

Modified: poolalloc/branches/SVA/lib/DSA/Local.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/branches/SVA/lib/DSA/Local.cpp?rev=44245&r1=44244&r2=44245&view=diff

==============================================================================
--- poolalloc/branches/SVA/lib/DSA/Local.cpp (original)
+++ poolalloc/branches/SVA/lib/DSA/Local.cpp Mon Nov 19 15:44:41 2007
@@ -1802,6 +1802,7 @@
   AllocList.push_back("__alloc_bootmem");
   AllocList.push_back(" __get_free_pages");
   AllocList.push_back("pseudo_alloc");
+  AllocList.push_back("malloc");
 
 #if 0
   FreeList.push_back("kfree");
@@ -1810,6 +1811,7 @@
   FreeList.push_back("free_pages");
   FreeList.push_back("kmem_cache_free");
   FreeList.push_back("pseudo_free");
+  FreeList.push_back("free");
 
   //figure out all system call numbers
   Function* lrs = M.getNamedFunction("llva_register_syscall");

Modified: poolalloc/branches/SVA/lib/DSA/Makefile
URL: http://llvm.org/viewvc/llvm-project/poolalloc/branches/SVA/lib/DSA/Makefile?rev=44245&r1=44244&r2=44245&view=diff

==============================================================================
--- poolalloc/branches/SVA/lib/DSA/Makefile (original)
+++ poolalloc/branches/SVA/lib/DSA/Makefile Mon Nov 19 15:44:41 2007
@@ -8,8 +8,8 @@
 ##===----------------------------------------------------------------------===##
 LEVEL = ../..
 SHARED_LIBRARY=1
-LOADABLE_MODULE = 1
-DONT_BUILD_RELINKED=1
+#LOADABLE_MODULE = 1
+#DONT_BUILD_RELINKED=1
 LIBRARYNAME = LLVMDataStructure
 
 include $(LEVEL)/Makefile.common

Modified: poolalloc/branches/SVA/lib/PoolAllocate/Makefile
URL: http://llvm.org/viewvc/llvm-project/poolalloc/branches/SVA/lib/PoolAllocate/Makefile?rev=44245&r1=44244&r2=44245&view=diff

==============================================================================
--- poolalloc/branches/SVA/lib/PoolAllocate/Makefile (original)
+++ poolalloc/branches/SVA/lib/PoolAllocate/Makefile Mon Nov 19 15:44:41 2007
@@ -7,8 +7,8 @@
 # Give the name of a library.  This will build a dynamic version.
 #
 SHARED_LIBRARY=1
-LOADABLE_MODULE = 1
-DONT_BUILD_RELINKED=1
+#LOADABLE_MODULE = 1
+#DONT_BUILD_RELINKED=1
 LIBRARYNAME=poolalloc
 
 #

Modified: poolalloc/branches/SVA/lib/PoolAllocate/TransformFunctionBody.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/branches/SVA/lib/PoolAllocate/TransformFunctionBody.cpp?rev=44245&r1=44244&r2=44245&view=diff

==============================================================================
--- poolalloc/branches/SVA/lib/PoolAllocate/TransformFunctionBody.cpp (original)
+++ poolalloc/branches/SVA/lib/PoolAllocate/TransformFunctionBody.cpp Mon Nov 19 15:44:41 2007
@@ -649,7 +649,11 @@
 	  //Dinakar we need pooldescriptors for allocas in the callee if it escapes
 	  BasicBlock::iterator InsertPt = TheCall->getParent()->getParent()->front().begin();
 	  Type *VoidPtrTy = PointerType::get(Type::SByteTy);
+#ifdef SAFECODE
+	  ArgVal =  new AllocaInst(ArrayType::get(VoidPtrTy, 50), 0, "PD", InsertPt);
+#else
 	  ArgVal =  new AllocaInst(ArrayType::get(VoidPtrTy, 16), 0, "PD", InsertPt);
+#endif
 	  Value *ElSize = ConstantInt::get(Type::UIntTy,0);
 	  Value *Align  = ConstantInt::get(Type::UIntTy,0);
 	  new CallInst(PAInfo.PoolInit, make_vector(ArgVal, ElSize, Align, 0),"", TheCall);





More information about the llvm-commits mailing list