[PATCH] D143482: [SanitizerBinaryMetadata] Optimize used space for features and UAR stack args

Marco Elver via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 7 02:10:49 PST 2023


melver created this revision.
melver added a reviewer: dvyukov.
Herald added subscribers: Enna1, hiraditya.
Herald added a project: All.
melver requested review of this revision.
Herald added projects: clang, Sanitizers, LLVM.
Herald added subscribers: llvm-commits, Sanitizers, cfe-commits.

Optimize the encoding of "covered" metadata by:

1. Reducing feature mask from 4 bytes to 1 byte (needs increase once we reach more than 8 features).
2. Only emitting UAR stack args size if it is non-zero, saving 4 bytes in the common case.

One caveat is that the emitted metadata for function PC (offset), size,
and UAR size (if enabled) are no longer aligned to 4 bytes.

SanitizerBinaryMetadata version base is increased to 2, since the change
is backwards incompatible.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D143482

Files:
  clang/test/CodeGen/sanitize-metadata.c
  compiler-rt/test/metadata/common.h
  compiler-rt/test/metadata/covered.cpp
  compiler-rt/test/metadata/lit.site.cfg.py.in
  compiler-rt/test/metadata/uar.cpp
  llvm/include/llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h
  llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp
  llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
  llvm/test/Instrumentation/SanitizerBinaryMetadata/atomics.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D143482.495436.patch
Type: text/x-patch
Size: 15694 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230207/3a5c6bcf/attachment-0001.bin>


More information about the cfe-commits mailing list