llvm-project/compiler-rt/lib/scudo
Kostya Kortchinsky e5c9e9f0bd [scudo] Quarantine optimization
Summary:
It turns out that the previous code construct was not optimizing the allocation
and deallocation of batches. The class id was read as a class member (even
though a precomputed one) and nothing else was optimized. By changing the
construct this way, the compiler actually optimizes most of the allocation and
deallocation away to only work with a single class id, which not only saves some
CPU but also some code footprint.

Reviewers: alekseyshl, dvyukov

Reviewed By: dvyukov

Subscribers: dvyukov, delcypher, llvm-commits, #sanitizers

Differential Revision: https://reviews.llvm.org/D46961

llvm-svn: 332502
2018-05-16 18:12:31 +00:00
..
CMakeLists.txt [sanitizer] Split Symbolizer/StackTraces from core RTSanitizerCommon 2018-04-16 16:32:19 +00:00
scudo_allocator.cpp [scudo] Quarantine optimization 2018-05-16 18:12:31 +00:00
scudo_allocator.h [scudo] Introduce Chunk::getHeaderSize 2018-02-27 16:14:49 +00:00
scudo_allocator_combined.h [scudo] Adding an interface function to print allocator stats 2018-04-25 18:52:29 +00:00
scudo_allocator_secondary.h [sanitizer] Allow for the allocator "names" to be set by the tools 2018-04-13 19:21:27 +00:00
scudo_crc32.cpp [scudo] CRC32 optimizations 2017-05-09 15:12:38 +00:00
scudo_crc32.h [sanitizer] Add Scudo to the sanitizer lint checks. 2017-11-08 16:42:29 +00:00
scudo_flags.cpp [scudo] Allow options to be defined at compile time 2018-02-08 16:29:48 +00:00
scudo_flags.h [scudo] 32-bit and hardware agnostic support 2016-11-30 17:32:20 +00:00
scudo_flags.inc [scudo] Quarantine overhaul 2017-07-24 15:29:38 +00:00
scudo_interface_internal.h [scudo] Adding an interface function to print allocator stats 2018-04-25 18:52:29 +00:00
scudo_malloc.cpp [scudo] Overhaul malloc related interceptors 2018-01-25 20:42:44 +00:00
scudo_new_delete.cpp [scudo] Application & platform compatibility changes 2017-08-16 16:40:48 +00:00
scudo_platform.h [scudo] Allow for weak hooks, gated by a define 2018-01-23 23:07:42 +00:00
scudo_termination.cpp [scudo] Make logging more consistent 2018-03-07 16:22:16 +00:00
scudo_tsd.h [sanitizer] Introduce a vDSO aware timing function 2017-12-13 16:23:54 +00:00
scudo_tsd_exclusive.cpp [scudo] Allow for non-Android Shared TSD platforms, part 1 2017-10-12 15:01:09 +00:00
scudo_tsd_exclusive.inc [scudo] Scudo thread specific data refactor, part 3 2017-09-26 17:20:02 +00:00
scudo_tsd_shared.cpp [scudo] Make getNumberOfCPUs Fuchsia compliant v2 2017-11-21 21:14:00 +00:00
scudo_tsd_shared.inc [scudo] Allow for non-Android Shared TSD platforms, part 2 2017-10-13 20:55:31 +00:00
scudo_utils.cpp [scudo] Read ARM feature bits using Fuchsia APIs. 2018-04-23 14:53:13 +00:00
scudo_utils.h [scudo] Minor code generation improvement 2017-12-08 16:36:37 +00:00