commit | f6abb4b500f4f30f8ced624c7ff53e192f4c38e4 | [log] [tgz] |
---|---|---|
author | Rui Ueyama <ruiu@google.com> | Wed Jan 23 02:03:26 2019 +0000 |
committer | Rui Ueyama <ruiu@google.com> | Wed Jan 23 02:03:26 2019 +0000 |
tree | 79fd4e13eed90553b1d4fe3dd8ce1dbdd1bbcdbb | |
parent | e67de3fa5ebbf23fd0685e1c04e3e424f1d50986 [diff] |
MemoryBlock: Do not automatically extend a given size to a multiple of page size. Previously, MemoryBlock automatically extends a requested buffer size to a multiple of page size because (I believe) doing it was thought to be harmless and with that you could get more memory (on average 2KiB on 4KiB-page systems) "for free". That programming interface turned out to be error-prone. If you request N bytes, you usually expect that a resulting object returns N for `size()`. That's not the case for MemoryBlock. Looks like there is only one place where we take the advantage of allocating more memory than the requested size. So, with this patch, I simply removed the automatic size expansion feature from MemoryBlock and do it on the caller side when needed. MemoryBlock now always returns a buffer whose size is equal to the requested size. Differential Revision: https://reviews.llvm.org/D56941 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@351916 91177308-0d34-0410-b5e6-96231b3b80d8
This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.
lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.
In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.
It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz
The current sha256 is 10eec685463d5a8bbf08d77f4ca96282161d396c65bd97dc99dbde644a31610f.