[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