1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/tools
Teresa Johnson 2b4369dd03 [ThinLTO] Handle bitcode without function summary sections gracefully
Summary:
Several fixes to the handling of bitcode files without function summary
sections so that they are skipped during ThinLTO processing in llvm-lto
and the gold plugin when appropriate instead of aborting.

1 Don't assert when trying to add a FunctionInfo that doesn't have
  a summary attached.
2 Skip FunctionInfo structures that don't have attached function summary
  sections when trying to create the combined function summary.
3 In both llvm-lto and gold-plugin, check whether a bitcode file has
  a function summary section before trying to parse the index, and skip
  the bitcode file if it does not.
4 Fix hasFunctionSummaryInMemBuffer in BitcodeReader, which had a bug
  where we returned to early while looking for the summary section.

Also added llvm-lto and gold-plugin based tests for cases where we
don't have function summaries in the bitcode file. I verified that
either the first couple fixes described above are enough to avoid the
crashes, or fixes 1,3,4. But have combined them all here for added
robustness.

Reviewers: joker.eph

Subscribers: llvm-commits, joker.eph

Differential Revision: http://reviews.llvm.org/D14903

llvm-svn: 253796
2015-11-21 21:55:48 +00:00
..
bugpoint Make bugpoint ehpad/token friendly 2015-11-08 04:16:12 +00:00
bugpoint-passes [bugpoint] Add a named metadata (+their operands) reducer 2015-11-06 00:12:50 +00:00
dsymutil Generalize ownership/passing semantics to allow dsymutil to own abbreviations via unique_ptr 2015-11-18 00:34:10 +00:00
gold [ThinLTO] Handle bitcode without function summary sections gracefully 2015-11-21 21:55:48 +00:00
llc Remove access to the DataLayout in the TargetMachine 2015-07-24 16:04:22 +00:00
lli Fix some Clang-tidy modernize warnings, other minor fixes. 2015-11-04 22:32:32 +00:00
llvm-ar [llvm-ar] Use failIfError/fail helpers. 2015-11-14 19:00:33 +00:00
llvm-as Support for function summary index bitcode sections and files. 2015-10-04 14:33:43 +00:00
llvm-as-fuzzer [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. 2015-10-02 23:34:06 +00:00
llvm-bcanalyzer [ThinLTO] Add MODULE_CODE_METADATA_VALUES record 2015-11-20 14:51:27 +00:00
llvm-c-test Fix build breakage caused by memory leaks in llvm-c-test 2015-01-28 18:32:31 +00:00
llvm-config llvm-config.cpp: Prune an obsolete \param. [-Wdocumentation] 2015-11-11 17:50:20 +00:00
llvm-cov [llvm-cov] Adjust column widths for function and file reports 2015-10-21 16:03:32 +00:00
llvm-cxxdump Reapply r250906 with many suggested updates from Rafael Espindola. 2015-11-05 19:24:56 +00:00
llvm-diff llvm-diff: Remove implicit ilist iterator conversions, NFC 2015-10-20 18:17:05 +00:00
llvm-dis Use std::unique_ptr to manage the DataStreamer in bitcode parsing. 2015-06-16 23:29:49 +00:00
llvm-dwarfdump dwarfdump: Added macro support to llvm-dwarfdump tool. 2015-11-12 09:38:54 +00:00
llvm-extract uselistorder: Remove the global bits 2015-04-15 03:14:06 +00:00
llvm-go Enable linking tools, shared libraries against libLLVM 2015-09-01 03:14:31 +00:00
llvm-jitlistener Fix the -DBUILD_SHARED_LIBS=ON build. 2015-07-07 17:48:00 +00:00
llvm-link llvm-link option and test for recent metadata mapping bug 2015-11-21 00:35:38 +00:00
llvm-lto [ThinLTO] Handle bitcode without function summary sections gracefully 2015-11-21 21:55:48 +00:00
llvm-mc Fix some Clang-tidy modernize warnings, other minor fixes. 2015-11-04 22:32:32 +00:00
llvm-mc-fuzzer [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. 2015-10-02 23:34:06 +00:00
llvm-mcmarkup Explicitly pass ownership of the MemoryBuffer to AddNewSourceBuffer using std::unique_ptr 2014-08-21 20:44:56 +00:00
llvm-nm Fix UMR in llvm-nm on IR object files in printDarwinSymbol 2015-11-19 00:51:50 +00:00
llvm-objdump Fix LLD testsuite fallout from r253429 2015-11-18 04:35:32 +00:00
llvm-pdbdump llmv-pdbdump: Make BuiltinDumper shorter. NFC. 2015-11-03 20:16:18 +00:00
llvm-profdata [llvm-profdata] Use SmallSet rather that std::set for keeping track of profdata merge errors 2015-11-18 17:10:24 +00:00
llvm-readobj Reapply r250906 with many suggested updates from Rafael Espindola. 2015-11-05 19:24:56 +00:00
llvm-rtdyld [llvm-rtdyld] Fail early if we can't load dynamic libraries. 2015-11-21 05:58:19 +00:00
llvm-shlib [CMake] Bug 25059 - CMake libllvm.so.$MAJOR.$MINOR shared object name not compatible with ldconfig 2015-11-04 23:11:12 +00:00
llvm-size Reapply r250906 with many suggested updates from Rafael Espindola. 2015-11-05 19:24:56 +00:00
llvm-split TransformUtils: Introduce module splitter. 2015-08-21 02:48:20 +00:00
llvm-stress ADT: Remove last implicit ilist iterator conversions, NFC 2015-11-07 00:01:16 +00:00
llvm-symbolizer [Symbolizer]: Add -pretty-print option 2015-11-11 20:41:43 +00:00
lto Switch lto codegen to using diagnostic handlers. 2015-11-17 19:48:12 +00:00
msbuild MSBuild integration: fix the loop in install.bat 2014-09-30 22:30:06 +00:00
obj2yaml [obj2yaml] Fix "time of check to time of use" bug. Add a test. 2015-09-19 20:49:34 +00:00
opt [PM/AA] Remove the last relics of the separate IPA library from LLVM, 2015-08-18 17:51:53 +00:00
sancov sancov test suite 2015-11-12 19:34:21 +00:00
verify-uselistorder [uselistorder] Insert blank line, NFC 2015-10-13 21:51:02 +00:00
xcode-toolchain [CMake] [Darwin] Add support for generating Xcode-compatible toolchains that xcodebuild and xcrun can search 2015-10-15 20:09:01 +00:00
yaml2obj Add a RAW mode to StringTableBuilder. 2015-10-23 21:48:05 +00:00
CMakeLists.txt [CMake] Autoconf builds libLTO with -fPIC, CMake should be able to as well. 2015-11-10 21:38:58 +00:00
LLVMBuild.txt Remove macho-dump. Its functionality is now covered by llvm-readobj. 2015-09-22 17:46:10 +00:00
Makefile adding sancov to Makefile directory list. 2015-11-17 20:02:03 +00:00