llvm-project/compiler-rt/lib
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
..
BlocksRuntime [compiler-rt] Test commit: remove some trailing white spaces. 2017-08-25 19:36:30 +00:00
asan [sanitizer] Don't generate "failed to intercept" constants for each function 2019-05-16 23:46:15 +00:00
builtins [NFC][compiler-rt][builtins] Tidy and match comments for floating point operations 2019-05-09 22:48:30 +00:00
cfi cfi: Rename source file from cc to cpp 2019-02-28 22:03:41 +00:00
crt Use CMAKE_C_COMPILER_ARG1 in compiler invocation 2019-05-19 03:29:15 +00:00
dfsan Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
fuzzer [libFuzzer] replace string_view with string to fix the bots. This is NFC, just slower. 2019-05-14 22:16:04 +00:00
gwp_asan Explicitly remove -stdlib=libc++, as we pass -nostdinc++ anyway. This should fix the android builtbots, and is a direct copy from what Scudo does. 2019-05-17 20:34:37 +00:00
hwasan Fix some gcc warnings in compiler-rt 2019-05-10 14:15:13 +00:00
interception [compiler-rt][tests] Propagate COMPILER_RT_UNITTEST_LINK_FLAGS 2019-05-01 22:25:16 +00:00
lsan [sanitizer][NFC] Set LargeMmapAllocator type from PrimaryAllocator 2019-05-01 19:41:54 +00:00
msan [sanitizer] Don't generate "failed to intercept" constants for each function 2019-05-16 23:46:15 +00:00
profile Fix some gcc warnings in compiler-rt 2019-05-10 14:15:13 +00:00
safestack [safestack] Explain why tinfo at the end of the buffer 2019-02-07 23:20:47 +00:00
sanitizer_common [sanitizer] Update symbolizer/scripts/global_symbols.txt 2019-05-17 21:37:34 +00:00
scudo [scudo][standalone] Introduce the Primary(s) and LocalCache 2019-05-20 14:40:04 +00:00
stats Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
tsan [compiler-rt][tests] Propagate COMPILER_RT_UNITTEST_LINK_FLAGS 2019-05-01 22:25:16 +00:00
ubsan Fix for Windows 2019-05-02 07:05:29 +00:00
ubsan_minimal [compiler-rt][UBSan] Sanitization for alignment assumptions. 2019-01-15 09:44:27 +00:00
xray [compiler-rt] Set the ZX_VMO_RESIZABLE option for zx_vmo_create 2019-05-02 17:24:53 +00:00
CMakeLists.txt Reland "[compiler-rt] Simple crtbegin.o and crtend.o implementation" 2019-04-30 18:13:22 +00:00