1f22ef01cSRoman Divacky //===--- Allocator.cpp - Simple memory allocation abstraction -------------===// 2f22ef01cSRoman Divacky // 3f22ef01cSRoman Divacky // The LLVM Compiler Infrastructure 4f22ef01cSRoman Divacky // 5f22ef01cSRoman Divacky // This file is distributed under the University of Illinois Open Source 6f22ef01cSRoman Divacky // License. See LICENSE.TXT for details. 7f22ef01cSRoman Divacky // 8f22ef01cSRoman Divacky //===----------------------------------------------------------------------===// 9f22ef01cSRoman Divacky // 10f22ef01cSRoman Divacky // This file implements the BumpPtrAllocator interface. 11f22ef01cSRoman Divacky // 12f22ef01cSRoman Divacky //===----------------------------------------------------------------------===// 13f22ef01cSRoman Divacky 14f22ef01cSRoman Divacky #include "llvm/Support/Allocator.h" 15f22ef01cSRoman Divacky #include "llvm/Support/raw_ostream.h" 16f22ef01cSRoman Divacky 17f22ef01cSRoman Divacky namespace llvm { 18f22ef01cSRoman Divacky 1991bc56edSDimitry Andric namespace detail { 20f22ef01cSRoman Divacky printBumpPtrAllocatorStats(unsigned NumSlabs,size_t BytesAllocated,size_t TotalMemory)2191bc56edSDimitry Andricvoid printBumpPtrAllocatorStats(unsigned NumSlabs, size_t BytesAllocated, 2291bc56edSDimitry Andric size_t TotalMemory) { 23f22ef01cSRoman Divacky errs() << "\nNumber of memory regions: " << NumSlabs << '\n' 24f22ef01cSRoman Divacky << "Bytes used: " << BytesAllocated << '\n' 25f22ef01cSRoman Divacky << "Bytes allocated: " << TotalMemory << '\n' 26f22ef01cSRoman Divacky << "Bytes wasted: " << (TotalMemory - BytesAllocated) 27f22ef01cSRoman Divacky << " (includes alignment, etc)\n"; 28f22ef01cSRoman Divacky } 29f22ef01cSRoman Divacky 3091bc56edSDimitry Andric } // End namespace detail. 31f22ef01cSRoman Divacky PrintRecyclerStats(size_t Size,size_t Align,size_t FreeListSize)32f22ef01cSRoman Divackyvoid PrintRecyclerStats(size_t Size, 33f22ef01cSRoman Divacky size_t Align, 34f22ef01cSRoman Divacky size_t FreeListSize) { 35f22ef01cSRoman Divacky errs() << "Recycler element size: " << Size << '\n' 36f22ef01cSRoman Divacky << "Recycler element alignment: " << Align << '\n' 37f22ef01cSRoman Divacky << "Number of elements free for recycling: " << FreeListSize << '\n'; 38f22ef01cSRoman Divacky } 39f22ef01cSRoman Divacky 40*3dac3a9bSDimitry Andric } 41