[llvm-dev] why do undefined globals end up in .data instead of .bss?
Friedman, Eli via llvm-dev
llvm-dev at lists.llvm.org
Mon Apr 24 11:53:06 PDT 2017
On 4/23/2017 10:10 AM, Andrew Kelley via llvm-dev wrote:
> Here is a module:
>
> @vals = internal unnamed_addr global [20000000 x i32] undef, align 4
>
> LLVM puts the global in the .data section, and results in a 77MB .o
> file of mostly zeroes. Why does this variable not go in the .bss section?
>
I think it's just an oversight; it doesn't matter for clang because it
never emits globals like that. See
TargetLoweringObjectFile::getKindForGlobal for the relevant logic.
-Eli
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
More information about the llvm-dev
mailing list