[PATCH] D12511: [LTO] Pass -no-zero-initialized-in-bss on linker command line
Rafael EspĂndola via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 31 19:59:30 PDT 2015
On 31 August 2015 at 22:45, Akira Hatanaka <ahatanak at gmail.com> wrote:
> ahatanak added a comment.
>
> If it's important to be able to compile one file with -fno-zero-initialized-in-bss and another without the option, we could add a bit to GlobalVariable that indicates it shouldn't be go into the bss section. Is that what you are suggesting?
Yes, but note that we don't need an extra bit, we can explicitly set
the section.
> If we are going to take that approach, users will be passing -fno-zero-initialized-in-bss at compile time to set the bit for the GlobalVariables clang creates and pass the option again at link time (which will translate into -mllvm -nozero-initialized-in-bss) since some of the passes that are run at link time create GlobalVariables.
This on the other hand suggests that a global flag (i.e., your patch)
is better. We don't optimize a function from SSE2 to SSE4, but we
might noticed that the initializer of a GV is always zero and then
have the choice of putting it in .bss or .data.
Eric, any thoughts?
Cheers,
Rafael
More information about the cfe-commits
mailing list