mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
95d9b0ea49
`__sancov_pcs` parallels the other metadata section(s). While some optimizers (e.g. GlobalDCE) respect linker semantics for comdat and retain or discard the sections as a unit, some (e.g. GlobalOpt/ConstantMerge) do not. So we have to conservatively retain all unconditionally in the compiler. When a comdat is used, the COFF/ELF linkers' GC semantics ensure the associated parallel array elements are retained or discarded together, so `llvm.compiler.used` is sufficient. Otherwise (MachO (see rL311955/rL311959), COFF special case where comdat is not used), we have to use `llvm.used` to conservatively make all sections retain by the linker. This will fix the Windows problem once internal linkage GlobalObject's in `llvm.used` are retained via `/INCLUDE:`. Reviewed By: morehouse, vitalybuka Differential Revision: https://reviews.llvm.org/D97432 |
||
---|---|---|
.. | ||
abort-in-entry-block.ll | ||
backedge-pruning.ll | ||
chains.ll | ||
cmp-tracing-api-x86_32.ll | ||
cmp-tracing-api-x86_64.ll | ||
cmp-tracing.ll | ||
coff-comdat.ll | ||
coff-pc-table-inline-8bit-counters.ll | ||
coff-pc-table-inline-bool-flag.ll | ||
coff-used-ctor.ll | ||
const-cmp-tracing.ll | ||
coverage2-dbg.ll | ||
coverage-dbg.ll | ||
coverage.ll | ||
div-tracing.ll | ||
gep-tracing.ll | ||
inline-8bit-counters.ll | ||
inline-bool-flag.ll | ||
interposable-symbol.ll | ||
no-func.ll | ||
pc-table.ll | ||
postdominator_check.ll | ||
seh.ll | ||
stack-depth-variable-declared-by-user.ll | ||
stack-depth.ll | ||
switch-tracing.ll | ||
trace-pc-guard-inline-8bit-counters.ll | ||
trace-pc-guard-inline-bool-flag.ll | ||
trace-pc-guard.ll | ||
tracing-comdat.ll | ||
tracing.ll | ||
unreachable-critedge.ll | ||
wineh.ll |