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()
50 const DataLayout &DL = GV.getDataLayout(); in splitGlobal()
53 unsigned IndexWidth = DL.getIndexTypeSizeInBits(GV.getType()); in splitGlobal()
67 for (User *U : GV.users()) { in splitGlobal()
108 GV.getMetadata(LLVMContext::MD_type, Types); in splitGlobal()
110 IntegerType *Int32Ty = Type::getInt32Ty(GV.getContext()); in splitGlobal()
116 new GlobalVariable(*GV.getParent(), Init->getOperand(I)->getType(), in splitGlobal()
117 GV.isConstant(), GlobalValue::PrivateLinkage, in splitGlobal()
118 Init->getOperand(I), GV.getName() + "." + utostr(I)); in splitGlobal()
145 *MDNode::get(GV.getContext(), in splitGlobal()
151 if (GV.hasMetadata(LLVMContext::MD_vcall_visibility)) in splitGlobal()
152 SplitGV->setVCallVisibilityMetadata(GV.getVCallVisibility()); in splitGlobal()
158 Type::getInt8Ty(GV.getContext()), SplitGlobals[Info.MemberIndex], in splitGlobal()
159 ConstantInt::get(GV.getContext(), Info.MemberRelativeOffset), in splitGlobal()
166 if (!GV.use_empty()) in splitGlobal()
167 GV.replaceAllUsesWith(PoisonValue::get(GV.getType())); in splitGlobal()
168 GV.eraseFromParent(); in splitGlobal()
189 for (GlobalVariable &GV : llvm::make_early_inc_range(M.globals())) in splitGlobals()
190 Changed |= splitGlobal(GV); in splitGlobals()