Lines Matching refs:ExtValue
635 using ExtValue = fir::ExtendedValue; typedef in __anon67dfc8450c11::ScalarExprLowering
646 ExtValue genExtAddr(const Fortran::lower::SomeExpr &expr) { in genExtAddr()
652 ExtValue genBoxArg(const Fortran::lower::SomeExpr &expr) { in genBoxArg()
655 ExtValue result = gen(expr); in genBoxArg()
660 ExtValue genExtValue(const Fortran::lower::SomeExpr &expr) { in genExtValue()
675 ExtValue exv = std::visit( in genMutableBoxValue()
685 ExtValue genMutableBoxValueImpl(const T &) { in genMutableBoxValueImpl()
692 ExtValue genMutableBoxValueImpl(const Fortran::evaluate::NullPointer &) { in genMutableBoxValueImpl()
710 ExtValue
716 ExtValue
720 [&](const Fortran::evaluate::SymbolRef &sym) -> ExtValue { in genMutableBoxValueImpl()
723 [&](const Fortran::evaluate::Component &comp) -> ExtValue { in genMutableBoxValueImpl()
726 [&](const auto &) -> ExtValue { in genMutableBoxValueImpl()
734 ExtValue genMutableBoxValueImpl(const Fortran::evaluate::Expr<T> &expr) { in genMutableBoxValueImpl()
743 ExtValue e = genval(expr); in genunbox()
782 const ExtValue &left, const ExtValue &right) { in createCompareOp()
790 ExtValue left = genval(ex.left()); in createCompareOp()
796 const ExtValue &left, const ExtValue &right) { in createFltCmpOp()
804 ExtValue left = genval(ex.left()); in createFltCmpOp()
811 const ExtValue &left, const ExtValue &right) { in createCharCompare()
817 ExtValue left = genval(ex.left()); in createCharCompare()
823 ExtValue gen(Fortran::semantics::SymbolRef sym) { in gen()
835 ExtValue genLoad(const ExtValue &exv) { in genLoad()
839 ExtValue genval(Fortran::semantics::SymbolRef sym) { in genval()
841 ExtValue var = gen(sym); in genval()
860 ExtValue genval(const Fortran::evaluate::BOZLiteralConstant &) { in genval()
867 ExtValue genval(const Fortran::evaluate::ProcedureDesignator &proc) { in genval()
936 ExtValue genval(const Fortran::evaluate::NullPointer &) { in genval()
959 ExtValue genStructComponentInInitializer( in genStructComponentInInitializer()
1045 ExtValue genval(const Fortran::evaluate::StructureConstructor &ctor) { in genval()
1073 ExtValue to = fir::factory::componentToExtendedValue(builder, loc, coor); in genval()
1076 ExtValue value = genval(expr); in genval()
1080 ExtValue value = genval(expr); in genval()
1112 ExtValue genval(const Fortran::evaluate::ImpliedDoIndex &var) { in genval()
1116 ExtValue genval(const Fortran::evaluate::DescriptorInquiry &desc) { in genval()
1117 ExtValue exv = desc.base().IsSymbol() ? gen(getLastSym(desc.base())) in genval()
1145 ExtValue genval(const Fortran::evaluate::TypeParamInquiry &) { in genval()
1155 ExtValue genval(const Fortran::evaluate::ComplexComponent<KIND> &part) { in genval()
1160 ExtValue genval(const Fortran::evaluate::Negate<Fortran::evaluate::Type< in genval()
1168 ExtValue genval(const Fortran::evaluate::Negate<Fortran::evaluate::Type< in genval()
1173 ExtValue genval(const Fortran::evaluate::Negate<Fortran::evaluate::Type< in genval()
1179 mlir::Value createBinaryOp(const ExtValue &left, const ExtValue &right) { in createBinaryOp()
1189 ExtValue left = genval(ex.left()); in createBinaryOp()
1196 ExtValue genval(const Fortran::evaluate::GenBinEvOp<Fortran::evaluate::Type< \
1215 ExtValue genval( in GENBIN()
1224 ExtValue genval( in genval()
1234 ExtValue genval(const Fortran::evaluate::ComplexConstructor<KIND> &op) { in genval()
1241 ExtValue genval(const Fortran::evaluate::Concat<KIND> &op) { in genval()
1242 ExtValue lhs = genval(op.left()); in genval()
1243 ExtValue rhs = genval(op.right()); in genval()
1254 ExtValue
1297 ExtValue genval(const Fortran::evaluate::SetLength<KIND> &x) { in genval()
1304 ExtValue genval(const Fortran::evaluate::Relational<Fortran::evaluate::Type< in genval()
1310 ExtValue genval(const Fortran::evaluate::Relational<Fortran::evaluate::Type< in genval()
1316 ExtValue genval(const Fortran::evaluate::Relational<Fortran::evaluate::Type< in genval()
1321 ExtValue genval(const Fortran::evaluate::Relational<Fortran::evaluate::Type< in genval()
1326 ExtValue
1333 ExtValue
1340 [&](const fir::CharBoxValue &boxchar) -> ExtValue { in genval()
1384 [&](const fir::UnboxedValue &value) -> ExtValue { in genval()
1387 [&](auto &) -> ExtValue { in genval()
1393 ExtValue genval(const Fortran::evaluate::Parentheses<A> &op) { in genval()
1394 ExtValue input = genval(op.left()); in genval()
1402 ExtValue genval(const Fortran::evaluate::Not<KIND> &op) { in genval()
1411 ExtValue genval(const Fortran::evaluate::LogicalOperation<KIND> &op) { in genval()
1437 ExtValue genScalarLit( in genScalarLit()
1535 ExtValue
1600 ExtValue genArrayLit( in genArrayLit()
1727 ExtValue
1752 ExtValue genval(const Fortran::evaluate::ArrayConstructor<A> &) { in genval()
1756 ExtValue gen(const Fortran::evaluate::ComplexPart &x) { in gen()
1759 ExtValue exv = gen(x.complex()); in gen()
1771 ExtValue genval(const Fortran::evaluate::ComplexPart &x) { in genval()
1776 ExtValue gen(const Fortran::evaluate::Substring &s) { in gen()
1782 -> ExtValue { in gen()
1803 [&](const fir::CharBoxValue &x) -> ExtValue { in gen()
1806 [&](const fir::CharArrayBoxValue &) -> ExtValue { in gen()
1811 [&](const auto &) -> ExtValue { in gen()
1817 ExtValue genval(const Fortran::evaluate::Substring &ss) { in genval()
1823 ExtValue genval(const Fortran::evaluate::Subscript &subs) { in genval()
1832 ExtValue genSubscript(const Fortran::evaluate::Subscript &subs) { in genSubscript()
1836 ExtValue gen(const Fortran::evaluate::DataRef &dref) { in gen()
1839 ExtValue genval(const Fortran::evaluate::DataRef &dref) { in genval()
1868 ExtValue genComponent(const Fortran::evaluate::Component &cmpt) { in genComponent()
1872 ExtValue obj = gen(*base); in genComponent()
1892 ExtValue gen(const Fortran::evaluate::Component &cmpt) { in gen()
1900 [](auto &box) -> ExtValue { return box; }); in gen()
1903 ExtValue genval(const Fortran::evaluate::Component &cmpt) { in genval()
1927 ExtValue genval(const Fortran::semantics::Bound &bound) { in genval()
1945 ExtValue genCoordinateOp(const ExtValue &array, in genCoordinateOp()
1960 ExtValue subVal = genSubscript(subsc.value()); in genCoordinateOp()
1984 ExtValue genOffsetAndCoordinateOp(const ExtValue &array, in genOffsetAndCoordinateOp()
2005 ExtValue subVal = genSubscript(sub); in genOffsetAndCoordinateOp()
2040 [&](const fir::ArrayBoxValue &arr) -> ExtValue { in genOffsetAndCoordinateOp()
2048 [&](const fir::CharArrayBoxValue &arr) -> ExtValue { in genOffsetAndCoordinateOp()
2056 [&](const fir::BoxValue &arr) -> ExtValue { in genOffsetAndCoordinateOp()
2063 [&](const auto &) -> ExtValue { in genOffsetAndCoordinateOp()
2069 ExtValue genArrayCoorOp(const ExtValue &exv, in genArrayCoorOp()
2081 ExtValue subVal = genSubscript(sub); in genArrayCoorOp()
2095 ExtValue gen(const Fortran::evaluate::ArrayRef &aref) { in gen()
2096 ExtValue base = aref.base().IsSymbol() ? gen(getFirstSym(aref.base())) in gen()
2107 mlir::Value getLBound(const ExtValue &box, unsigned dim, mlir::Type ty) { in getLBound()
2115 ExtValue genval(const Fortran::evaluate::ArrayRef &aref) { in genval()
2119 ExtValue gen(const Fortran::evaluate::CoarrayRef &coref) { in gen()
2124 ExtValue genval(const Fortran::evaluate::CoarrayRef &coref) { in genval()
2130 ExtValue gen(const Fortran::evaluate::Designator<A> &des) { in gen()
2134 ExtValue genval(const Fortran::evaluate::Designator<A> &des) { in genval()
2146 ExtValue genFunctionRef(const Fortran::evaluate::FunctionRef<A> &funcRef) { in genFunctionRef()
2156 ExtValue gen(const Fortran::evaluate::FunctionRef<A> &funcRef) { in gen()
2157 ExtValue retVal = genFunctionRef(funcRef); in gen()
2163 ExtValue
2179 ExtValue lowerIntrinsicArgumentAsBox(const Fortran::lower::SomeExpr &expr) { in lowerIntrinsicArgumentAsBox()
2181 ExtValue exv = genBoxArg(expr); in lowerIntrinsicArgumentAsBox()
2189 ExtValue genIntrinsicRef( in genIntrinsicRef()
2194 llvm::SmallVector<ExtValue> operands; in genIntrinsicRef()
2202 using ExvAndPresence = std::pair<ExtValue, llvm::Optional<mlir::Value>>; in genIntrinsicRef()
2205 ExtValue optionalArg = lowerIntrinsicArgumentAsInquired(expr); in genIntrinsicRef()
2217 auto getArgument = [&](std::size_t i) -> ExtValue { in genIntrinsicRef()
2252 ExtValue optional = lowerIntrinsicArgumentAsInquired(*expr); in genIntrinsicRef()
2305 ExtValue genStmtFunctionRef(const Fortran::evaluate::ProcedureRef &procRef) { in genStmtFunctionRef()
2352 ExtValue result = genval(details.stmtFunction().value()); in genStmtFunctionRef()
2359 static ExtValue toExtendedValue(mlir::Location loc, mlir::Value base, in toExtendedValue()
2406 ExtValue genArrayTempFromMold(const ExtValue &mold, in genArrayTempFromMold()
2436 void genArrayCopy(ExtValue dest, ExtValue source) { in genArrayCopy()
2442 ExtValue genProcedureRef(const Fortran::evaluate::ProcedureRef &procRef, in genProcedureRef()
2444 ExtValue res = genRawProcedureRef(procRef, resultType); in genProcedureRef()
2458 ExtValue genCallOpAndResult(Fortran::lower::CallerInterface &caller, in genCallOpAndResult()
2493 auto allocatedResult = [&]() -> llvm::Optional<ExtValue> { in genCallOpAndResult()
2712 ExtValue genTempExtAddr(const Fortran::lower::SomeExpr &expr) { in genTempExtAddr()
2726 [&](const fir::CharBoxValue &boxChar) -> ExtValue { in genTempExtAddr()
2730 [&](const fir::UnboxedValue &v) -> ExtValue { in genTempExtAddr()
2739 [&](const fir::BoxValue &x) -> ExtValue { in genTempExtAddr()
2754 [&](const auto &) -> ExtValue { in genTempExtAddr()
2764 ExtValue var;
2765 ExtValue temp;
2781 ExtValue readIfBoxValue(const ExtValue &exv) { in readIfBoxValue()
2791 ExtValue genCopyIn(const ExtValue &actualArg, in genCopyIn()
2799 ExtValue temp = genArrayTempFromMold(actualArg, tempName); in genCopyIn()
2859 std::pair<ExtValue, mlir::Value>
2883 ExtValue actualArg = gen(expr); in prepareActualThatMayBeAbsent()
2889 ExtValue safeToReadBox = in prepareActualThatMayBeAbsent()
2897 createScalarTempForArgThatMayBeAbsent(ExtValue actualArg, in createScalarTempForArgThatMayBeAbsent()
2934 ExtValue prepareActualToBaseAddressLike( in prepareActualToBaseAddressLike()
2955 auto argAddr = [&]() -> ExtValue { in prepareActualToBaseAddressLike()
2960 ExtValue baseAddr; in prepareActualToBaseAddressLike()
2964 const ExtValue &actualArg = actualArgBind; in prepareActualToBaseAddressLike()
2972 ExtValue temp = in prepareActualToBaseAddressLike()
2995 ExtValue box = genBoxArg(expr); in prepareActualToBaseAddressLike()
3005 ExtValue actualArg = genExtAddr(expr); in prepareActualToBaseAddressLike()
3021 ExtValue genRawProcedureRef(const Fortran::evaluate::ProcedureRef &procRef, in genRawProcedureRef()
3064 ExtValue argVal = genval(*expr); in genRawProcedureRef()
3123 ExtValue argAddr = in genRawProcedureRef()
3190 ExtValue argRef = genExtAddr(*expr); in genRawProcedureRef()
3194 ExtValue argRef = genExtAddr(*expr); in genRawProcedureRef()
3203 ExtValue result = genCallOpAndResult(caller, callSiteType, resultType); in genRawProcedureRef()
3220 ExtValue genval(const Fortran::evaluate::FunctionRef<A> &funcRef) { in genval()
3221 ExtValue result = genFunctionRef(funcRef); in genval()
3227 ExtValue genval(const Fortran::evaluate::ProcedureRef &procRef) { in genval()
3255 ExtValue asArray(const A &x) { in asArray()
3263 ExtValue asArrayArg(const Fortran::evaluate::Expr<A> &x) { in asArrayArg()
3267 ExtValue asArrayArg(const Fortran::evaluate::Expr<A> &x, const B &y) { in asArrayArg()
3271 ExtValue asArrayArg(const Fortran::evaluate::Designator<A> &, const B &x) { in asArrayArg()
3279 ExtValue asArrayArg(const A &, const B &x) { in asArrayArg()
3286 ExtValue gen(const Fortran::evaluate::Expr<A> &x) { in gen()
3299 ExtValue genval(const Fortran::evaluate::Expr<A> &x) { in genval()
3307 ExtValue genval(const Fortran::evaluate::Expr<Fortran::evaluate::Type< in genval()
3321 ExtValue genref(const A &a) { in genref()
3325 ExtValue genref(const A &a) { in genref()
3341 ExtValue genref(const T<A> &x) { in genref()
3518 using ExtValue = fir::ExtendedValue; typedef in __anon67dfc8455a11::ArrayExprLowering
3580 ExtValue exv = lowerArrayExpression(rhs); in lowerArrayAssignment()
3686 void lowerAllocatableArrayAssignment(ExtValue lhs, CC rhsCC) { in lowerAllocatableArrayAssignment()
3699 ExtValue exv = lowerArrayExpression(rhsCC, destination.getType()); in lowerAllocatableArrayAssignment()
3776 static ExtValue
3786 ExtValue lowerBoxedArrayExpr(const Fortran::lower::SomeExpr &exp) { in lowerBoxedArrayExpr()
3791 ExtValue exv = f(IterationSpace{}); in lowerBoxedArrayExpr()
3801 static ExtValue
3808 ExtValue loopRes = ael.lowerArrayExpression(expr); in lowerNewArrayExpression()
3903 [[maybe_unused]] ExtValue loopRes = lowerArrayExpression(expr); in lowerLazyArrayExpression()
3934 ccStoreToDest = [=](IterSpace iters) -> ExtValue { in lowerElementalUserAssignment()
3984 ExtValue lowerScalarAssignment(const Fortran::lower::SomeExpr &lhs, in lowerScalarAssignment()
4020 static ExtValue lowerScalarUserAssignment( in lowerScalarUserAssignment()
4034 ExtValue lowerScalarUserAssignment(mlir::func::FuncOp userAssignment, in lowerScalarUserAssignment()
4114 ExtValue exv = x.base().IsSymbol() ? asScalarRef(getFirstSym(x.base())) in genShapeFromDataRef()
4180 ExtValue lowerArrayExpression(const Fortran::lower::SomeExpr &exp) { in lowerArrayExpression()
4186 ExtValue lowerArrayExpression(const ExtValue &exv) { in lowerArrayExpression()
4259 return [=](IterSpace iterSpace) -> ExtValue { in defaultStoreToDestination()
4310 ExtValue lowerArrayExpression(CC f, mlir::Type resultTy) { in lowerArrayExpression()
4763 ExtValue asScalar(const A &x) { in asScalar()
4772 ExtValue asScalarArray(const A &x) { in asScalarArray()
4780 ExtValue asScalarRef(const A &x) { in asScalarRef()
4789 ExtValue asInquired(const A &x) { in asInquired()
4831 return [=](IterSpace iters) -> ExtValue { in genElementalArgument()
4837 return [=](IterSpace iters) -> ExtValue { in genElementalArgument()
4865 ExtValue optionalArg = this->asInquired(expr); in genElementalIntrinsicProcRef()
4869 [=](IterSpace iters) -> ExtValue { in genElementalIntrinsicProcRef()
4887 return [=](IterSpace iters) -> ExtValue { in genElementalIntrinsicProcRef()
4888 auto getArgument = [&](std::size_t i) -> ExtValue { in genElementalIntrinsicProcRef()
4953 llvm::SmallVector<ExtValue> args; in genElementalIntrinsicProcRef()
5023 [=](IterSpace iters) -> ExtValue { return temp; }); in genElementalUserDefinedProcRef()
5031 ExtValue exv = asScalarRef(*expr); in genElementalUserDefinedProcRef()
5047 [=](IterSpace iters) -> ExtValue { return argVal; }); in genElementalUserDefinedProcRef()
5061 ExtValue argRef = asScalarRef(*expr); in genElementalUserDefinedProcRef()
5065 [=](IterSpace iters) -> ExtValue { return tuple; }); in genElementalUserDefinedProcRef()
5079 [=, caller = std::move(caller)](IterSpace iters) mutable -> ExtValue { in genElementalUserDefinedProcRef()
5213 ExtValue result = asScalar(x); in genScalarAndForwardValue()
5239 static ExtValue convertAdjustedType(fir::FirOpBuilder &builder, in convertAdjustedType()
5241 const ExtValue &exv) { in convertAdjustedType()
5243 [&](const fir::CharBoxValue &cb) -> ExtValue { in convertAdjustedType()
5249 ExtValue{result}, exv); in convertAdjustedType()
5252 [&](const auto &) -> ExtValue { in convertAdjustedType()
5263 return [=](IterSpace iters) -> ExtValue { in genarr()
5279 return [=](IterSpace iters) -> ExtValue { in genarr()
5297 return [=](IterSpace iters) -> ExtValue { in genarr()
5310 return [=](IterSpace iters) -> ExtValue { in genarr()
5323 return [=](IterSpace iters) -> ExtValue { in genarr()
5332 return [=](IterSpace iters) -> ExtValue { in genarr()
5346 return [=](IterSpace iters) -> ExtValue { in createBinaryOp()
5381 return [=](IterSpace iters) -> ExtValue { in GENBIN()
5395 return [=](IterSpace iters) -> ExtValue { in genarr()
5402 return [=](IterSpace iters) -> ExtValue { in genarr()
5432 return [=](IterSpace iters) -> ExtValue { in genarr()
5445 return [=](IterSpace iters) -> ExtValue { in genarr()
5463 return [=](IterSpace iters) -> ExtValue { in genarr()
5574 mlir::Value getLBound(const ExtValue &x, unsigned dim, mlir::Value one) { in getLBound()
5580 mlir::Value getUBound(const ExtValue &x, unsigned dim, mlir::Value one) { in getUBound()
5589 mlir::Value getExtent(const ExtValue &x, unsigned dim) { in getExtent()
5594 ExtValue genArrayBase(const A &base) { in genArrayBase()
5653 void genSliceIndices(ComponentPath &cmptData, const ExtValue &arrayExv, in genSliceIndices()
5840 ExtValue abstractArrayExtValue(mlir::Value val, mlir::Value len = {}) { in abstractArrayExtValue()
5844 CC genarr(const ExtValue &extMemref) { in genarr()
5884 CC genarr(const ExtValue &extMemref, ComponentPath &components) { in genarr()
5982 return [=](IterSpace) -> ExtValue { return fir::BoxValue(embox); }; in genarr()
5992 return [=](IterSpace iters) -> ExtValue { in genarr()
6030 return [=](IterSpace iters) -> ExtValue { return lambda(iters); }; in genarr()
6037 return [=](IterSpace iters) -> ExtValue { in genarr()
6055 return [=](IterSpace) -> ExtValue { return arrLd; }; in genarr()
6064 return [=](IterSpace iters) -> ExtValue { in genarr()
6086 return [=](IterSpace iters) -> ExtValue { in genarr()
6117 ExtValue optionalArg = asInquired(expr); in genOptionalArrayFetch()
6130 ExtValue exv = optionalArg; in genOptionalArrayFetch()
6161 auto cc = [=](IterSpace iters) -> ExtValue { in genOptionalArrayFetch()
6184 ExtValue optionalArg = asInquired(expr); in genarrForwardOptionalArgumentToCall()
6188 return [=](IterSpace iters) -> ExtValue { return elementValue; }; in genarrForwardOptionalArgumentToCall()
6195 return [=](IterSpace iters) -> ExtValue { in genarrForwardOptionalArgumentToCall()
6276 mlir::Value computeElementSize(const ExtValue &exv, mlir::Type eleTy, in computeElementSize()
6374 mlir::Value copyNextArrayCtorSection(const ExtValue &exv, mlir::Value buffPos, in copyNextArrayCtorSection()
6453 auto doTrivialScalar = [&](const ExtValue &v, mlir::Value len = {}) { in copyNextArrayCtorSection()
6467 [&]() -> ExtValue { in copyNextArrayCtorSection()
6512 std::pair<ExtValue, bool>
6524 std::pair<ExtValue, bool>
6680 return [](IterSpace iters) -> ExtValue { return mlir::Value{}; }; in genarr()
6684 return [](IterSpace iters) -> ExtValue { return mlir::Value{}; }; in genarr()
6688 return [](IterSpace iters) -> ExtValue { return mlir::Value{}; }; in genarr()
6701 return [=](IterSpace iters) -> ExtValue { in genarr()
6713 return [=](IterSpace iters) -> ExtValue { in createBinaryBoolOp()
6727 return [=](IterSpace iters) -> ExtValue { in createCompareBoolOp()
6763 return [=](IterSpace iters) -> ExtValue { in createCompareOp()
6774 return [=](IterSpace iters) -> ExtValue { in createCompareCharOp()
6848 mlir::Type lowerPath(const ExtValue &arrayExv, ComponentPath &components) { in lowerPath()
7154 ExtValue exv = asScalarRef(x); in genImplicitArrayAccess()
7171 IterSpace iters) -> ExtValue { in genAsScalar()
7172 ExtValue exv = asScalarRef(x); in genAsScalar()
7217 return [=](IterSpace) -> ExtValue { in genarr()
7246 return [=](IterSpace) -> ExtValue { in genarr()
7284 return [=](IterSpace) -> ExtValue { in genarr()