Lines Matching refs:F

66 static void findUses(Value *V, Function &F,  in findUses()  argument
71 findUses(BC, F, Uses, ConstantBCs); in findUses()
73 findUses(A, F, Uses, ConstantBCs); in findUses()
74 else if (U.get()->getType() != F.getType()) { in findUses()
89 Uses.push_back(std::make_pair(&U, &F)); in findUses()
117 static Function *createWrapper(Function *F, FunctionType *Ty) { in createWrapper() argument
118 Module *M = F->getParent(); in createWrapper()
121 F->getName() + "_bitcast", M); in createWrapper()
129 FunctionType::param_iterator PI = F->getFunctionType()->param_begin(); in createWrapper()
130 FunctionType::param_iterator PE = F->getFunctionType()->param_end(); in createWrapper()
134 Type *ExpectedRtnType = F->getFunctionType()->getReturnType(); in createWrapper()
137 if ((F->getFunctionType()->getNumParams() != Ty->getNumParams()) || in createWrapper()
138 (F->getFunctionType()->isVarArg() != Ty->isVarArg()) || in createWrapper()
156 << F->getName() << "\n"); in createWrapper()
160 << F->getName() << "\n"); in createWrapper()
172 if (F->isVarArg()) in createWrapper()
176 CallInst *Call = CallInst::Create(F, Args, "", BB); in createWrapper()
178 Type *ExpectedRtnType = F->getFunctionType()->getReturnType(); in createWrapper()
196 << F->getName() << "\n"); in createWrapper()
200 << F->getName() << "\n"); in createWrapper()
211 F->getName() + "_bitcast_invalid", M); in createWrapper()
214 Wrapper->setName(F->getName() + "_bitcast_invalid"); in createWrapper()
216 LLVM_DEBUG(dbgs() << "createWrapper: no wrapper needed: " << F->getName() in createWrapper()
221 LLVM_DEBUG(dbgs() << "createWrapper: " << F->getName() << "\n"); in createWrapper()
245 for (Function &F : M) { in runOnModule()
248 if (F.getCallingConv() == CallingConv::Swift) in runOnModule()
250 findUses(&F, F, Uses, ConstantBCs); in runOnModule()
256 if (F.getName() == "main") { in runOnModule()
257 Main = &F; in runOnModule()
263 if (shouldFixMainFunction(F.getFunctionType(), MainTy)) { in runOnModule()
265 << *F.getFunctionType() << "\n"); in runOnModule()
272 Uses.push_back(std::make_pair(UseMain, &F)); in runOnModule()
281 Function *F = UseFunc.second; in runOnModule() local
291 auto Pair = Wrappers.insert(std::make_pair(std::make_pair(F, Ty), nullptr)); in runOnModule()
293 Pair.first->second = createWrapper(F, Ty); in runOnModule()