Lines Matching defs:Globals

140     bool doMerge(SmallVectorImpl<GlobalVariable*> &Globals,
142 /// \brief Merge everything in \p Globals for which the corresponding bit
144 bool doMerge(const SmallVectorImpl<GlobalVariable *> &Globals,
202 bool GlobalMerge::doMerge(SmallVectorImpl<GlobalVariable*> &Globals,
206 std::stable_sort(Globals.begin(), Globals.end(),
214 BitVector AllGlobals(Globals.size());
216 return doMerge(Globals, AllGlobals, M, isConst, AddrSpace);
239 UsedGlobalSet(size_t Size) : Globals(Size), UsageCount(1) {}
240 BitVector Globals;
249 UsedGlobalSets.emplace_back(Globals.size());
277 for (size_t GI = 0, GE = Globals.size(); GI != GE; ++GI) {
278 GlobalVariable *GV = Globals[GI];
327 CreateGlobalSet().Globals.set(GI);
337 if (UsedGlobalSets[UGSIdx].Globals.test(GI)) {
359 NewUGS.Globals.set(GI);
360 NewUGS.Globals |= UsedGlobalSets[UGSIdx].Globals;
373 return UGS1.Globals.count() * UGS1.UsageCount <
374 UGS2.Globals.count() * UGS2.UsageCount;
381 BitVector AllGlobals(Globals.size());
386 if (UGS.Globals.count() > 1)
387 AllGlobals |= UGS.Globals;
389 return doMerge(Globals, AllGlobals, M, isConst, AddrSpace);
398 BitVector PickedGlobals(Globals.size());
405 if (PickedGlobals.anyCommon(UGS.Globals))
407 PickedGlobals |= UGS.Globals;
411 if (UGS.Globals.count() < 2)
413 Changed |= doMerge(Globals, UGS.Globals, M, isConst, AddrSpace);
419 bool GlobalMerge::doMerge(const SmallVectorImpl<GlobalVariable *> &Globals,
422 assert(Globals.size() > 1);
438 Type *Ty = Globals[j]->getValueType();
444 Inits.push_back(Globals[j]->getInitializer());
455 GlobalValue::LinkageTypes Linkage = Globals[k]->getLinkage();
456 std::string Name = Globals[k]->getName();
464 Globals[k]->replaceAllUsesWith(GEP);
465 Globals[k]->eraseFromParent();
528 DenseMap<unsigned, SmallVector<GlobalVariable*, 16> > Globals, ConstGlobals,
570 Globals[AddressSpace].push_back(&GV);
574 for (auto &P : Globals)