llvm-project/compiler-rt
Kostya Kortchinsky 52f0130216 [scudo][standalone] Introduce the Primary(s) and LocalCache
Summary:
This CL introduces the 32 & 64-bit primary allocators, and associated
Local Cache. While the general idea is mostly similar to what exists
in sanitizer_common, it departs from the original code somewhat
significantly:
- the 64-bit primary no longer uses a free array at the end of a region
  but uses batches of free blocks in region 0, allowing for a
  convergence with the 32-bit primary behavior;
- as a result, there is only one (templated) local cache type for both
  primary allocators, and memory reclaiming can be implemented similarly
  for the 32-bit & 64-bit platforms;
- 64-bit primary regions are handled a bit differently: we do not
  reserve 4TB of memory that we split, but reserve `NumClasses *
  2^RegionSizeLog`, each region being offseted by a random number of
  pages from its computed base. A side effect of this is that the 64-bit
  primary works on 32-bit platform (I don't think we want to encourage
  it but it's an interesting side effect);

Reviewers: vitalybuka, eugenis, morehouse, hctim

Reviewed By: morehouse

Subscribers: srhines, mgorny, delcypher, jfb, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

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

llvm-svn: 361159
2019-05-20 14:40:04 +00:00
..
cmake Use CMAKE_C_COMPILER_ARG1 in compiler invocation 2019-05-19 03:29:15 +00:00
docs
include [MSan] Introduce __msan_unpoison_param(). 2019-05-09 21:50:57 +00:00
lib [scudo][standalone] Introduce the Primary(s) and LocalCache 2019-05-20 14:40:04 +00:00
test [libFuzzer] Dump input on failure for sigusr tests. 2019-05-17 19:33:31 +00:00
unittests [Darwin][NFC] Refactor throttling of 64bit sanitizer tests on Darwin 2019-02-27 19:06:20 +00:00
utils Update the ioctl(2) list in sanitizers with NetBSD 8.99.34 2019-02-05 22:20:25 +00:00
www Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
.arcconfig [compiler-rt] Set up .arcconfig to point to new Diffusion CRT repository 2017-12-06 20:55:32 +00:00
.gitignore Add .pyc files to .gitignore to compiler-rt 2017-07-24 21:51:12 +00:00
CMakeLists.txt [NFC][TSan][libdispatch] Tiny CMake file cleanup 2019-05-10 18:37:30 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
README.txt

README.txt

Compiler-RT
================================

This directory and its subdirectories contain source code for the compiler
support routines.

Compiler-RT is open source software. You may freely distribute it under the
terms of the license agreement found in LICENSE.txt.

================================