[PATCH] D28978: [ThinLTO] Add an auto-hide feature

Mehdi AMINI via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 30 15:55:54 PST 2017


mehdi_amini marked an inline comment as done.
mehdi_amini added a comment.

In https://reviews.llvm.org/D28978#661102, @pcc wrote:

> > To get this, I believe right now we need one mode field in the symbol resolution API (example: `unsigned VisibleOutsideDSO : 1`) to distinguish  between the two first cases,
>
> As we discussed on IRC, I don't think that's necessary. The linker can resolve this and decide on its own whether to add the symbol to the dynamic symbol table.


You're right, we can't do any optimization or any better codegen based on this information.

I still think we should refine the partitioning detection, since only the first two cases would be merged.

  External 
        | > Outside of LTO
        | > PartitionLTO
              | > RegularLTO
              | > PartitionThinLTO
                    | > Individual ThinLTO Module

What is introduced that we don't have today is a `PartitionLTO` and a `PartitionThinLTO`. This avoids going up to External immediately when a symbol is used in multiples individual ThinLTO modules, or when it is used across Regular and ThinLTO.

Right new we have to reconstruct this information in ThinLTO because we're losing it when constructing the partitioning.


https://reviews.llvm.org/D28978





More information about the llvm-commits mailing list