Go to file
Evgeniy Stepanov d398471a63 [hwasan] Switch to 64 allocator with a dense size class map.
Summary:
Replace the 32-bit allocator with a 64-bit one with a non-constant
base address, and reduce both the number of size classes and the maximum
size of per-thread caches.

As measured on [1], this reduces average weighted memory overhead
(MaxRSS) from 26% to 12% over stock android allocator. These numbers
include overhead from code instrumentation and hwasan shadow (i.e. not a
pure allocator benchmark).

This switch also enables release-to-OS functionality, which is not
implemented in the 32-bit allocator. I have not seen any effect from
that on the benchmark.

[1] https://android.googlesource.com/platform/system/extras/+/master/memory_replay/

Reviewers: vitalybuka, kcc

Subscribers: kubamracek, cryptoad, llvm-commits

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

llvm-svn: 350370
2019-01-03 23:19:02 +00:00
clang Fix check-hwasan with LLVM_BUILD_EXTERNAL_COMPILER_RT=ON 2019-01-03 22:50:45 +00:00
clang-tools-extra [clangd] Fix detecting atomics in stand-alone builds 2019-01-03 16:43:27 +00:00
compiler-rt [hwasan] Switch to 64 allocator with a dense size class map. 2019-01-03 23:19:02 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc travis: Add cmake build 2018-11-27 16:07:21 +00:00
libcxx De-tab a couple tests. NFC 2019-01-03 17:18:40 +00:00
libcxxabi [libcxx] Remove bad_array_length 2018-11-29 19:44:57 +00:00
libunwind [SEH] Add initial support for AArch64 2018-12-18 20:05:59 +00:00
lld [test] Enable system-linker-elf feature on NetBSD [NFC] 2019-01-02 19:39:26 +00:00
lldb symbols.enable-external-lookup=false on all hosts (not just OSX) 2019-01-03 23:11:06 +00:00
llgo
llvm [x86] lower extracted fadd/fsub to horizontal vector math 2019-01-03 23:16:19 +00:00
openmp [OpenMP] Add omp_get_device_num() and update several other device API functions 2019-01-03 21:14:19 +00:00
parallel-libs
polly [CMake] Fix generation of exported targets in build directory 2018-11-06 15:18:17 +00:00
pstl [pstl] Initial integration with LLVM's CMake 2018-12-21 15:59:04 +00:00
README.md Update the project name in README.md 2018-10-19 00:03:01 +00:00

README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.