Lines Matching refs:GV
39 static bool splitGlobal(GlobalVariable &GV) { in splitGlobal() argument
42 if (!GV.hasLocalLinkage()) in splitGlobal()
46 auto *Init = dyn_cast_or_null<ConstantStruct>(GV.getInitializer()); in splitGlobal()
54 for (User *U : GV.users()) { in splitGlobal()
67 GV.getMetadata(LLVMContext::MD_type, Types); in splitGlobal()
69 const DataLayout &DL = GV.getParent()->getDataLayout(); in splitGlobal()
72 IntegerType *Int32Ty = Type::getInt32Ty(GV.getContext()); in splitGlobal()
78 new GlobalVariable(*GV.getParent(), Init->getOperand(I)->getType(), in splitGlobal()
79 GV.isConstant(), GlobalValue::PrivateLinkage, in splitGlobal()
80 Init->getOperand(I), GV.getName() + "." + utostr(I)); in splitGlobal()
107 *MDNode::get(GV.getContext(), in splitGlobal()
113 if (GV.hasMetadata(LLVMContext::MD_vcall_visibility)) in splitGlobal()
114 SplitGV->setVCallVisibilityMetadata(GV.getVCallVisibility()); in splitGlobal()
117 for (User *U : GV.users()) { in splitGlobal()
136 if (!GV.use_empty()) in splitGlobal()
137 GV.replaceAllUsesWith(PoisonValue::get(GV.getType())); in splitGlobal()
138 GV.eraseFromParent(); in splitGlobal()
159 for (GlobalVariable &GV : llvm::make_early_inc_range(M.globals())) in splitGlobals()
160 Changed |= splitGlobal(GV); in splitGlobals()