Lines Matching refs:procRef
486 isElementalProcWithArrayArgs(const Fortran::evaluate::ProcedureRef &procRef) { in isElementalProcWithArrayArgs() argument
487 if (procRef.IsElemental()) in isElementalProcWithArrayArgs()
489 procRef.arguments()) in isElementalProcWithArrayArgs()
500 if (const auto *procRef = std::get_if<Fortran::evaluate::ProcedureRef>(&x.u)) in isElementalProcWithArrayArgs() local
501 return isElementalProcWithArrayArgs(*procRef); in isElementalProcWithArrayArgs()
588 isIntrinsicModuleProcRef(const Fortran::evaluate::ProcedureRef &procRef) { in isIntrinsicModuleProcRef() argument
589 const Fortran::semantics::Symbol *symbol = procRef.proc().GetSymbol(); in isIntrinsicModuleProcRef()
607 isOptimizableTranspose(const Fortran::evaluate::ProcedureRef &procRef) { in isOptimizableTranspose() argument
609 procRef.proc().GetSpecificIntrinsic(); in isOptimizableTranspose()
2190 const Fortran::evaluate::ProcedureRef &procRef, in genIntrinsicRef() argument
2198 : procRef.proc().GetSymbol()->GetUltimate().name().ToString(); in genIntrinsicRef()
2201 procRef, *intrinsic, converter)) { in genIntrinsicRef()
2214 procRef, *intrinsic, resultType, prepareOptionalArg, prepareOtherArg, in genIntrinsicRef()
2233 for (const auto &arg : llvm::enumerate(procRef.arguments())) { in genIntrinsicRef()
2296 isStatementFunctionCall(const Fortran::evaluate::ProcedureRef &procRef) { in isStatementFunctionCall() argument
2297 if (const Fortran::semantics::Symbol *symbol = procRef.proc().GetSymbol()) in isStatementFunctionCall()
2305 ExtValue genStmtFunctionRef(const Fortran::evaluate::ProcedureRef &procRef) { in genStmtFunctionRef() argument
2306 const Fortran::semantics::Symbol *symbol = procRef.proc().GetSymbol(); in genStmtFunctionRef()
2317 llvm::zip(details.dummyArgs(), procRef.arguments())) { in genStmtFunctionRef()
2442 ExtValue genProcedureRef(const Fortran::evaluate::ProcedureRef &procRef, in genProcedureRef() argument
2444 ExtValue res = genRawProcedureRef(procRef, resultType); in genProcedureRef()
3021 ExtValue genRawProcedureRef(const Fortran::evaluate::ProcedureRef &procRef, in genRawProcedureRef() argument
3024 if (isElementalProcWithArrayArgs(procRef)) in genRawProcedureRef()
3029 procRef.proc().GetSpecificIntrinsic()) in genRawProcedureRef()
3030 return genIntrinsicRef(procRef, resultType, *intrinsic); in genRawProcedureRef()
3032 if (isIntrinsicModuleProcRef(procRef)) in genRawProcedureRef()
3033 return genIntrinsicRef(procRef, resultType); in genRawProcedureRef()
3035 if (isStatementFunctionCall(procRef)) in genRawProcedureRef()
3036 return genStmtFunctionRef(procRef); in genRawProcedureRef()
3038 Fortran::lower::CallerInterface caller(procRef, converter); in genRawProcedureRef()
3227 ExtValue genval(const Fortran::evaluate::ProcedureRef &procRef) { in genval() argument
3229 if (procRef.hasAlternateReturns()) in genval()
3231 return genProcedureRef(procRef, resTy); in genval()
3914 const Fortran::evaluate::ProcedureRef &procRef) { in lowerElementalUserAssignment() argument
3918 assert(procRef.arguments().size() == 2); in lowerElementalUserAssignment()
3919 const auto *lhs = procRef.arguments()[0].value().UnwrapExpr(); in lowerElementalUserAssignment()
3920 const auto *rhs = procRef.arguments()[1].value().UnwrapExpr(); in lowerElementalUserAssignment()
3924 Fortran::lower::CallerInterface(procRef, converter).getFuncOp(); in lowerElementalUserAssignment()
4847 const Fortran::evaluate::ProcedureRef &procRef, in genElementalIntrinsicProcRef() argument
4855 : procRef.proc().GetSymbol()->GetUltimate().name().ToString(); in genElementalIntrinsicProcRef()
4860 procRef, *intrinsic, converter)) { in genElementalIntrinsicProcRef()
4883 procRef, *intrinsic, retTy, prepareOptionalArg, prepareOtherArg, in genElementalIntrinsicProcRef()
4900 for (const auto &arg : llvm::enumerate(procRef.arguments())) { in genElementalIntrinsicProcRef()
4963 const Fortran::evaluate::ProcedureRef &procRef, in genElementalUserDefinedProcRef() argument
4968 if (const Fortran::semantics::Symbol *procSym = procRef.proc().GetSymbol()) in genElementalUserDefinedProcRef()
4972 Fortran::lower::CallerInterface caller(procRef, converter); in genElementalUserDefinedProcRef()
5100 CC genTransposeProcRef(const Fortran::evaluate::ProcedureRef &procRef) { in genTransposeProcRef() argument
5101 assert(procRef.arguments().size() == 1 && in genTransposeProcRef()
5103 const auto *argExpr = procRef.arguments()[0].value().UnwrapExpr(); in genTransposeProcRef()
5138 CC genProcRef(const Fortran::evaluate::ProcedureRef &procRef, in genProcRef() argument
5142 if (isOptimizableTranspose(procRef)) in genProcRef()
5143 return genTransposeProcRef(procRef); in genProcRef()
5145 if (procRef.IsElemental()) { in genProcRef()
5147 procRef.proc().GetSpecificIntrinsic()) { in genProcRef()
5157 return genElementalIntrinsicProcRef(procRef, retTy, *intrin); in genProcRef()
5159 if (isIntrinsicModuleProcRef(procRef)) in genProcRef()
5160 return genElementalIntrinsicProcRef(procRef, retTy); in genProcRef()
5161 if (ScalarExprLowering::isStatementFunctionCall(procRef)) in genProcRef()
5166 return genElementalUserDefinedProcRef(procRef, retTy); in genProcRef()
5172 procRef.proc().GetSpecificIntrinsic()) { in genProcRef()
5173 if (explicitSpaceIsActive() && procRef.Rank() == 0) { in genProcRef()
5175 return [=, &procRef](IterSpace) { in genProcRef()
5177 .genIntrinsicRef(procRef, retTy, *intrinsic); in genProcRef()
5182 procRef, retTy, *intrinsic)); in genProcRef()
5186 if (explicitSpaceIsActive() && procRef.Rank() == 0) { in genProcRef()
5188 return [=, &procRef](IterSpace) { in genProcRef()
5190 return isPtrAssn ? sel.genRawProcedureRef(procRef, retTy) in genProcRef()
5191 : sel.genProcedureRef(procRef, retTy); in genProcRef()
5197 auto exv = isPtrAssn ? sel.genRawProcedureRef(procRef, retTy) in genProcRef()
5198 : sel.genProcedureRef(procRef, retTy); in genProcRef()