1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/tools
Teresa Johnson 52c19ef944 [LTO] Record whether LTOUnit splitting is enabled in index
Summary:
Records in the module summary index whether the bitcode was compiled
with the option necessary to enable splitting the LTO unit
(e.g. -fsanitize=cfi, -fwhole-program-vtables, or -fsplit-lto-unit).

The information is passed down to the ModuleSummaryIndex builder via a
new module flag "EnableSplitLTOUnit", which is propagated onto a flag
on the summary index.

This is then used during the LTO link to check whether all linked
summaries were built with the same value of this flag. If not, an error
is issued when we detect a situation requiring whole program visibility
of the class hierarchy. This is the case when both of the following
conditions are met:
1) We are performing LowerTypeTests or Whole Program Devirtualization.
2) There are type tests or type checked loads in the code.

Note I have also changed the ThinLTOBitcodeWriter to also gate the
module splitting on the value of this flag.

Reviewers: pcc

Subscribers: ormris, mehdi_amini, Prazek, inglorion, eraman, steven_wu, dexonsmith, arphaman, dang, llvm-commits

Differential Revision: https://reviews.llvm.org/D53890

llvm-svn: 350948
2019-01-11 18:31:57 +00:00
..
bugpoint [bugpoint][PR29027] Reduce function attributes 2018-12-19 03:42:19 +00:00
bugpoint-passes cmake: Remove add_llvm_loadable_module() 2018-12-20 22:04:08 +00:00
dsymutil [dsymutil] Fix assertion triggered by empty address range. 2019-01-08 01:08:09 +00:00
gold [gold] emit assembly listing from gold plugin on LTO stage 2019-01-02 23:48:00 +00:00
llc [llc] Fix sanitizer failure. 2018-06-23 19:04:10 +00:00
lli [Support] Make error banner optional in logAllUnhandledErrors 2018-11-11 01:46:03 +00:00
llvm-ar [binutils] NFC: fix clang-tidy warning: use empty() instead of size() == 0 2018-12-20 00:57:06 +00:00
llvm-as [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
llvm-as-fuzzer make add_llvm_fuzzer calls slightly more consisten with other cmake 2018-05-11 17:58:52 +00:00
llvm-bcanalyzer Revert 349677, it contained a whole bunch of stuff I did not mean to commit 2018-12-19 20:19:58 +00:00
llvm-c-test [LLVM-C] Improve Intrinsics Bindings 2018-11-06 01:38:14 +00:00
llvm-cat
llvm-cfi-verify Revert r342148 (and follow-on fix attempts r342154, r342180, r342182, r342193) 2018-09-15 19:04:27 +00:00
llvm-config Don't add unnecessary compiler flags to llvm-config output 2018-12-13 18:21:23 +00:00
llvm-cov [binutils] NFC: fix clang-tidy warning: use empty() instead of size() == 0 2018-12-20 00:57:06 +00:00
llvm-cvtres [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
llvm-cxxdump [Support] Make error banner optional in logAllUnhandledErrors 2018-11-11 01:46:03 +00:00
llvm-cxxfilt Define InitLLVM to do common initialization all at once. 2018-04-13 18:26:06 +00:00
llvm-cxxmap Add flag to llvm-profdata to allow symbols in profile data to be remapped, and 2018-09-13 20:22:02 +00:00
llvm-diff [TI removal] Make getTerminator() return a generic Instruction. 2018-10-15 10:42:50 +00:00
llvm-dis [ThinLTO] Print module summary index to assembly 2018-05-26 02:34:13 +00:00
llvm-dwarfdump Revert r347490 as it breaks address sanitizer builds 2018-11-23 17:13:06 +00:00
llvm-dwp Reland rL341509: "[llvm-dwp] Use buffer_stream if output file is not seekable (e.g. "-")" 2018-09-06 20:26:54 +00:00
llvm-elfabi [elfabi] Add option to manually specify file read format 2019-01-07 17:33:10 +00:00
llvm-exegesis Revert rL350035 "[llvm-exegesis] Clustering: don't enqueue a point multiple times" 2019-01-02 09:21:00 +00:00
llvm-extract Define InitLLVM to do common initialization all at once. 2018-04-13 18:26:06 +00:00
llvm-go [bindings/go] Add coroutine passes 2018-08-19 23:40:05 +00:00
llvm-isel-fuzzer CodeGen: Add a dwo output file argument to addPassesToEmitFile and hook it up to dwo output. 2018-05-21 20:16:41 +00:00
llvm-itanium-demangle-fuzzer [llvm-demangle-fuzzer] Also fuzz microsoftDemangle(). 2019-01-07 16:14:00 +00:00
llvm-jitlistener Define InitLLVM to do common initialization all at once. 2018-04-13 18:26:06 +00:00
llvm-link Restore "[ThinLTO] Ensure we always select the same function copy to import" 2018-07-16 15:30:27 +00:00
llvm-lto [ThinLTO] Import local variables from the same module as caller 2018-11-29 17:02:42 +00:00
llvm-lto2 [LTO] Call InitLLVM from llvm-lto2 2018-10-16 17:37:45 +00:00
llvm-mc [MC] Separate masm integer literal lexer support from inline asm 2018-10-24 20:23:57 +00:00
llvm-mc-assemble-fuzzer [llvm-mc-assemble-fuzzer] Update API - Pass MCObjectWriter instead of a stream 2018-08-17 04:38:41 +00:00
llvm-mc-disassemble-fuzzer make add_llvm_fuzzer calls slightly more consisten with other cmake 2018-05-11 17:58:52 +00:00
llvm-mca [MCA] Fix wrong definition of ResourceUnitMask in DefaultResourceStrategy. 2019-01-10 13:59:13 +00:00
llvm-microsoft-demangle-fuzzer [llvm-demangle-fuzzer] Also fuzz microsoftDemangle(). 2019-01-07 16:14:00 +00:00
llvm-modextract
llvm-mt [llvm-mt] Accept and ignore notify_update flag 2018-11-07 18:36:50 +00:00
llvm-nm [llvm-nm] Add --portability as alias for --format=posix 2019-01-07 14:12:51 +00:00
llvm-objcopy [llvm-objcopy] [COFF] Implmement --strip-unneeded and -x/--discard-all for symbols 2019-01-11 14:13:04 +00:00
llvm-objdump [llvm-objdump][MachO] Fix error reporting after r350848 and r350849 2019-01-10 17:36:54 +00:00
llvm-opt-fuzzer [NewPM] teach -passes= to emit meaningful error messages 2018-10-17 10:36:23 +00:00
llvm-opt-report Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
llvm-pdbutil [llvm-pdbutil] Remove the analyze subcommand. 2018-12-04 21:49:04 +00:00
llvm-profdata [llvm-profdata] add value-cutoff functionality in show command 2019-01-08 22:41:48 +00:00
llvm-rc [llvm-rc] Support not expressions. 2018-12-05 13:22:56 +00:00
llvm-readobj [llvm-readobj] Don't print '@' at end of unversioned dynsym names 2019-01-08 10:58:05 +00:00
llvm-rtdyld [Support] Make error banner optional in logAllUnhandledErrors 2018-11-11 01:46:03 +00:00
llvm-shlib Support of hurd in llvm-shlib 2018-10-18 20:07:44 +00:00
llvm-size [binutils] NFC: fix clang-tidy warning: use empty() instead of size() == 0 2018-12-20 00:57:06 +00:00
llvm-special-case-list-fuzzer make add_llvm_fuzzer calls slightly more consisten with other cmake 2018-05-11 17:58:52 +00:00
llvm-split
llvm-stress Repair compilation of llvm-stress after r350835. 2019-01-10 16:43:26 +00:00
llvm-strings [llvm-strings] Fix whitespaces to match strings output. 2018-11-09 18:03:21 +00:00
llvm-symbolizer [llvm-symbolizer] Add -exe, -e as aliases to -obj 2019-01-11 11:51:52 +00:00
llvm-undname [llvm-undname] Use WithColor for error reporting 2018-11-11 22:11:47 +00:00
llvm-xray [XRay] Add a helper function sortByKey to simplify code 2018-12-11 17:34:15 +00:00
llvm-yaml-numeric-parser-fuzzer Use LLVM_BUILTIN_TRAP not __builtin_trap to appease windows builds. NFCI. 2018-08-20 09:49:20 +00:00
lto [libLTO] Expose LLVMCreateDisasmCPUFeatures from libLTO 2018-09-26 16:47:35 +00:00
msbuild Update Visual Studio Integration version number. 2018-08-29 16:57:37 +00:00
obj2yaml [ObjectYAML] [COFF] Support multiple symbols with the same name 2019-01-07 20:55:33 +00:00
opt [LTO] Record whether LTOUnit splitting is enabled in index 2019-01-11 18:31:57 +00:00
opt-remarks [CMake] Expose opt-remark tooling through libOptRemarks.dylib 2018-11-05 11:57:44 +00:00
opt-viewer Python compat - no explicit reference to Python version 2019-01-03 15:44:24 +00:00
sancov Python compat - print statement 2019-01-03 14:11:33 +00:00
sanstats [cfi] Help sanstats to find binary if they are not at the original location 2018-11-26 21:48:55 +00:00
verify-uselistorder Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
xcode-toolchain [CMake] Use LLVM_ENABLE_IDE instead of CMAKE_CONFIGURATION_TYPES 2018-10-15 21:20:02 +00:00
yaml2obj [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
CMakeLists.txt [RFC] Build LLVM-C.dll on MSVC that exports only the C API 2018-08-07 15:54:50 +00:00
LLVMBuild.txt [elfabi] Introduce tool for ELF TextAPI 2019-01-03 18:32:36 +00:00