Re-apply r292662, "IRGen: Start using the WriteThinLTOBitcode pass."

The internal build issue has been resolved.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@293231 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Peter Collingbourne 2017-01-26 23:51:50 +00:00
parent 7adaaafaae
commit 8fda076bbf
3 changed files with 17 additions and 3 deletions

View File

@ -684,9 +684,11 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action,
break;
case Backend_EmitBC:
PerModulePasses.add(createBitcodeWriterPass(
*OS, CodeGenOpts.EmitLLVMUseLists, CodeGenOpts.EmitSummaryIndex,
CodeGenOpts.EmitSummaryIndex));
if (CodeGenOpts.EmitSummaryIndex)
PerModulePasses.add(createWriteThinLTOBitcodePass(*OS));
else
PerModulePasses.add(
createBitcodeWriterPass(*OS, CodeGenOpts.EmitLLVMUseLists));
break;
case Backend_EmitLL:

View File

@ -88,6 +88,7 @@ if( NOT CLANG_BUILT_STANDALONE )
llvm-bcanalyzer
llvm-cat
llvm-dis
llvm-modextract
llvm-nm
llvm-objdump
llvm-profdata

View File

@ -0,0 +1,11 @@
// RUN: %clang_cc1 -flto=thin -flto-unit -triple x86_64-unknown-linux -fvisibility hidden -emit-llvm-bc -o %t %s
// RUN: llvm-modextract -o - -n 1 %t | llvm-dis | FileCheck %s
// CHECK: @_ZTV1A = linkonce_odr
class A {
virtual void f() {}
};
A *f() {
return new A;
}