The internal allocator adds 8-byte header for debugging purposes.
The problem with it is that it's not possible to allocate nicely-sized
objects without a significant overhead. For example, if we allocate
512-byte objects, that will be rounded up to 768 or something.
This logic migrated from tsan where it was added during initial development,
I don't remember that it ever caught anything (we don't do bugs!).
Remove it so that it's possible to allocate nicely-sized objects
without overheads.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
compiler-rt/lib/sanitizer_common/sanitizer_allocator.cpp | ||
---|---|---|
187 | I assume this is inlined? Otherwise the additional level of indirection now seems pointless. |
compiler-rt/lib/sanitizer_common/sanitizer_allocator.cpp | ||
---|---|---|
187 | Yes, it is: $ nm -S test | grep InternalFree |
I assume this is inlined? Otherwise the additional level of indirection now seems pointless.