mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-17 00:27:31 +00:00
CodeGen: Use range-based for in GlobalMerge, NFC
llvm-svn: 249876
This commit is contained in:
parent
04d70bf128
commit
292e3a7f59
@ -520,43 +520,42 @@ bool GlobalMerge::doInitialization(Module &M) {
|
||||
setMustKeepGlobalVariables(M);
|
||||
|
||||
// Grab all non-const globals.
|
||||
for (Module::global_iterator I = M.global_begin(),
|
||||
E = M.global_end(); I != E; ++I) {
|
||||
for (auto &GV : M.globals()) {
|
||||
// Merge is safe for "normal" internal or external globals only
|
||||
if (I->isDeclaration() || I->isThreadLocal() || I->hasSection())
|
||||
if (GV.isDeclaration() || GV.isThreadLocal() || GV.hasSection())
|
||||
continue;
|
||||
|
||||
if (!(MergeExternalGlobals && I->hasExternalLinkage()) &&
|
||||
!I->hasInternalLinkage())
|
||||
if (!(MergeExternalGlobals && GV.hasExternalLinkage()) &&
|
||||
!GV.hasInternalLinkage())
|
||||
continue;
|
||||
|
||||
PointerType *PT = dyn_cast<PointerType>(I->getType());
|
||||
PointerType *PT = dyn_cast<PointerType>(GV.getType());
|
||||
assert(PT && "Global variable is not a pointer!");
|
||||
|
||||
unsigned AddressSpace = PT->getAddressSpace();
|
||||
|
||||
// Ignore fancy-aligned globals for now.
|
||||
unsigned Alignment = DL.getPreferredAlignment(I);
|
||||
Type *Ty = I->getValueType();
|
||||
unsigned Alignment = DL.getPreferredAlignment(&GV);
|
||||
Type *Ty = GV.getValueType();
|
||||
if (Alignment > DL.getABITypeAlignment(Ty))
|
||||
continue;
|
||||
|
||||
// Ignore all 'special' globals.
|
||||
if (I->getName().startswith("llvm.") ||
|
||||
I->getName().startswith(".llvm."))
|
||||
if (GV.getName().startswith("llvm.") ||
|
||||
GV.getName().startswith(".llvm."))
|
||||
continue;
|
||||
|
||||
// Ignore all "required" globals:
|
||||
if (isMustKeepGlobalVariable(I))
|
||||
if (isMustKeepGlobalVariable(&GV))
|
||||
continue;
|
||||
|
||||
if (DL.getTypeAllocSize(Ty) < MaxOffset) {
|
||||
if (TargetLoweringObjectFile::getKindForGlobal(I, *TM).isBSSLocal())
|
||||
BSSGlobals[AddressSpace].push_back(I);
|
||||
else if (I->isConstant())
|
||||
ConstGlobals[AddressSpace].push_back(I);
|
||||
if (TargetLoweringObjectFile::getKindForGlobal(&GV, *TM).isBSSLocal())
|
||||
BSSGlobals[AddressSpace].push_back(&GV);
|
||||
else if (GV.isConstant())
|
||||
ConstGlobals[AddressSpace].push_back(&GV);
|
||||
else
|
||||
Globals[AddressSpace].push_back(I);
|
||||
Globals[AddressSpace].push_back(&GV);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user