Go to file
Kostya Kortchinsky efe3d3436a [scudo] Refactor ScudoChunk
Summary:
The initial implementation used an ASan like Chunk class that was deriving from
a Header class. Due to potential races, we ended up working with local copies
of the Header and never using the parent class fields. ScudoChunk was never
constructed but cast, and we were using `this` as the pointer needed for our
computations. This was meh.

So we refactored ScudoChunk to be now a series of static functions within the
namespace `__scudo::Chunk` that take a "user" pointer as first parameter (former
`this`). A compiled binary doesn't really change, but the code is more sensible.

Clang tends to inline all those small function (in -O2), but GCC left a few not
inlined, so we add the `INLINE` keyword to all.

Since we don't have `ScudoChunk` pointers anymore, a few variables were renamed
here and there to introduce a clearer distinction between a user pointer
(usually `Ptr`) and a backend pointer (`BackendPtr`).

Reviewers: alekseyshl, flowerhack

Reviewed By: alekseyshl

Subscribers: #sanitizers, llvm-commits

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

llvm-svn: 320745
2017-12-14 21:32:57 +00:00
clang Commit missing tests for r320734 2017-12-14 19:22:41 +00:00
clang-tools-extra [clangd] Put all #includes in one block in clangd source files. NFC 2017-12-14 21:22:03 +00:00
compiler-rt [scudo] Refactor ScudoChunk 2017-12-14 21:32:57 +00:00
debuginfo-tests [debuginfo-tests] Support moving debuginfo-tests to llvm/projects 2017-12-12 16:54:20 +00:00
libclc configure.py: Add gfx900 (Vega, Raven) 2017-11-27 11:14:06 +00:00
libcxx [libcxx] Fix basic_stringbuf constructor 2017-12-13 18:12:55 +00:00
libcxxabi [libcxxabi] Pass LIBCXXABI_SYSROOT and LIBCXXABI_GCC_TOOLCHAIN to lit 2017-12-12 01:20:37 +00:00
libunwind [libunwind][MIPS]: Add support for unwinding in O32 and N64 processes. 2017-12-12 21:43:36 +00:00
lld Fix -Wreorder warning 2017-12-14 21:09:31 +00:00
lldb ObjectFile: remove ReadSectionData/MemoryMapSectionData mutual recursion 2017-12-14 14:56:45 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm [Hexagon] Generate HVX code for comparisons and selects 2017-12-14 21:28:48 +00:00
openmp [AArch64] fix an issue with older /proc/cpuinfo layout 2017-12-13 16:12:24 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [ScopBuilder] Split statements on encountering store instructions. 2017-12-11 12:51:24 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

README.md

Low Level Virtual Machine (LLVM)

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