Lines Matching refs:GV
294 static bool globalVariableNeedsRedirect(GlobalVariable *GV) { in globalVariableNeedsRedirect() argument
297 if (GV->hasAttribute("allow_direct_access_in_hot_patch_function")) in globalVariableNeedsRedirect()
301 if (!GV->isConstant()) { in globalVariableNeedsRedirect()
302 if (GV->getName().starts_with("??_R")) { in globalVariableNeedsRedirect()
316 return TypeContainsPointers(GV->getValueType()); in globalVariableNeedsRedirect()
348 GlobalVariable *GV) { in getOrCreateRefVariable() argument
349 GlobalVariable *&ReplaceWithRefGV = RefMapping.try_emplace(GV).first->second; in getOrCreateRefVariable()
365 ConstantExpr::getGetElementPtr(PtrTy, GV, ArrayRef<Value *>{}); in getOrCreateRefVariable()
369 AddrOfOldGV, Twine("__ref_").concat(GV->getName()), in getOrCreateRefVariable()
375 nullptr, Layout.getTypeSizeInBits(GV->getValueType())); in getOrCreateRefVariable()
400 GlobalVariable *GV = cast<GlobalVariable>(C); in rewriteGlobalVariablesInConstant() local
401 if (globalVariableNeedsRedirect(GV)) { in rewriteGlobalVariablesInConstant()
402 return GVLoadMap.at(GV); in rewriteGlobalVariablesInConstant()
453 if (GlobalVariable *GV = dyn_cast<GlobalVariable>(V)) { in searchConstantExprForGlobalVariables() local
454 if (globalVariableNeedsRedirect(GV)) { in searchConstantExprForGlobalVariables()
455 GVLoadMap[GV] = nullptr; in searchConstantExprForGlobalVariables()
519 GlobalVariable *GV = cast<GlobalVariable>(V); in runOnFunction() local
520 if (globalVariableNeedsRedirect(GV)) { in runOnFunction()
521 GVLoadMap.insert(std::make_pair(GV, nullptr)); in runOnFunction()
565 for (auto &[GV, LoadValue] : GVLoadMap) { in runOnFunction()
567 GlobalVariable *RefGV = getOrCreateRefVariable(F, RefMapping, GV); in runOnFunction()
587 GlobalVariable *GV = cast<GlobalVariable>(OperandValue); in runOnFunction() local
588 NewOperandValue = GVLoadMap.at(GV); in runOnFunction()