[llvm-dev] ThinLTO and linkonce_odr + unnamed_addr

Steven Wu via llvm-dev llvm-dev at lists.llvm.org
Fri Feb 9 12:48:45 PST 2018


Rafael, another question for you. IRLinker currently takes min visibility for the symbol (lib/Linker/LinkModules.cpp:120). Should it take the max visibility? At least that is what ld64 is doing and is somewhat related to this change because I want to make sure the behavior is consistent if we mark more stuff as hidden.

Steven

> On Feb 9, 2018, at 12:04 PM, Steven Wu via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> I agree with your analysis. I will do the GlobalOpts part as well. The current fix in thinLTO is still good to have for the input that doesn’t have this optimization and I will argue to keep it.
> 
> Steven
> 
>> On Feb 9, 2018, at 11:49 AM, Rafael Avila de Espindola <rafael.espindola at gmail.com> wrote:
>> 
>> Steven Wu <stevenwu at apple.com> writes:
>> 
>>> Add Rafael here. Because he basically ask me the same question in my commit.
>>> 
>>> I wonder why clang choose to do unnamed_addr instead of just do visibility hidden. If linkonce_odr + unnamed_addr is just hidden, is the only difference linkonce_odr + unnamed_addr not in the symbol table?
>> 
>> A local symbol being in the symbol table is mostly an implementation
>> detail.
>> 
>> Not marking a linkonce_odr + *global* unnamed_addr hidden is a missing
>> optimization on non-MachO.
>> 
>> Cheers,
>> Rafael
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev



More information about the llvm-dev mailing list