Author: Peter Collingbourne Date: 2020-12-09T14:14:49-08:00 New Revision: a7790508522fc277963df974dc953077778e3c11
URL: https://github.com/llvm/llvm-project/commit/a7790508522fc277963df974dc953077778e3c11 DIFF: https://github.com/llvm/llvm-project/commit/a7790508522fc277963df974dc953077778e3c11.diff LOG: scudo: Shrink secondary header and cache entry size by a word on Linux. NFCI. Normally compilers will allocate space for struct fields even if the field is an empty struct. Use the [[no_unique_address]] attribute to suppress that behavior. This attribute that was introduced in C++20, but compilers that do not support [[no_unique_address]] will ignore it since it uses C++11 attribute syntax. Differential Revision: https://reviews.llvm.org/D92966 Added: Modified: compiler-rt/lib/scudo/standalone/secondary.h Removed: ################################################################################ diff --git a/compiler-rt/lib/scudo/standalone/secondary.h b/compiler-rt/lib/scudo/standalone/secondary.h index eda88862cb07..ff41bd3e0722 100644 --- a/compiler-rt/lib/scudo/standalone/secondary.h +++ b/compiler-rt/lib/scudo/standalone/secondary.h @@ -31,7 +31,7 @@ struct Header { uptr BlockEnd; uptr MapBase; uptr MapSize; - MapPlatformData Data; + [[no_unique_address]] MapPlatformData Data; }; constexpr uptr getHeaderSize() { @@ -232,7 +232,7 @@ class MapAllocatorCache { uptr BlockEnd; uptr MapBase; uptr MapSize; - MapPlatformData Data; + [[no_unique_address]] MapPlatformData Data; u64 Time; }; _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits