Lines Matching refs:Function

174   mutable AssertingVH<Function> F;
179 FunctionNode(Function *F) : F(F), Hash(StructuralHash(*F)) {} in FunctionNode()
181 Function *getFunc() const { return F; } in getFunc()
186 void replaceBy(Function *G) const { in replaceBy()
238 bool insert(Function *NewFunction);
242 void remove(Function *F);
250 void replaceDirectCallers(Function *Old, Function *New);
255 void mergeTwoFunctions(Function *F, Function *G);
266 void eraseTail(Function *G);
279 void writeThunk(Function *F, Function *G);
282 void writeAlias(Function *F, Function *G);
286 bool writeThunkOrAlias(Function *F, Function *G);
289 void replaceFunctionInTree(const FunctionNode &FN, Function *G);
300 DenseMap<AssertingVH<Function>, FnTreeType::iterator> FNodesInTree;
327 Function *F1 = cast<Function>(*I); in doFunctionalCheck()
328 Function *F2 = cast<Function>(*J); in doFunctionalCheck()
349 Function *F3 = cast<Function>(*K); in doFunctionalCheck()
388 static bool hasDistinctMetadataIntrinsic(const Function &F) { in hasDistinctMetadataIntrinsic()
408 static bool isEligibleForMerging(Function &F) { in isEligibleForMerging()
423 std::vector<std::pair<IRHash, Function *>> HashedFuncs; in runOnModule()
424 for (Function &Func : M) { in runOnModule()
455 Function *F = cast<Function>(I); in runOnModule()
472 void MergeFunctions::replaceDirectCallers(Function *Old, Function *New) { in replaceDirectCallers()
545 void MergeFunctions::eraseTail(Function *G) { in eraseTail()
699 static bool canCreateThunkFor(Function *F) { in canCreateThunkFor()
716 static void copyMetadataIfPresent(Function *From, Function *To, in copyMetadataIfPresent()
732 void MergeFunctions::writeThunk(Function *F, Function *G) { in writeThunk()
737 Function *NewG = nullptr; in writeThunk()
751 NewG = Function::Create(G->getFunctionType(), G->getLinkage(), in writeThunk()
759 Function *H = MergeFunctionsPDI ? G : NewG; in writeThunk()
817 static bool canCreateAliasFor(Function *F) { in canCreateAliasFor()
828 void MergeFunctions::writeAlias(Function *F, Function *G) { in writeAlias()
853 bool MergeFunctions::writeThunkOrAlias(Function *F, Function *G) { in writeThunkOrAlias()
866 void MergeFunctions::mergeTwoFunctions(Function *F, Function *G) { in mergeTwoFunctions()
878 Function *NewF = Function::Create(F->getFunctionType(), F->getLinkage(), in mergeTwoFunctions()
942 Function *G) { in replaceFunctionInTree()
943 Function *F = FN.getFunc(); in replaceFunctionInTree()
961 static bool isFuncOrderCorrect(const Function *F, const Function *G) { in isFuncOrderCorrect()
980 bool MergeFunctions::insert(Function *NewFunction) { in insert()
996 Function *F = OldF.getFunc(); in insert()
1005 Function *DeleteF = NewFunction; in insert()
1012 void MergeFunctions::remove(Function *F) { in remove()