Lines Matching refs:FI

448   CGFunctionInfo *FI = FunctionInfos.FindNodeOrInsertPos(ID, insertPos);
449 if (FI)
450 return *FI;
453 FI = CGFunctionInfo::create(CC, info, resultType, argTypes, required);
454 FunctionInfos.InsertNode(FI, insertPos);
456 bool inserted = FunctionsBeingProcessed.insert(FI); (void)inserted;
460 getABIInfo().computeInfo(*FI);
465 ABIArgInfo &retInfo = FI->getReturnInfo();
467 retInfo.setCoerceToType(ConvertType(FI->getReturnType()));
469 for (CGFunctionInfo::arg_iterator I = FI->arg_begin(), E = FI->arg_end();
474 bool erased = FunctionsBeingProcessed.erase(FI); (void)erased;
477 return *FI;
487 CGFunctionInfo *FI = new(buffer) CGFunctionInfo();
488 FI->CallingConvention = llvmCC;
489 FI->EffectiveCallingConvention = llvmCC;
490 FI->ASTCallingConvention = info.getCC();
491 FI->NoReturn = info.getNoReturn();
492 FI->ReturnsRetained = info.getProducesResult();
493 FI->Required = required;
494 FI->HasRegParm = info.getHasRegParm();
495 FI->RegParm = info.getRegParm();
496 FI->NumArgs = argTypes.size();
497 FI->getArgsBuffer()[0].type = resultType;
499 FI->getArgsBuffer()[i + 1].type = argTypes[i];
500 return FI;
830 bool CodeGenModule::ReturnTypeUsesSRet(const CGFunctionInfo &FI) {
831 return FI.getReturnInfo().isIndirect();
864 const CGFunctionInfo &FI = arrangeGlobalDeclaration(GD);
865 return GetFunctionType(FI);
869 CodeGenTypes::GetFunctionType(const CGFunctionInfo &FI) {
871 bool Inserted = FunctionsBeingProcessed.insert(&FI); (void)Inserted;
877 const ABIArgInfo &retAI = FI.getReturnInfo();
891 QualType ret = FI.getReturnType();
904 CGFunctionInfo::const_arg_iterator it = FI.arg_begin(), ie;
905 if (FI.isVariadic()) {
906 ie = it + FI.getRequiredArgs().getNumRequiredArgs();
908 ie = FI.arg_end();
949 bool Erased = FunctionsBeingProcessed.erase(&FI); (void)Erased;
952 return llvm::FunctionType::get(resultType, argTypes, FI.isVariadic());
970 void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI,
978 CallingConv = FI.getEffectiveCallingConvention();
980 if (FI.isNoReturn())
1053 QualType RetTy = FI.getReturnType();
1055 const ABIArgInfo &RetAI = FI.getReturnInfo();
1092 for (CGFunctionInfo::const_arg_iterator it = FI.arg_begin(),
1093 ie = FI.arg_end(); it != ie; ++it) {
1193 void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI,
1216 if (CGM.ReturnTypeUsesSRet(FI)) {
1224 assert(FI.arg_size() == Args.size() &&
1227 CGFunctionInfo::const_arg_iterator info_it = FI.arg_begin();
1617 void CodeGenFunction::EmitFunctionEpilog(const CGFunctionInfo &FI) {
1626 QualType RetTy = FI.getReturnType();
1627 const ABIArgInfo &RetAI = FI.getReturnInfo();
1694 !FI.isReturnsRetained() &&