Lines Matching refs:F
66 static void findUses(Value *V, Function &F, in findUses() argument
70 findUses(BC, F, Uses); in findUses()
72 findUses(A, F, Uses); in findUses()
78 if (CB->getFunctionType() == F.getValueType()) in findUses()
81 Uses.push_back(std::make_pair(CB, &F)); in findUses()
109 static Function *createWrapper(Function *F, FunctionType *Ty) { in createWrapper() argument
110 Module *M = F->getParent(); in createWrapper()
113 F->getName() + "_bitcast", M); in createWrapper()
121 FunctionType::param_iterator PI = F->getFunctionType()->param_begin(); in createWrapper()
122 FunctionType::param_iterator PE = F->getFunctionType()->param_end(); in createWrapper()
126 Type *ExpectedRtnType = F->getFunctionType()->getReturnType(); in createWrapper()
129 if ((F->getFunctionType()->getNumParams() != Ty->getNumParams()) || in createWrapper()
130 (F->getFunctionType()->isVarArg() != Ty->isVarArg()) || in createWrapper()
148 << F->getName() << "\n"); in createWrapper()
152 << F->getName() << "\n"); in createWrapper()
164 if (F->isVarArg()) in createWrapper()
168 CallInst *Call = CallInst::Create(F, Args, "", BB); in createWrapper()
170 Type *ExpectedRtnType = F->getFunctionType()->getReturnType(); in createWrapper()
188 << F->getName() << "\n"); in createWrapper()
192 << F->getName() << "\n"); in createWrapper()
203 F->getName() + "_bitcast_invalid", M); in createWrapper()
206 Wrapper->setName(F->getName() + "_bitcast_invalid"); in createWrapper()
208 LLVM_DEBUG(dbgs() << "createWrapper: no wrapper needed: " << F->getName() in createWrapper()
213 LLVM_DEBUG(dbgs() << "createWrapper: " << F->getName() << "\n"); in createWrapper()
236 for (Function &F : M) { in runOnModule()
239 if (F.getCallingConv() == CallingConv::Swift) in runOnModule()
241 findUses(&F, F, Uses); in runOnModule()
247 if (F.getName() == "main") { in runOnModule()
248 Main = &F; in runOnModule()
253 if (shouldFixMainFunction(F.getFunctionType(), MainTy)) { in runOnModule()
255 << *F.getFunctionType() << "\n"); in runOnModule()
259 Uses.push_back(std::make_pair(CallMain, &F)); in runOnModule()
268 Function *F = UseFunc.second; in runOnModule() local
271 auto Pair = Wrappers.insert(std::make_pair(std::make_pair(F, Ty), nullptr)); in runOnModule()
273 Pair.first->second = createWrapper(F, Ty); in runOnModule()