Lines Matching refs:GV
66 } else if (auto *GV = dyn_cast<GlobalValue>(V)) { in ComputeDependencies() local
67 Deps.insert(GV); in ComputeDependencies()
83 void GlobalDCEPass::UpdateGVDependencies(GlobalValue &GV) { in UpdateGVDependencies() argument
85 for (User *User : GV.users()) in UpdateGVDependencies()
87 Deps.erase(&GV); // Remove self-reference. in UpdateGVDependencies()
93 if (VFESafeVTables.count(GVU) && isa<Function>(&GV)) { in UpdateGVDependencies()
95 << GV.getName() << "\n"); in UpdateGVDependencies()
98 GVDependencies[GVU].insert(&GV); in UpdateGVDependencies()
103 void GlobalDCEPass::MarkLive(GlobalValue &GV, in MarkLive() argument
105 auto const Ret = AliveGlobals.insert(&GV); in MarkLive()
110 Updates->push_back(&GV); in MarkLive()
111 if (Comdat *C = GV.getComdat()) { in MarkLive()
123 for (GlobalVariable &GV : M.globals()) { in ScanVTables()
125 GV.getMetadata(LLVMContext::MD_type, Types); in ScanVTables()
126 if (GV.isDeclaration() || Types.empty()) in ScanVTables()
140 TypeIdMap[TypeID].insert(std::make_pair(&GV, Offset)); in ScanVTables()
146 if (auto GO = dyn_cast<GlobalObject>(&GV)) { in ScanVTables()
151 LLVM_DEBUG(dbgs() << GV.getName() << " is safe for VFE\n"); in ScanVTables()
152 VFESafeVTables.insert(&GV); in ScanVTables()
268 for (GlobalVariable &GV : M.globals()) in run()
269 if (Comdat *C = GV.getComdat()) in run()
270 ComdatMembers.insert(std::make_pair(C, &GV)); in run()
328 for (GlobalVariable &GV : M.globals()) in run()
329 if (!AliveGlobals.count(&GV)) { in run()
330 DeadGlobalVars.push_back(&GV); // Keep track of dead globals in run()
331 if (GV.hasInitializer()) { in run()
332 Constant *Init = GV.getInitializer(); in run()
333 GV.setInitializer(nullptr); in run()
366 auto EraseUnusedGlobalValue = [&](GlobalValue *GV) { in run() argument
367 GV->removeDeadConstantUsers(); in run()
368 GV->eraseFromParent(); in run()
396 for (GlobalVariable *GV : DeadGlobalVars) in run()
397 EraseUnusedGlobalValue(GV); in run()