Lines Matching refs:F
48 bool unifyUnreachableBlocks(Function &F) { in unifyUnreachableBlocks() argument
51 for (BasicBlock &I : F) in unifyUnreachableBlocks()
59 BasicBlock::Create(F.getContext(), "UnifiedUnreachableBlock", &F); in unifyUnreachableBlocks()
60 new UnreachableInst(F.getContext(), UnreachableBlock); in unifyUnreachableBlocks()
70 bool unifyReturnBlocks(Function &F) { in unifyReturnBlocks() argument
73 for (BasicBlock &I : F) in unifyReturnBlocks()
83 BasicBlock *NewRetBlock = BasicBlock::Create(F.getContext(), in unifyReturnBlocks()
84 "UnifiedReturnBlock", &F); in unifyReturnBlocks()
87 if (F.getReturnType()->isVoidTy()) { in unifyReturnBlocks()
88 ReturnInst::Create(F.getContext(), nullptr, NewRetBlock); in unifyReturnBlocks()
91 PN = PHINode::Create(F.getReturnType(), ReturningBlocks.size(), in unifyReturnBlocks()
94 ReturnInst::Create(F.getContext(), PN, NewRetBlock); in unifyReturnBlocks()
116 bool UnifyFunctionExitNodesLegacyPass::runOnFunction(Function &F) { in runOnFunction() argument
118 Changed |= unifyUnreachableBlocks(F); in runOnFunction()
119 Changed |= unifyReturnBlocks(F); in runOnFunction()
123 PreservedAnalyses UnifyFunctionExitNodesPass::run(Function &F, in run() argument
126 Changed |= unifyUnreachableBlocks(F); in run()
127 Changed |= unifyReturnBlocks(F); in run()