summaryrefslogtreecommitdiff
path: root/src/jemalloc_cpp.cpp
AgeCommit message (Collapse)Author
2019-04-08remove compare and branch in fast path for c++ operator delete[]mgrice
Summary: sdallocx is checking a flag that will never be set (at least in the provided C++ destructor implementation). This branch will probably only rarely be mispredicted however it removes two instructions in sdallocx and one at the callsite (to zero out flags).
2017-07-24Split out cold code path in newImplQinfan Wu
I noticed that the whole newImpl is inlined. Since OOM handling code is rarely executed, we should only inline the hot path.
2017-04-24Get rid of most of the various inline macros.David Goldblatt
2017-04-18Move CPP_PROLOGUE and CPP_EPILOGUE to the .cppDavid Goldblatt
This lets us avoid having to specify them in every C file.
2017-04-11Header refactoring: Split up jemalloc_internal.hDavid Goldblatt
This is a biggy. jemalloc_internal.h has been doing multiple jobs for a while now: - The source of system-wide definitions. - The catch-all include file. - The module header file for jemalloc.c This commit splits up this functionality. The system-wide definitions responsibility has moved to jemalloc_preamble.h. The catch-all include file is now jemalloc_internal_includes.h. The module headers for jemalloc.c are now in jemalloc_internal_[externs|inlines|types].h, just as they are for the other modules.
2017-01-20Replace tabs following #define with spaces.Jason Evans
This resolves #564.
2017-01-20Remove extraneous parens around return arguments.Jason Evans
This resolves #540.
2017-01-20Update brace style.Jason Evans
Add braces around single-line blocks, and remove line breaks before function-opening braces. This resolves #537.
2017-01-17Add nullptr support to sized delete operators.Jason Evans
2017-01-17Fix style nits.Jason Evans
2017-01-13Remove leading blank lines from function bodies.Jason Evans
This resolves #535.
2017-01-13Fix indentation.Jason Evans
2016-12-12jemalloc cpp new/delete bindingsDave Watson
Adds cpp bindings for jemalloc, along with necessary autoconf settings. This is mostly to add sized deallocation support, which can't be added from C directly. Sized deallocation is ~10% microbench improvement. * Import ax_cxx_compile_stdcxx.m4 from the autoconf repo, seems like the easiest way to get c++14 detection. * Adds various other changes, like CXXFLAGS, to configure.ac. * Adds new rules to Makefile.in for src/jemalloc-cpp.cpp, and a basic unittest. * Both new and delete are overridden, to ensure jemalloc is used for both. * TODO future enhancement of avoiding extra PLT thunks for new and delete - sdallocx and malloc are publicly exported jemalloc symbols, using an alias would link them directly. Unfortunately, was having trouble getting it to play nice with jemalloc's namespace support. Testing: Tested gcc 4.8, gcc 5, gcc 5.2, clang 4.0. Only gcc >= 5 has sized deallocation support, verified that the rest build correctly. Tested mac osx and Centos. Tested --with-jemalloc-prefix and --without-export. This resolves #202.