1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/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
..
dsymutil
gold [LTO] Add SelectionKind to IRSymtab and use it in ld.lld/LLVMgold 2021-07-20 13:22:00 -07:00
llc
llvm-ar
llvm-as
llvm-bcanalyzer [llvm][tools] Hide unrelated llvm-bcanalyzer options 2021-07-15 10:43:15 +02:00
llvm-cfi-verify [llvm][tools] Hide unrelated llvm-cfi-verify options 2021-07-16 10:43:52 +02:00
llvm-config
llvm-cov [llvm-cov gcov] Support GCC 12 format 2021-06-19 22:51:20 -07:00
llvm-cvtres
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-dlltool [llvm-dlltool] Imply the target arch from a tool triple prefix 2021-06-17 13:02:35 +03:00
llvm-dwarfdump Fix test - mistaken hardcoded path from my local machine. 2021-07-12 18:39:41 -07:00
llvm-dwp [llvm][tools] Hide more unrelated tool options 2021-07-20 13:27:33 +02:00
llvm-exegesis
llvm-extract
llvm-gsymutil
llvm-ifs [llvm][tools] Hide more unrelated tool options 2021-07-20 13:27:33 +02:00
llvm-isel-fuzzer
llvm-lib
llvm-libtool-darwin
llvm-link [remangleIntrinsicFunction] Detect and resolve name clash 2021-07-13 11:21:12 +02:00
llvm-lipo
llvm-lit
llvm-locstats
llvm-lto
llvm-lto2
llvm-mc [MCParser][z/OS] Mark a few tests as unsupported for the z/OS Target 2021-07-05 11:06:52 -04:00
llvm-mca [AArch64] Update Cortex-A55 SchedModel to improve LDP scheduling 2021-07-16 12:00:57 +01:00
llvm-ml [ms] [llvm-ml] Standardize blocking of lexical substitution 2021-07-02 14:17:37 -04:00
llvm-modextract
llvm-mt
llvm-nm [llvm-nm] Remove one-dash long options except -arch 2021-07-15 09:50:37 -07:00
llvm-objcopy [test] Use double pound to denote comments. 2021-07-15 17:39:34 -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-original-di-preservation
llvm-pdbutil
llvm-profdata [llvm-profdata] Allow omission of -o for --text output 2021-06-21 12:01:57 -07:00
llvm-profgen [CSSPGO][llvm-profgen] Allow multiple executable load segments. 2021-07-13 18:22:24 -07:00
llvm-ranlib
llvm-rc [llvm-rc] Make commas in user data structs optional 2021-07-09 14:31:12 +03:00
llvm-readobj [test] Avoid llvm-readelf/llvm-readobj one-dash long options and deprecated aliases (e.g. --file-headers) 2021-07-15 10:26:21 -07:00
llvm-reduce [llvm-reduce] Don't delete arguments of intrinsics 2021-06-21 12:43:58 -07: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-split
llvm-strings [llvm-strings] Switch command line parsing from llvm::cl to OptTable 2021-07-05 10:46:17 -07:00
llvm-symbolizer [test] Avoid llvm-symbolizer/llvm-addr2line one-dash long options 2021-07-20 09:34:35 -07:00
llvm-tapi-diff
llvm-xray
lto [llvm] Fix lto tests that requires ld64 2021-06-22 09:21:29 -07:00
not
obj2yaml [test] Avoid llvm-readelf/llvm-readobj one-dash long options and deprecated aliases (e.g. --file-headers) 2021-07-15 10:26:21 -07:00
opt-viewer
sancov
sanstats
split-file
UpdateTestChecks [NFC] Update arm_function_name.ll after 4de0c400317e5a92d57f2c76545061a9e7de22f8 2021-06-23 16:41:43 +03:00
yaml2obj [test] Avoid llvm-readelf/llvm-readobj one-dash long options and deprecated aliases (e.g. --file-headers) 2021-07-15 10:26:21 -07:00