ThinLTO: Fix inline assembly references to static functions with CFI
authorSami Tolvanen <samitolvanen@google.com>
Fri, 16 Jul 2021 22:53:52 +0000 (15:53 -0700)
committerSami Tolvanen <samitolvanen@google.com>
Tue, 20 Jul 2021 17:30:02 +0000 (10:30 -0700)
commit700d07f8ce6f2879610fd6b6968b05c6f17bb915
tree9bce6246fd9c1656c20e1df730509c90d0e3b49d
parent6144fc2da1b87dc64ff887d73b60f7708f5cb0a4
ThinLTO: Fix inline assembly references to static functions with CFI

Create an internal alias with the original name for static functions
that are renamed in promoteInternals to avoid breaking inline
assembly references to them. This version uses module inline assembly
to avoid issues with LowerTypeTestsModule.

Relands commmit 8e3b5cb39eef462943ed7556469604ce25c07a1d with arch
specific tests fixed.

Link: https://github.com/ClangBuiltLinux/linux/issues/1354
Reviewed By: nickdesaulniers, pcc

Differential Revision: https://reviews.llvm.org/D104058
llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
llvm/test/ThinLTO/X86/devirt2.ll
llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll [new file with mode: 0644]
llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll