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 Andric void 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 Divacky void 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