40 lines · cpp
1//===--- Allocator.cpp - Simple memory allocation abstraction -------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file implements the BumpPtrAllocator interface.10//11//===----------------------------------------------------------------------===//12 13#include "llvm/Support/Allocator.h"14#include "llvm/Support/raw_ostream.h"15 16namespace llvm {17 18namespace detail {19 20void printBumpPtrAllocatorStats(unsigned NumSlabs, size_t BytesAllocated,21 size_t TotalMemory) {22 errs() << "\nNumber of memory regions: " << NumSlabs << '\n'23 << "Bytes used: " << BytesAllocated << '\n'24 << "Bytes allocated: " << TotalMemory << '\n'25 << "Bytes wasted: " << (TotalMemory - BytesAllocated)26 << " (includes alignment, etc)\n";27}28 29} // namespace detail30 31void PrintRecyclerStats(size_t Size,32 size_t Align,33 size_t FreeListSize) {34 errs() << "Recycler element size: " << Size << '\n'35 << "Recycler element alignment: " << Align << '\n'36 << "Number of elements free for recycling: " << FreeListSize << '\n';37}38 39} // namespace llvm40