00001 00002 #ifdef CBZ_HEAPLAYERS 00003 00004 #include "heaplayers.h" 00005 #include "stlallocator.h" 00006 00007 // --- Main heap 00008 00009 class PointersHeap : public UniqueHeap< ZoneHeap < mallocHeap, 1024*1024 > > {}; 00010 00011 class FreelistFunHeap : public FreelistHeap<ZoneHeap<mallocHeap, 64 * 1024> > {}; 00012 00013 // --- Type-specific allocators for STL 00014 00015 class Location; 00016 typedef STLAllocator< Location *, FreelistFunHeap > location_alloc; 00017 00018 class memoryBlock; 00019 typedef STLAllocator< memoryBlock *, FreelistFunHeap > memoryblock_alloc; 00020 00021 class memoryDef; 00022 typedef STLAllocator< memoryDef *, FreelistFunHeap > memorydef_alloc; 00023 00024 class memoryUse; 00025 typedef STLAllocator< memoryUse *, FreelistFunHeap > memoryuse_alloc; 00026 00027 typedef STLAllocator< basicblockNode *, FreelistFunHeap > basicblock_alloc; 00028 00029 00030 #else 00031 00032 template <class T> 00033 class PerClassHeap {}; 00034 00035 class PointersHeap {}; 00036 class FreelistFunHeap {}; 00037 00038 class Location; 00039 typedef std::allocator< Location * > location_alloc; 00040 00041 class memoryBlock; 00042 typedef std::allocator< memoryBlock * > memoryblock_alloc; 00043 00044 class memoryDef; 00045 typedef std::allocator< memoryDef * > memorydef_alloc; 00046 00047 class memoryUse; 00048 typedef std::allocator< memoryUse * > memoryuse_alloc; 00049 00050 typedef std::allocator< basicblockNode * > basicblock_alloc; 00051 00052 #endif //