1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/tools
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
..
bugpoint [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
bugpoint-passes
dsymutil [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
gold [LTO] Add SelectionKind to IRSymtab and use it in ld.lld/LLVMgold 2021-07-20 13:22:00 -07:00
llc [llc] Default MCUseDwarfDirectory to true 2021-07-12 17:44:02 -07:00
lli [ORC] Remove LLVM-side MachO Platform runtime support. 2021-07-17 14:25:31 +10:00
llvm-ar [llvm] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
llvm-as [OpaquePtr] Introduce option to force all pointers to be opaque pointers 2021-06-24 13:32:31 -07:00
llvm-as-fuzzer
llvm-bcanalyzer Use ManagedStatic and lazy initialization of cl::opt in libSupport to make it free of global initializer 2021-07-16 07:38:16 +00:00
llvm-c-test [ADT] Move DenseMapInfo for ArrayRef/StringRef into respective headers (NFC) 2021-06-03 18:34:36 +02:00
llvm-cat
llvm-cfi-verify [llvm][tools] Hide unrelated llvm-cfi-verify options 2021-07-16 10:43:52 +02:00
llvm-config
llvm-cov [llvm] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
llvm-cvtres [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
llvm-cxxdump [llvm][tools] Hide more unrelated tool options 2021-07-20 13:27:33 +02:00
llvm-cxxfilt [llvm-cxxfilt] Switch command line parsing from llvm::cl to OptTable 2021-07-09 10:10:45 -07:00
llvm-cxxmap [llvm][tools] Hide more unrelated tool options 2021-07-20 13:27:33 +02:00
llvm-diff [llvm][tools] Hide more unrelated tool options 2021-07-20 13:27:33 +02:00
llvm-dis [llvm][tools] Hide more unrelated tool options 2021-07-20 13:27:33 +02:00
llvm-dwarfdump Use ManagedStatic and lazy initialization of cl::opt in libSupport to make it free of global initializer 2021-07-16 07:38:16 +00:00
llvm-dwp [llvm][tools] Hide more unrelated tool options 2021-07-20 13:27:33 +02:00
llvm-exegesis [llvm-exegesis] Fix missing-headers build errors. 2021-07-15 13:20:25 -04:00
llvm-extract
llvm-go
llvm-gsymutil
llvm-ifs [llvm][tools] Hide more unrelated tool options 2021-07-20 13:27:33 +02:00
llvm-isel-fuzzer
llvm-itanium-demangle-fuzzer
llvm-jitlink [ORC] Add missing std::move. 2021-07-19 20:37:53 +10:00
llvm-jitlistener
llvm-libtool-darwin Use ManagedStatic and lazy initialization of cl::opt in libSupport to make it free of global initializer 2021-07-16 07:38:16 +00:00
llvm-link
llvm-lipo [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
llvm-lto [LTO] Support new PM in ThinLTOCodeGenerator. 2021-06-09 10:05:14 +01:00
llvm-lto2 [LTO] Add SelectionKind to IRSymtab and use it in ld.lld/LLVMgold 2021-07-20 13:22:00 -07:00
llvm-mc
llvm-mc-assemble-fuzzer
llvm-mc-disassemble-fuzzer
llvm-mca [llvm-mca][JSON] Store extra information about driver flags used for the simulation 2021-07-16 09:18:40 +02:00
llvm-microsoft-demangle-fuzzer
llvm-ml [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
llvm-modextract
llvm-mt [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
llvm-nm [llvm-nm] Remove one-dash long options except -arch 2021-07-15 09:50:37 -07:00
llvm-objcopy [llvm-strip][WebAssembly] Support strip flags 2021-07-14 14:17:02 -07:00
llvm-objdump [llvm-objdump][WebAssembly] Fix llvm-objdump on files without symbols 2021-07-19 08:59:26 +02:00
llvm-opt-fuzzer
llvm-opt-report
llvm-pdbutil [CodeView] Add missing cases for new enum values 2021-07-07 22:15:33 +03:00
llvm-profdata [llvm-profdata] Allow omission of -o for --text output 2021-06-21 12:01:57 -07:00
llvm-profgen [CSSPGO][llvm-profgen] Fix a missing initalization 2021-07-13 19:49:55 -07:00
llvm-rc [llvm-rc] Make commas in user data structs optional 2021-07-09 14:31:12 +03:00
llvm-readobj [llvm-readelf/llvm-readobj] Remove one-dash long options 2021-07-16 12:03:08 -07:00
llvm-reduce Revert "[llvm] Add enum iteration to Sequence" 2021-07-13 16:44:42 +00:00
llvm-rtdyld
llvm-rust-demangle-fuzzer Fix implicit dependency on <string> header. NFCI. 2021-06-11 10:24:14 +01:00
llvm-shlib [CMake] Don't use -Bsymbolic-functions for MinGW targets 2021-06-30 22:54:26 +03:00
llvm-sim [IRSim] Adding basic implementation of llvm-sim. 2021-06-23 14:38:58 -05:00
llvm-size [llvm-size] Switch command line parsing from llvm::cl to OptTable 2021-07-09 10:26:53 -07:00
llvm-special-case-list-fuzzer
llvm-split
llvm-stress [llvm-stress] Fix dead code preventing us generating per-element vector selects 2021-06-11 10:56:19 +01:00
llvm-strings [llvm-strings] Switch command line parsing from llvm::cl to OptTable 2021-07-05 10:46:17 -07:00
llvm-symbolizer [llvm-symbolizer] Move setGroupedShortOptions and don't ignore case 2021-07-01 19:43:49 -07:00
llvm-tapi-diff [llvm-tapi-diff] Wrap empty string around StringLiteral NFC 2021-06-23 11:41:03 -07:00
llvm-undname
llvm-xray xray-color-helper.cpp - add missing implicit cmath header dependency. NFCI. 2021-06-05 21:33:24 +01:00
llvm-yaml-numeric-parser-fuzzer
llvm-yaml-parser-fuzzer
lto [AIX] Build libLTO as MODULE rather than SHARED 2021-06-10 12:08:59 -04:00
msbuild
obj2yaml [LLD][LLVM] CG Graph profile using relocations 2021-06-24 09:09:33 -07:00
opt [NewPM][opt] Add -debug-pass-manager=quiet to not print analysis info 2021-07-19 15:08:26 -07:00
opt-viewer
remarks-shlib
sancov
sanstats
split-file NFC: .clang-tidy: Inherit configs from parents to improve maintainability 2021-06-08 08:25:59 -07:00
verify-uselistorder
vfabi-demangle-fuzzer
xcode-toolchain
yaml2obj
CMakeLists.txt