diff options
author | Kostya Kortchinsky <kostyak@google.com> | 2018-03-12 19:29:38 +0000 |
---|---|---|
committer | Kostya Kortchinsky <kostyak@google.com> | 2018-03-12 19:29:38 +0000 |
commit | e95ef87663eef176b818131dd5de8a08938dbe8c (patch) | |
tree | f657d4ff0955f09474ddabca3ccc7ce6a5145ed9 /clang/lib/Frontend/FrontendAction.cpp | |
parent | 77a5f21f0e250b960cd97e636330b8af6f6d0c96 (diff) | |
download | bcm5719-llvm-e95ef87663eef176b818131dd5de8a08938dbe8c.tar.gz bcm5719-llvm-e95ef87663eef176b818131dd5de8a08938dbe8c.zip |
[scudo] Secondary allocator overhaul to support Windows
Summary:
The need for this change stems from the fact that Windows doesn't support
partial unmapping (`MEM_RELEASE` implies the entire allocated region). So we
now have to keep track of the reserved region and the committed region, so that
we can function without the trimming we did when dealing with larger alignments.
Instead of just having a `ReservedAddressRange` per chunk, we introduce a
`LargeChunkHeader` (and `LargeChunk` namespace) that additionally holds the
committed size and the usable size. The former is needed for stats purposes,
the latter is used by the frontend. Requiring both is debatable, we could only
work with the usable size but then be off by up to a page per chunk when
dealing with stats.
Additionally, we introduce more stats since they turned out to be useful for
experiments, and a `PrintStats` function that will be used by the combined
allocator in later patch.
Reviewers: alekseyshl, flowerhack
Reviewed By: alekseyshl
Subscribers: delcypher, #sanitizers, llvm-commits
Differential Revision: https://reviews.llvm.org/D43949
llvm-svn: 327321
Diffstat (limited to 'clang/lib/Frontend/FrontendAction.cpp')
0 files changed, 0 insertions, 0 deletions