Optimizing LLVM's Bump Allocator LLVM merged three optimizations to its BumpPtrAllocator, reducing overhead in the fast path by skipping unnecessary realignment, removing a null check via a sentinel end pointer, and eliminating per-allocation byte accounting. The changes improve performance for Clang, lld, and other LLVM tools that rely on arena allocation. BumpPtrAllocator is LLVM's bump allocator arena allocator : each allocation bumps a pointer within a slab, and everything is freed at once when the allocator dies. It backs Clang's ASTContext , lld's make