[PATCH] D28843: IRGen: Start using the WriteThinLTOBitcode pass.

Mehdi AMINI via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 18 13:19:43 PST 2017

mehdi_amini added inline comments.

Comment at: clang/test/CodeGenCXX/type-metadata-thinlto.cpp:2
+// RUN: %clang_cc1 -flto=thin -triple x86_64-unknown-linux -fvisibility hidden -emit-llvm-bc -o %t %s
+// RUN: llvm-modextract -o - -n 1 %t | llvm-dis | FileCheck %s
pcc wrote:
> mehdi_amini wrote:
> > tejohnson wrote:
> > > Is it the case that now we will always split the module with this change? Should that only be done under CFI options?
> > Devirtualization may happen whenever you have a hidden virtual table IIUC, independently of CFI.
> To be more precise: we normally add type metadata in LTO mode when the class has hidden visibility. See: http://clang.llvm.org/docs/LTOVisibility.html
> That doesn't necessarily imply devirtualization, which is controlled by the flag `-fwhole-program-vtables`.
So with hidden visibility but without CFI or -fwhole-program-vtables, do we split the module? What's the purpose?


More information about the cfe-commits mailing list