Remove boolean argument from isSuitableFromBSS.

The argument was used as an additional negative condition and can be
expressed in the if conditional without needing to pass it down.
Update bss commentary around main use.

llvm-svn: 333357
This commit is contained in:
Eric Christopher 2018-05-27 11:39:34 +00:00
parent ed169ec424
commit 958a1f8d87
1 changed files with 5 additions and 8 deletions

View File

@ -64,7 +64,7 @@ static bool isNullOrUndef(const Constant *C) {
return true;
}
static bool isSuitableForBSS(const GlobalVariable *GV, bool NoZerosInBSS) {
static bool isSuitableForBSS(const GlobalVariable *GV) {
const Constant *C = GV->getInitializer();
// Must have zero initializer.
@ -79,10 +79,6 @@ static bool isSuitableForBSS(const GlobalVariable *GV, bool NoZerosInBSS) {
if (GV->hasSection())
return false;
// If -nozero-initialized-in-bss is specified, don't ever use BSS.
if (NoZerosInBSS)
return false;
// Otherwise, put it in BSS!
return true;
}
@ -155,7 +151,7 @@ SectionKind TargetLoweringObjectFile::getKindForGlobal(const GlobalObject *GO,
// Handle thread-local data first.
if (GVar->isThreadLocal()) {
if (isSuitableForBSS(GVar, TM.Options.NoZerosInBSS))
if (isSuitableForBSS(GVar) && !TM.Options.NoZerosInBSS)
return SectionKind::getThreadBSS();
return SectionKind::getThreadData();
}
@ -164,8 +160,9 @@ SectionKind TargetLoweringObjectFile::getKindForGlobal(const GlobalObject *GO,
if (GVar->hasCommonLinkage())
return SectionKind::getCommon();
// Variable can be easily put to BSS section.
if (isSuitableForBSS(GVar, TM.Options.NoZerosInBSS)) {
// Most non-mergeable zero data can be put in the BSS section unless otherwise
// specified.
if (isSuitableForBSS(GVar) && !TM.Options.NoZerosInBSS) {
if (GVar->hasLocalLinkage())
return SectionKind::getBSSLocal();
else if (GVar->hasExternalLinkage())