[PATCH] D14903: [ThinLTO] Handle bitcode without function summary sections gracefully

Teresa Johnson via llvm-commits llvm-commits at lists.llvm.org
Sat Nov 21 08:03:09 PST 2015


tejohnson created this revision.
tejohnson added a reviewer: joker.eph.
tejohnson added a subscriber: llvm-commits.
Herald added a subscriber: joker.eph.

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.

http://reviews.llvm.org/D14903

Files:
  include/llvm/IR/FunctionInfo.h
  lib/Bitcode/Reader/BitcodeReader.cpp
  lib/IR/FunctionInfo.cpp
  test/Linker/funcimport.ll
  test/tools/gold/X86/thinlto.ll
  tools/gold/gold-plugin.cpp
  tools/llvm-lto/llvm-lto.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14903.40870.patch
Type: text/x-patch
Size: 7025 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151121/ddb60639/attachment.bin>


More information about the llvm-commits mailing list