Lines Matching refs:GV
61 const GlobalValue *GV, const User *U) { in addNonConstUser() argument
66 GVtoClusterMap.unionSets(GV, F); in addNonConstUser()
68 GVtoClusterMap.unionSets(GV, GVU); in addNonConstUser()
76 const GlobalValue *GV, const Value *V) { in addAllGlobalValueUsers() argument
87 addNonConstUser(GVtoClusterMap, GV, UU); in addAllGlobalValueUsers()
92 static const GlobalObject *getGVPartitioningRoot(const GlobalValue *GV) { in getGVPartitioningRoot() argument
93 const GlobalObject *GO = GV->getAliaseeObject(); in getGVPartitioningRoot()
112 auto recordGVSet = [&GVtoClusterMap, &ComdatMembers](GlobalValue &GV) { in findPartitions() argument
113 if (GV.isDeclaration()) in findPartitions()
116 if (!GV.hasName()) in findPartitions()
117 GV.setName("__llvmsplit_unnamed"); in findPartitions()
123 if (const Comdat *C = GV.getComdat()) { in findPartitions()
126 GVtoClusterMap.unionSets(Member, &GV); in findPartitions()
128 Member = &GV; in findPartitions()
133 if (const GlobalObject *Root = getGVPartitioningRoot(&GV)) in findPartitions()
134 if (&GV != Root) in findPartitions()
135 GVtoClusterMap.unionSets(&GV, Root); in findPartitions()
137 if (const Function *F = dyn_cast<Function>(&GV)) { in findPartitions()
146 if (GV.hasLocalLinkage()) in findPartitions()
147 addAllGlobalValueUsers(GVtoClusterMap, &GV, &GV); in findPartitions()
218 static void externalize(GlobalValue *GV) { in externalize() argument
219 if (GV->hasLocalLinkage()) { in externalize()
220 GV->setLinkage(GlobalValue::ExternalLinkage); in externalize()
221 GV->setVisibility(GlobalValue::HiddenVisibility); in externalize()
226 if (!GV->hasName()) in externalize()
227 GV->setName("__llvmsplit_unnamed"); in externalize()
231 static bool isInPartition(const GlobalValue *GV, unsigned I, unsigned N) { in isInPartition() argument
232 if (const GlobalObject *Root = getGVPartitioningRoot(GV)) in isInPartition()
233 GV = Root; in isInPartition()
236 if (const Comdat *C = GV->getComdat()) in isInPartition()
239 Name = GV->getName(); in isInPartition()
258 for (GlobalVariable &GV : M.globals()) in SplitModule()
259 externalize(&GV); in SplitModule()
277 CloneModule(M, VMap, [&](const GlobalValue *GV) { in SplitModule() argument
278 if (ClusterIDMap.count(GV)) in SplitModule()
279 return (ClusterIDMap[GV] == I); in SplitModule()
281 return isInPartition(GV, I, N); in SplitModule()