Skip to content

Commit

Permalink
IRGen: Start using the WriteThinLTOBitcode pass.
Browse files Browse the repository at this point in the history
This is the final change necessary to support CFI with ThinLTO.

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

llvm-svn: 292662
  • Loading branch information
pcc committed Jan 20, 2017
1 parent e02b74e commit 6f16ac1
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
8 changes: 5 additions & 3 deletions clang/lib/CodeGen/BackendUtil.cpp
Expand Up @@ -689,9 +689,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:
Expand Down
1 change: 1 addition & 0 deletions clang/test/CMakeLists.txt
Expand Up @@ -80,6 +80,7 @@ if( NOT CLANG_BUILT_STANDALONE )
llc
llvm-bcanalyzer
llvm-dis
llvm-modextract
llvm-nm
llvm-objdump
llvm-profdata
Expand Down
11 changes: 11 additions & 0 deletions clang/test/CodeGenCXX/type-metadata-thinlto.cpp
@@ -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;
}

0 comments on commit 6f16ac1

Please sign in to comment.