Lines Matching refs:Globals
154 bool doMerge(SmallVectorImpl<GlobalVariable *> &Globals, Module &M,
159 bool doMerge(const SmallVectorImpl<GlobalVariable *> &Globals,
251 bool GlobalMergeImpl::doMerge(SmallVectorImpl<GlobalVariable *> &Globals, in doMerge() argument
257 Globals, [&DL](const GlobalVariable *GV1, const GlobalVariable *GV2) { in doMerge()
265 BitVector AllGlobals(Globals.size()); in doMerge()
267 return doMerge(Globals, AllGlobals, M, isConst, AddrSpace); in doMerge()
290 BitVector Globals; in doMerge() member
293 UsedGlobalSet(size_t Size) : Globals(Size) {} in doMerge()
301 UsedGlobalSets.emplace_back(Globals.size()); in doMerge()
329 for (size_t GI = 0, GE = Globals.size(); GI != GE; ++GI) { in doMerge()
330 GlobalVariable *GV = Globals[GI]; in doMerge()
378 CreateGlobalSet().Globals.set(GI); in doMerge()
388 if (UsedGlobalSets[UGSIdx].Globals.test(GI)) { in doMerge()
410 NewUGS.Globals.set(GI); in doMerge()
411 NewUGS.Globals |= UsedGlobalSets[UGSIdx].Globals; in doMerge()
424 return UGS1.Globals.count() * UGS1.UsageCount < in doMerge()
425 UGS2.Globals.count() * UGS2.UsageCount; in doMerge()
432 BitVector AllGlobals(Globals.size()); in doMerge()
436 if (UGS.Globals.count() > 1) in doMerge()
437 AllGlobals |= UGS.Globals; in doMerge()
439 return doMerge(Globals, AllGlobals, M, isConst, AddrSpace); in doMerge()
448 BitVector PickedGlobals(Globals.size()); in doMerge()
454 if (PickedGlobals.anyCommon(UGS.Globals)) in doMerge()
456 PickedGlobals |= UGS.Globals; in doMerge()
460 if (UGS.Globals.count() < 2) in doMerge()
462 Changed |= doMerge(Globals, UGS.Globals, M, isConst, AddrSpace); in doMerge()
468 bool GlobalMergeImpl::doMerge(const SmallVectorImpl<GlobalVariable *> &Globals, in doMerge() argument
471 assert(Globals.size() > 1); in doMerge()
494 Type *Ty = Globals[j]->getValueType(); in doMerge()
497 Align Alignment = DL.getPreferredAlign(Globals[j]); in doMerge()
510 Inits.push_back(Globals[j]->getInitializer()); in doMerge()
515 if (Globals[j]->hasExternalLinkage() && !HasExternal) { in doMerge()
517 FirstExternalName = Globals[j]->getName(); in doMerge()
552 MergedGV->setSection(Globals[i]->getSection()); in doMerge()
556 GlobalValue::LinkageTypes Linkage = Globals[k]->getLinkage(); in doMerge()
557 std::string Name(Globals[k]->getName()); in doMerge()
558 GlobalValue::VisibilityTypes Visibility = Globals[k]->getVisibility(); in doMerge()
560 Globals[k]->getDLLStorageClass(); in doMerge()
564 MergedGV->copyMetadata(Globals[k], in doMerge()
573 Globals[k]->replaceAllUsesWith(GEP); in doMerge()
574 Globals[k]->eraseFromParent(); in doMerge()
646 Globals, ConstGlobals, BSSGlobals; in run() local
701 Globals[{AddressSpace, Section}].push_back(&GV); in run()
705 for (auto &P : Globals) in run()