LLVM
8.0.1
|
This file defines the MallocAllocator and BumpPtrAllocator interfaces. More...
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/MemAlloc.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <iterator>
#include <type_traits>
#include <utility>
Go to the source code of this file.
Classes | |
class | llvm::AllocatorBase< DerivedT > |
CRTP base class providing obvious overloads for the core Allocate() methods of LLVM-style allocators. More... | |
class | llvm::MallocAllocator |
class | llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold > |
Allocate memory in an ever growing pool, as if by bump-pointer. More... | |
class | llvm::SpecificBumpPtrAllocator< T > |
A BumpPtrAllocator that allows only elements of a specific type to be allocated. More... | |
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
llvm::detail | |
Implementation details of the pass manager interfaces. | |
Typedefs | |
typedef BumpPtrAllocatorImpl | llvm::BumpPtrAllocator |
The standard BumpPtrAllocator which just uses the default template parameters. More... | |
Functions | |
void | llvm::detail::printBumpPtrAllocatorStats (unsigned NumSlabs, size_t BytesAllocated, size_t TotalMemory) |
template<typename AllocatorT , size_t SlabSize, size_t SizeThreshold> | |
void * | operator new (size_t Size, llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold > &Allocator) |
template<typename AllocatorT , size_t SlabSize, size_t SizeThreshold> | |
void | operator delete (void *, llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold > &) |
This file defines the MallocAllocator and BumpPtrAllocator interfaces.
Both of these conform to an LLVM "Allocator" concept which consists of an Allocate method accepting a size and alignment, and a Deallocate accepting a pointer and size. Further, the LLVM "Allocator" concept has overloads of Allocate and Deallocate for setting size and alignment based on the final type. These overloads are typically provided by a base class template AllocatorBase
.
Definition in file Allocator.h.
void operator delete | ( | void * | , |
llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold > & | |||
) |
Definition at line 514 of file Allocator.h.
void* operator new | ( | size_t | Size, |
llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold > & | Allocator | ||
) |
Definition at line 497 of file Allocator.h.
References Allocator, D, llvm::ARM_MB::LD, llvm::NextPowerOf2(), offsetof, P, and Size.