diff options
author | Chris Lattner <sabre@nondot.org> | 2010-01-19 06:25:51 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-01-19 06:25:51 +0000 |
commit | 814819f6ea7fb0638fe73920299fda0da941a59e (patch) | |
tree | b8e9a2368cf9e4ee1579017f894644b088f65b53 /lib/Target/TargetLoweringObjectFile.cpp | |
parent | 258281d8ac7b6ab61d64948340038e5f6692e3c0 (diff) | |
download | external_llvm-814819f6ea7fb0638fe73920299fda0da941a59e.zip external_llvm-814819f6ea7fb0638fe73920299fda0da941a59e.tar.gz external_llvm-814819f6ea7fb0638fe73920299fda0da941a59e.tar.bz2 |
stop using the .lcomm pseudoop on darwin, instead, directly use the
.zerofill directive. Streamerize its generation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93868 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/TargetLoweringObjectFile.cpp')
-rw-r--r-- | lib/Target/TargetLoweringObjectFile.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp index 77203e0..01fb217 100644 --- a/lib/Target/TargetLoweringObjectFile.cpp +++ b/lib/Target/TargetLoweringObjectFile.cpp @@ -761,16 +761,19 @@ void TargetLoweringObjectFileMachO::Initialize(MCContext &Ctx, ConstDataCoalSection = getMachOSection("__DATA","__const_coal", MCSectionMachO::S_COALESCED, SectionKind::getText()); - DataCommonSection - = getMachOSection("__DATA","__common", MCSectionMachO::S_ZEROFILL, - SectionKind::getBSS()); ConstDataSection // .const_data = getMachOSection("__DATA", "__const", 0, SectionKind::getReadOnlyWithRel()); DataCoalSection = getMachOSection("__DATA","__datacoal_nt", MCSectionMachO::S_COALESCED, SectionKind::getDataRel()); - + DataCommonSection + = getMachOSection("__DATA","__common", MCSectionMachO::S_ZEROFILL, + SectionKind::getBSS()); + DataBSSSection + = getMachOSection("__DATA","__bss", MCSectionMachO::S_ZEROFILL, + SectionKind::getBSS()); + LazySymbolPointerSection = getMachOSection("__DATA", "__la_symbol_ptr", @@ -933,6 +936,11 @@ SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, // DATA, __common section with the .zerofill directive. if (Kind.isBSSExtern()) return DataCommonSection; + + // Put zero initialized globals with local linkage in __DATA,__bss directive + // with the .zerofill directive (aka .lcomm). + if (Kind.isBSSLocal()) + return DataBSSSection; // Otherwise, just drop the variable in the normal data section. return DataSection; |