LowerTypeTests: Propagate symver directives
authorVlad Tsyrklevich <vlad@tsyrklevich.net>
Fri, 20 Apr 2018 01:36:48 +0000 (01:36 +0000)
committerVlad Tsyrklevich <vlad@tsyrklevich.net>
Fri, 20 Apr 2018 01:36:48 +0000 (01:36 +0000)
commit230b256783e567266d9f07787c4fc1c5a667d227
treee7f8637719a7bb92038774d6cd52c3cde7ebd178
parenta59aacf52bf36ec8f2dd5b2395107f13d018cb0d
LowerTypeTests: Propagate symver directives

Summary:
This change fixes https://crbug.com/834474, a build failure caused by
LowerTypeTests not preserving .symver symbol versioning directives for
exported functions. Emit symver information to ThinLTO summary data and
then propagate symver directives for exported functions to the merged
module.

Emitting symver information to the summaries increases the size of
intermediate build artifacts for a Chromium build by less than 0.2%.

Reviewers: pcc

Reviewed By: pcc

Subscribers: tejohnson, mehdi_amini, eraman, llvm-commits, eugenis, kcc

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

llvm-svn: 330387
llvm/include/llvm/Object/ModuleSymbolTable.h
llvm/lib/Object/ModuleSymbolTable.cpp
llvm/lib/Object/RecordStreamer.cpp
llvm/lib/Object/RecordStreamer.h
llvm/lib/Transforms/IPO/LowerTypeTests.cpp
llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
llvm/test/Transforms/LowerTypeTests/export-symver.ll [new file with mode: 0644]
llvm/test/Transforms/ThinLTOBitcodeWriter/symver.ll [new file with mode: 0644]