Changes in directory llvm-poolalloc/runtime/FL2Allocator:
PoolAllocator.cpp updated: 1.51 -> 1.52 PoolAllocator.h updated: 1.25 -> 1.26 --- Log message: realloc_pc --- Diffs of the changes: (+16 -7) PoolAllocator.cpp | 20 ++++++++++++++------ PoolAllocator.h | 3 ++- 2 files changed, 16 insertions(+), 7 deletions(-) Index: llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp diff -u llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp:1.51 llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp:1.52 --- llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp:1.51 Thu Feb 16 09:50:09 2006 +++ llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp Thu Apr 27 10:50:02 2006 @@ -538,9 +538,11 @@ } template<typename PoolTraits> -static void *poolalloc_internal(PoolTy<PoolTraits> *Pool, unsigned NumBytes) { +static void *poolalloc_internal(PoolTy<PoolTraits> *Pool, unsigned NumBytesA) { DO_IF_TRACE(fprintf(stderr, "[%d] poolalloc%s(%d) -> ", - getPoolNumber(Pool), PoolTraits::getSuffix(), NumBytes)); + getPoolNumber(Pool), PoolTraits::getSuffix(), NumBytesA)); + + int NumBytes = NumBytesA; // If a null pool descriptor is passed in, this is not a pool allocated data // structure. Hand off to the system malloc. @@ -783,9 +785,9 @@ DO_IF_TRACE(fprintf(stderr, "0x%X (system realloc)\n", Result)); return Result; } - if (Node == 0) return poolalloc(Pool, NumBytes); + if (Node == 0) return poolalloc_internal(Pool, NumBytes); if (NumBytes == 0) { - poolfree(Pool, Node); + poolfree_internal(Pool, Node); DO_IF_TRACE(fprintf(stderr, "freed\n")); return 0; } @@ -797,12 +799,12 @@ if (Size != ~1U) { // FIXME: This is obviously much worse than it could be. In particular, we // never try to expand something in a pool. This might hurt some programs! - void *New = poolalloc(Pool, NumBytes); + void *New = poolalloc_internal(Pool, NumBytes); assert(New != 0 && "Our poolalloc doesn't ever return null for failure!"); // Copy the min of the new and old sizes over. memcpy(New, Node, Size < NumBytes ? Size : NumBytes); - poolfree(Pool, Node); + poolfree_internal(Pool, Node); DO_IF_TRACE(fprintf(stderr, "0x%X (moved)\n", New)); return New; } @@ -972,6 +974,12 @@ poolfree_internal(Pool, (char*)Pool->Slabs+Node); } +unsigned long long poolrealloc_pc(PoolTy<CompressedPoolTraits> *Pool, + unsigned long long Node, unsigned NumBytes) { + void *Result = poolrealloc_internal(Pool, (char*)Pool->Slabs+Node, NumBytes); + return (char*)Result-(char*)Pool->Slabs; +} + //===----------------------------------------------------------------------===// // Access Tracing Runtime Library Support Index: llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.h diff -u llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.h:1.25 llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.h:1.26 --- llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.h:1.25 Wed May 18 14:56:30 2005 +++ llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.h Thu Apr 27 10:50:02 2006 @@ -212,7 +212,8 @@ unsigned NumBytes); void poolfree_pc(PoolTy<CompressedPoolTraits> *Pool, unsigned long long Node); //void *poolmemalign_pc(PoolTy *Pool, unsigned Alignment, unsigned NumBytes); - + unsigned long long poolrealloc_pc(PoolTy<CompressedPoolTraits> *Pool, + unsigned long long Node, unsigned NumBytes); // Access tracing runtime library support. void poolaccesstraceinit(void); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits