[llvm-commits] [poolalloc] r133135 - in /poolalloc/trunk: lib/AssistDS/TypeChecks.cpp runtime/DynamicTypeChecks/TypeRuntime.c

Arushi Aggarwal aggarwa4 at illinois.edu
Wed Jun 15 18:53:47 PDT 2011


Author: aggarwa4
Date: Wed Jun 15 20:53:47 2011
New Revision: 133135

URL: http://llvm.org/viewvc/llvm-project?rev=133135&view=rev
Log:
Add support for some simple library functions used by 
thttpd.

Modified:
    poolalloc/trunk/lib/AssistDS/TypeChecks.cpp
    poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.c

Modified: poolalloc/trunk/lib/AssistDS/TypeChecks.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/AssistDS/TypeChecks.cpp?rev=133135&r1=133134&r2=133135&view=diff
==============================================================================
--- poolalloc/trunk/lib/AssistDS/TypeChecks.cpp (original)
+++ poolalloc/trunk/lib/AssistDS/TypeChecks.cpp Wed Jun 15 20:53:47 2011
@@ -1485,7 +1485,28 @@
         CallInst::Create(trackInitInst, Args.begin(), Args.end(), "", I);
         return true;
       }
-    } else if (F->getNameStr() == std::string("getrusage")) {
+    } else if (F->getNameStr() == std::string("gettimeofday")) {
+      CastInst *BCI = BitCastInst::CreatePointerCast(I->getOperand(1), VoidPtrTy, "", I);
+      assert (isa<PointerType>(I->getOperand(1)->getType()));
+      const PointerType * PT = cast<PointerType>(I->getOperand(1)->getType());
+      const Type * ET = PT->getElementType();
+      Value * AllocSize = ConstantInt::get(Int64Ty, TD->getTypeAllocSize(ET));
+      std::vector<Value *>Args;
+      Args.push_back(BCI);
+      Args.push_back(AllocSize);
+      Args.push_back(getTagCounter());
+      CallInst::Create(trackInitInst, Args.begin(), Args.end(), "", I);
+    } else if (F->getNameStr() == std::string("getcwd")) {
+      CastInst *BCI = BitCastInst::CreatePointerCast(I, VoidPtrTy);
+      BCI->insertAfter(I);
+      std::vector<Value *>Args;
+      Args.push_back(BCI);
+      Args.push_back(getTagCounter());
+      Constant *F = M.getOrInsertFunction("trackgetcwd", VoidTy, VoidPtrTy, Int32Ty, NULL);
+      CallInst *CI = CallInst::Create(F, Args.begin(), Args.end());
+      CI->insertAfter(BCI);
+    } else if (F->getNameStr() == std::string("getrusage") || 
+               F->getNameStr() ==  std::string("getrlimit")) {
       CastInst *BCI = BitCastInst::CreatePointerCast(I->getOperand(2), VoidPtrTy, "", I);
       assert (isa<PointerType>(I->getOperand(2)->getType()));
       const PointerType * PT = cast<PointerType>(I->getOperand(2)->getType());

Modified: poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.c
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.c?rev=133135&r1=133134&r2=133135&view=diff
==============================================================================
--- poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.c (original)
+++ poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.c Wed Jun 15 20:53:47 2011
@@ -18,8 +18,8 @@
  * machines. Need a more robust way of picking base address.
  * For now, run a version of the tool without the base fixed, and 
  * choose address.
+ #define BASE ((void *)(0x2aaaab2a5000))
  */
-//#define BASE ((void *)(0x2aaaab2a5000))
 #define BASE ((void *)(0x2aaaab7b4000))
 /*
  * Do some macro magic to get mmap macros defined properly on all platforms.
@@ -256,3 +256,6 @@
   copyTypeInfo((void*)dst_start, src, strlen(src)+1, tag);
 }
 
+void trackgetcwd(void *ptr, uint32_t tag) {
+  trackInitInst(ptr, strlen(ptr) + 1, tag);
+}





More information about the llvm-commits mailing list