[PATCH] D112761: cfi-icall: Add -fsanitize-cfi-promotion-aliases

Sami Tolvanen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 28 15:08:51 PDT 2021


samitolvanen created this revision.
Herald added subscribers: ormris, jeroen.dobbelaere, dexonsmith, dang, steven_wu, hiraditya.
samitolvanen requested review of this revision.
Herald added projects: clang, LLVM.
Herald added subscribers: llvm-commits, cfe-commits.

Inline assembly refererences to static functions with ThinLTO+CFI were
fixed in D104058 <https://reviews.llvm.org/D104058> by creating aliases for promoted functions. Creating
the aliases unconditionally resulted in an unexpected size increase in
a Chrome helper binary:

https://bugs.chromium.org/p/chromium/issues/detail?id=1261715

As promotion aliases are only required for very specific use cases,
such as compiling the Linux kernel with CFI, add a command line flag
to allow users to create these aliases only when needed.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D112761

Files:
  clang/docs/ClangCommandLineReference.rst
  clang/docs/ControlFlowIntegrity.rst
  clang/docs/UsersManual.rst
  clang/include/clang/Basic/CodeGenOptions.def
  clang/include/clang/Driver/Options.td
  clang/include/clang/Driver/SanitizerArgs.h
  clang/lib/CodeGen/CodeGenModule.cpp
  clang/lib/Driver/SanitizerArgs.cpp
  clang/test/CodeGen/cfi-promotion-aliases.c
  clang/test/Driver/fsanitize.c
  llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
  llvm/test/ThinLTO/X86/devirt2.ll
  llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D112761.383173.patch
Type: text/x-patch
Size: 11108 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20211028/59dd4f0c/attachment.bin>


More information about the cfe-commits mailing list