[PATCH] D96109: Refactor implementation of -funique-internal-linkage-names.
Sriraman Tallam via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 11 15:53:09 PST 2021
tmsriram updated this revision to Diff 323179.
tmsriram marked 4 inline comments as done.
tmsriram added a comment.
Herald added a reviewer: aaron.ballman.
This patch update handles the following:
1. For C internal linkage functions which do not mangle implicitly, force mangling when -funique-internal-linkage-names is present before adding the suffix. This ensures demanglers work correctly on the linkage name as required.
2. The mangler works on a decl and does not have much external context. Add an implicit attribute to the decl to indicate to the mangler that a function name must be mangled.
3. Add tests for DW_AT_linkage_name for C and C++ functions.
4. Check for "sample-profile-elision-policy" attribute.
This patch addresses all the short comings pointed out in D73307 <https://reviews.llvm.org/D73307> where the linkage names had to be updated explicitly and C functions could not be handled effectively.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D96109/new/
https://reviews.llvm.org/D96109
Files:
clang/include/clang/Basic/Attr.td
clang/lib/AST/ItaniumMangle.cpp
clang/lib/CodeGen/BackendUtil.cpp
clang/lib/CodeGen/CGCall.cpp
clang/lib/CodeGen/CodeGenModule.cpp
clang/lib/CodeGen/CodeGenModule.h
clang/test/CodeGen/unique-internal-linkage-names-dwarf.c
clang/test/CodeGen/unique-internal-linkage-names-dwarf.cpp
clang/test/CodeGen/unique-internal-linkage-names.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D96109.323179.patch
Type: text/x-patch
Size: 15252 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210211/1831e4cd/attachment.bin>
More information about the llvm-commits
mailing list