Lines Matching refs:G
400 void replaceBy(Function *G) const { in replaceBy()
401 assert(!(*this < FunctionNode(G)) && !(FunctionNode(G) < *this) && in replaceBy()
404 F = G; in replaceBy()
1123 void mergeTwoFunctions(Function *F, Function *G);
1126 void writeThunkOrAlias(Function *F, Function *G);
1130 void writeThunk(Function *F, Function *G);
1133 void writeAlias(Function *F, Function *G);
1136 void replaceFunctionInTree(FnTreeType::iterator &IterToF, Function *G);
1292 void MergeFunctions::writeThunkOrAlias(Function *F, Function *G) { in writeThunkOrAlias() argument
1293 if (HasGlobalAliases && G->hasUnnamedAddr()) { in writeThunkOrAlias()
1294 if (G->hasExternalLinkage() || G->hasLocalLinkage() || in writeThunkOrAlias()
1295 G->hasWeakLinkage()) { in writeThunkOrAlias()
1296 writeAlias(F, G); in writeThunkOrAlias()
1301 writeThunk(F, G); in writeThunkOrAlias()
1334 void MergeFunctions::writeThunk(Function *F, Function *G) { in writeThunk() argument
1335 if (!G->mayBeOverridden()) { in writeThunk()
1337 replaceDirectCallers(G, F); in writeThunk()
1342 if (G->hasLocalLinkage() && G->use_empty()) { in writeThunk()
1343 G->eraseFromParent(); in writeThunk()
1347 Function *NewG = Function::Create(G->getFunctionType(), G->getLinkage(), "", in writeThunk()
1348 G->getParent()); in writeThunk()
1370 NewG->copyAttributesFrom(G); in writeThunk()
1371 NewG->takeName(G); in writeThunk()
1372 removeUsers(G); in writeThunk()
1373 G->replaceAllUsesWith(NewG); in writeThunk()
1374 G->eraseFromParent(); in writeThunk()
1381 void MergeFunctions::writeAlias(Function *F, Function *G) { in writeAlias() argument
1382 PointerType *PTy = G->getType(); in writeAlias()
1383 auto *GA = GlobalAlias::create(PTy, G->getLinkage(), "", F); in writeAlias()
1384 F->setAlignment(std::max(F->getAlignment(), G->getAlignment())); in writeAlias()
1385 GA->takeName(G); in writeAlias()
1386 GA->setVisibility(G->getVisibility()); in writeAlias()
1387 removeUsers(G); in writeAlias()
1388 G->replaceAllUsesWith(GA); in writeAlias()
1389 G->eraseFromParent(); in writeAlias()
1396 void MergeFunctions::mergeTwoFunctions(Function *F, Function *G) { in mergeTwoFunctions() argument
1398 assert(G->mayBeOverridden()); in mergeTwoFunctions()
1408 unsigned MaxAlignment = std::max(G->getAlignment(), H->getAlignment()); in mergeTwoFunctions()
1411 writeAlias(F, G); in mergeTwoFunctions()
1414 writeThunk(F, G); in mergeTwoFunctions()
1422 writeThunkOrAlias(F, G); in mergeTwoFunctions()
1430 Function *G) { in replaceFunctionInTree() argument
1435 assert(((F->mayBeOverridden() && G->mayBeOverridden()) || in replaceFunctionInTree()
1436 (!F->mayBeOverridden() && !G->mayBeOverridden())) && in replaceFunctionInTree()
1440 IterToF->replaceBy(G); in replaceFunctionInTree()