Lines Matching defs:procRef

532 isElementalProcWithArrayArgs(const Fortran::evaluate::ProcedureRef &procRef) {
533 if (procRef.IsElemental())
535 procRef.arguments())
546 if (const auto *procRef = std::get_if<Fortran::evaluate::ProcedureRef>(&x.u))
547 return isElementalProcWithArrayArgs(*procRef);
639 isOptimizableTranspose(const Fortran::evaluate::ProcedureRef &procRef,
642 procRef.proc().GetSpecificIntrinsic();
646 procRef.arguments().at(0);
1845 const Fortran::evaluate::ProcedureRef &procRef,
1853 : procRef.proc().GetSymbol()->GetUltimate().name().ToString();
1856 procRef, *intrinsic, converter)) {
1885 procRef, *intrinsic, resultType, prepareOptionalArg, prepareOtherArg,
1904 for (const auto &arg : llvm::enumerate(procRef.arguments())) {
1990 isStatementFunctionCall(const Fortran::evaluate::ProcedureRef &procRef) {
1991 if (const Fortran::semantics::Symbol *symbol = procRef.proc().GetSymbol())
1999 ExtValue genStmtFunctionRef(const Fortran::evaluate::ProcedureRef &procRef) {
2000 const Fortran::semantics::Symbol *symbol = procRef.proc().GetSymbol();
2011 llvm::zip(details.dummyArgs(), procRef.arguments())) {
2091 ExtValue genProcedureRef(const Fortran::evaluate::ProcedureRef &procRef,
2093 ExtValue res = genRawProcedureRef(procRef, resultType);
2582 ExtValue genRawProcedureRef(const Fortran::evaluate::ProcedureRef &procRef,
2585 if (isElementalProcWithArrayArgs(procRef))
2590 procRef.proc().GetSpecificIntrinsic())
2591 return genIntrinsicRef(procRef, resultType, *intrinsic);
2593 if (Fortran::lower::isIntrinsicModuleProcRef(procRef) &&
2594 !Fortran::semantics::IsBindCProcedure(*procRef.proc().GetSymbol()))
2595 return genIntrinsicRef(procRef, resultType);
2597 if (isStatementFunctionCall(procRef))
2598 return genStmtFunctionRef(procRef);
2600 Fortran::lower::CallerInterface caller(procRef, converter);
2674 Fortran::semantics::IsBindCProcedure(*procRef.proc().GetSymbol()))
2936 ExtValue genval(const Fortran::evaluate::ProcedureRef &procRef) {
2938 if (procRef.hasAlternateReturns())
2940 return genProcedureRef(procRef, resTy);
3651 const Fortran::evaluate::ProcedureRef &procRef) {
3655 assert(procRef.arguments().size() == 2);
3656 const auto *lhs = procRef.arguments()[0].value().UnwrapExpr();
3657 const auto *rhs = procRef.arguments()[1].value().UnwrapExpr();
3661 Fortran::lower::CallerInterface(procRef, converter).getFuncOp();
3710 extractPassedArgFromProcRef(const Fortran::evaluate::ProcedureRef &procRef,
3714 procRef.arguments())
3721 Fortran::lower::CallerInterface caller(procRef, converter);
3728 return procRef.arguments()[idx];
3738 if (const auto *procRef =
3740 setLoweredProcRef(procRef);
4650 const Fortran::evaluate::ProcedureRef &procRef,
4658 : procRef.proc().GetSymbol()->GetUltimate().name().ToString();
4663 procRef, *intrinsic, converter)) {
4689 procRef, *intrinsic, retTy, prepareOptionalArg, prepareOtherArg,
4706 for (const auto &arg : llvm::enumerate(procRef.arguments())) {
4768 const Fortran::evaluate::ProcedureRef &procRef,
4773 if (const Fortran::semantics::Symbol *procSym = procRef.proc().GetSymbol())
4777 Fortran::lower::CallerInterface caller(procRef, converter);
4951 CC genTransposeProcRef(const Fortran::evaluate::ProcedureRef &procRef) {
4952 assert(procRef.arguments().size() == 1 &&
4954 const auto *argExpr = procRef.arguments()[0].value().UnwrapExpr();
4989 CC genProcRef(const Fortran::evaluate::ProcedureRef &procRef,
4992 setLoweredProcRef(&procRef);
4994 if (isOptimizableTranspose(procRef, converter))
4995 return genTransposeProcRef(procRef);
4997 if (procRef.IsElemental()) {
4999 procRef.proc().GetSpecificIntrinsic()) {
5009 return genElementalIntrinsicProcRef(procRef, retTy, *intrin);
5011 if (Fortran::lower::isIntrinsicModuleProcRef(procRef))
5012 return genElementalIntrinsicProcRef(procRef, retTy);
5013 if (ScalarExprLowering::isStatementFunctionCall(procRef))
5018 return genElementalUserDefinedProcRef(procRef, retTy);
5024 procRef.proc().GetSpecificIntrinsic()) {
5025 if (explicitSpaceIsActive() && procRef.Rank() == 0) {
5027 return [=, &procRef](IterSpace) {
5029 .genIntrinsicRef(procRef, retTy, *intrinsic);
5034 procRef, retTy, *intrinsic));
5038 if (explicitSpaceIsActive() && procRef.Rank() == 0) {
5040 return [=, &procRef](IterSpace) {
5042 return isPtrAssn ? sel.genRawProcedureRef(procRef, retTy)
5043 : sel.genProcedureRef(procRef, retTy);
5049 auto exv = isPtrAssn ? sel.genRawProcedureRef(procRef, retTy)
5050 : sel.genProcedureRef(procRef, retTy);
7317 void setLoweredProcRef(const Fortran::evaluate::ProcedureRef *procRef) {
7318 loweredProcRef = procRef;