1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/include/llvm/Object
Fangrui Song 2174d3b961 [LTO] Add SelectionKind to IRSymtab and use it in ld.lld/LLVMgold
In PGO, a C++ external linkage function `foo` has a private counter
`__profc_foo` and a private `__profd_foo` in a `comdat nodeduplicate`.

A `__attribute__((weak))` function `foo` has a weak hidden counter `__profc_foo`
and a private `__profd_foo` in a `comdat nodeduplicate`.

In `ld.lld a.o b.o`, say a.o defines an external linkage `foo` and b.o
defines a weak `foo`. Currently we treat `comdat nodeduplicate` as `comdat any`,
ld.lld will incorrectly consider `b.o:__profc_foo` non-prevailing.  In the worst
case when `b.o:__profd_foo` is retained and `b.o:__profc_foo` isn't, there will
be dangling reference causing an `undefined hidden symbol` error.

Add SelectionKind to `Comdat` in IRSymtab and let linkers ignore nodeduplicate comdat.

Differential Revision: https://reviews.llvm.org/D106228
2021-07-20 13:22:00 -07:00
..
Archive.h [NFC][libObject] clang-format Archive{.h,.cpp} 2021-05-27 16:48:40 -07:00
ArchiveWriter.h
Binary.h [XCOFF][llvm-dwarfdump] llvm-dwarfdump support for XCOFF 2021-03-17 21:21:51 -04:00
COFF.h [NFC][object] Change the input parameter of the method isDebugSection. 2021-05-26 08:47:53 +00:00
COFFImportFile.h [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
COFFModuleDefinition.h [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
CVDebugRecord.h
Decompressor.h
ELF.h [llvm-readelf] Support dumping the BB address map section with --bb-addr-map. 2021-03-08 16:20:11 -08:00
ELFObjectFile.h [ELF] getRelocatedSection: remove the check for ET_REL object file 2021-06-07 13:17:00 -07:00
ELFTypes.h [LLD][LLVM] CG Graph profile using relocations 2021-06-24 09:09:33 -07:00
Error.h
FaultMapParser.h [FaultsMaps][llvm-objdump] Move FaultMapParser to Object/. Remove CodeGen dependency from llvm-objdump 2021-01-27 10:39:59 -08:00
IRObjectFile.h
IRSymtab.h [LTO] Add SelectionKind to IRSymtab and use it in ld.lld/LLVMgold 2021-07-20 13:22:00 -07:00
MachO.h [NFC][object] Change the input parameter of the method isDebugSection. 2021-05-26 08:47:53 +00:00
MachOUniversal.h
MachOUniversalWriter.h [llvm-objcopy][NFC] replace class Buffer/MemBuffer/FileBuffer with streams. 2021-03-10 23:50:04 +03:00
Minidump.h
ModuleSymbolTable.h
ObjectFile.h [ELF] getRelocatedSection: remove the check for ET_REL object file 2021-06-07 13:17:00 -07:00
RelocationResolver.h [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
StackMapParser.h [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
SymbolicFile.h Replace uses of std::iterator with explicit using 2021-04-12 10:47:14 -07:00
SymbolSize.h
TapiFile.h [TextAPI] move source code files out of subdirectory, NFC 2021-04-05 10:24:42 -07:00
TapiUniversal.h Reland "[llvm] llvm-tapi-diff" 2021-06-09 21:17:34 -07:00
Wasm.h [WebAssembly] Rename event to tag 2021-06-17 20:34:19 -07:00
WindowsMachineFlag.h [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
WindowsResource.h [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
XCOFFObjectFile.h [llvm-readobj][XCOFF] Add support for printing the String Table. 2021-07-05 04:16:58 +00:00