Lines Matching full:semantics

36 #include "flang/Semantics/openmp-directive-sets.h"
37 #include "flang/Semantics/tools.h"
53 semantics::SemanticsContext &semaCtx,
59 semantics::SemanticsContext &semaCtx,
71 semantics::SemanticsContext &,
140 llvm::SmallVectorImpl<const semantics::Symbol *> &ivOut) {
187 llvm::SmallVector<const semantics::Symbol *> iv;
221 &firOpBuilder](const semantics::Symbol &sym,
283 [&bindSingleMapLike](llvm::ArrayRef<const semantics::Symbol *> syms,
288 llvm::SmallVector<const semantics::Symbol *> processedSyms;
297 llvm::ArrayRef<const semantics::Symbol *> syms,
300 llvm::SmallVector<const semantics::Symbol *> processedSyms;
303 sym->detailsIf<semantics::CommonBlockDetails>()) {
456 semantics::SemanticsContext &semaCtx,
647 const semantics::Symbol &sym,
657 if (semantics::IsAllocatableOrObjectPointer(&sym)) {
693 if (const auto *details = sym->detailsIf<semantics::CommonBlockDetails>()) {
695 if (!obj->test(semantics::Symbol::Flag::OmpThreadprivate))
699 return sym->test(semantics::Symbol::Flag::OmpThreadprivate);
729 llvm::SetVector<const semantics::Symbol *> threadprivateSyms;
731 semantics::Symbol::Flag::OmpThreadprivate,
734 std::set<semantics::SourceName> threadprivateSymNames;
740 llvm::SetVector<const semantics::Symbol *> commonSyms;
742 const semantics::Symbol *sym = threadprivateSyms[i];
749 if (const semantics::Symbol *common =
750 semantics::FindCommonBlockContaining(sym->GetUltimate())) {
775 const semantics::Symbol *sym) {
808 llvm::SmallVectorImpl<const semantics::Symbol *> &useDeviceAddrSyms,
810 llvm::SmallVectorImpl<const semantics::Symbol *> &useDevicePtrSyms) {
833 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
871 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
886 converter.mangleName(std::get<const semantics::Symbol &>(symClause)));
898 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
911 converter.mangleName(std::get<const semantics::Symbol &>(symClause)));
938 mlir::Location &loc, llvm::ArrayRef<const semantics::Symbol *> args,
946 for (const semantics::Symbol *arg : args)
1020 std::function<llvm::SmallVector<const semantics::Symbol *>(
1025 semantics::SemanticsContext &semaCtx, mlir::Location loc,
1054 /// [in] Semantics context
1055 semantics::SemanticsContext &semaCtx;
1095 auto regionArgs = [&]() -> llvm::SmallVector<const semantics::Symbol *> {
1233 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
1283 llvm::ArrayRef<const Fortran::semantics::Symbol *> mapSyms) {
1289 auto *details = mapSym->detailsIf<Fortran::semantics::CommonBlockDetails>();
1308 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
1493 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
1503 semantics::SemanticsContext &semaCtx,
1515 semantics::SemanticsContext &semaCtx,
1529 semantics::SemanticsContext &semaCtx,
1532 llvm::SmallVectorImpl<const semantics::Symbol *> &iv) {
1542 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
1545 llvm::SmallVectorImpl<const semantics::Symbol *> &reductionSyms) {
1554 semantics::SemanticsContext &semaCtx,
1564 semantics::SemanticsContext &semaCtx,
1572 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
1575 llvm::SmallVectorImpl<const semantics::Symbol *> &reductionSyms) {
1588 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
1591 llvm::SmallVectorImpl<const semantics::Symbol *> &reductionSyms) {
1600 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
1603 llvm::SmallVectorImpl<const semantics::Symbol *> &reductionSyms) {
1617 semantics::SemanticsContext &semaCtx,
1628 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
1632 llvm::SmallVectorImpl<const semantics::Symbol *> &hasDeviceAddrSyms,
1633 llvm::SmallVectorImpl<const semantics::Symbol *> &isDevicePtrSyms,
1634 llvm::SmallVectorImpl<const semantics::Symbol *> &mapSyms) {
1661 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
1664 llvm::SmallVectorImpl<const semantics::Symbol *> &useDeviceAddrSyms,
1665 llvm::SmallVectorImpl<const semantics::Symbol *> &useDevicePtrSyms) {
1687 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
1705 semantics::SemanticsContext &semaCtx,
1725 semantics::SemanticsContext &semaCtx,
1735 semantics::SemanticsContext &semaCtx,
1744 semantics::SemanticsContext &semaCtx,
1753 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
1756 llvm::SmallVectorImpl<const semantics::Symbol *> &reductionSyms) {
1771 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
1774 llvm::SmallVectorImpl<const semantics::Symbol *> &reductionSyms) {
1792 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
1800 semantics::SemanticsContext &semaCtx,
1831 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
1844 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
1847 llvm::ArrayRef<const semantics::Symbol *> iv,
1854 return llvm::SmallVector<const semantics::Symbol *>(iv);
1871 semantics::SemanticsContext &semaCtx,
1876 llvm::SmallVector<const semantics::Symbol *> loopReductionSyms;
1886 llvm::SmallVector<const semantics::Symbol *> iv;
1905 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
1920 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
1931 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
1940 semantics::SemanticsContext &semaCtx,
1955 semantics::SemanticsContext &semaCtx,
1989 semantics::SemanticsContext &semaCtx,
1994 llvm::SmallVector<const semantics::Symbol *> reductionSyms;
2091 semantics::Symbol *sym = object.sym();
2111 semantics::SemanticsContext &semaCtx,
2120 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
2135 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
2149 llvm::SmallVector<const semantics::Symbol *> mapSyms, isDevicePtrSyms,
2165 auto captureImplicitMap = [&](const semantics::Symbol &sym) {
2177 if (const Fortran::semantics::Symbol *common =
2178 Fortran::semantics::FindCommonBlockContaining(sym.GetUltimate()))
2192 sym.template detailsIf<semantics::HostAssocDetails>())
2205 semantics::IsAssumedSizeArray(sym.GetUltimate()),
2281 semantics::SemanticsContext &semaCtx,
2287 llvm::SmallVector<const semantics::Symbol *> useDeviceAddrSyms,
2315 semantics::SemanticsContext &semaCtx, mlir::Location loc,
2341 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
2383 semantics::SemanticsContext &semaCtx,
2399 semantics::SemanticsContext &semaCtx,
2411 semantics::SemanticsContext &semaCtx,
2420 semantics::SemanticsContext &semaCtx,
2438 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
2444 llvm::SmallVector<const semantics::Symbol *> reductionSyms;
2475 semantics::SemanticsContext &semaCtx,
2492 llvm::SmallVector<const semantics::Symbol *> iv;
2509 semantics::SemanticsContext &semaCtx,
2516 llvm::SmallVector<const semantics::Symbol *> wsloopReductionSyms;
2526 llvm::SmallVector<const semantics::Symbol *> iv;
2545 semantics::SemanticsContext &semaCtx,
2553 llvm::SmallVector<const semantics::Symbol *> parallelReductionSyms;
2578 semantics::SemanticsContext &semaCtx,
2583 llvm::SmallVector<const semantics::Symbol *> simdReductionSyms;
2593 llvm::SmallVector<const semantics::Symbol *> iv;
2612 semantics::SemanticsContext &semaCtx,
2626 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
2638 llvm::SmallVector<const semantics::Symbol *> parallelReductionSyms;
2661 llvm::SmallVector<const semantics::Symbol *> wsloopReductionSyms;
2666 llvm::SmallVector<const semantics::Symbol *> iv;
2693 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
2706 llvm::SmallVector<const semantics::Symbol *> parallelReductionSyms;
2729 llvm::SmallVector<const semantics::Symbol *> wsloopReductionSyms;
2734 llvm::SmallVector<const semantics::Symbol *> simdReductionSyms;
2739 llvm::SmallVector<const semantics::Symbol *> iv;
2776 semantics::SemanticsContext &semaCtx,
2793 llvm::SmallVector<const semantics::Symbol *> simdReductionSyms;
2806 llvm::SmallVector<const semantics::Symbol *> iv;
2833 semantics::SemanticsContext &semaCtx,
2845 llvm::SmallVector<const semantics::Symbol *> wsloopReductionSyms;
2850 llvm::SmallVector<const semantics::Symbol *> simdReductionSyms;
2863 llvm::SmallVector<const semantics::Symbol *> iv;
2892 semantics::SemanticsContext &semaCtx,
2907 semantics::SemanticsContext &semaCtx,
2942 semantics::SemanticsContext &semaCtx,
3068 semantics::SemanticsContext &semaCtx,
3074 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
3081 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
3088 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
3095 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
3102 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
3112 converter.mangleName(std::get<const semantics::Symbol &>(symClause)));
3128 semantics::SemanticsContext &semaCtx,
3131 // Requires directives are gathered and processed in semantics and
3138 semantics::SemanticsContext &semaCtx,
3146 semantics::SemanticsContext &semaCtx,
3160 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
3183 semantics::SemanticsContext &semaCtx,
3208 semantics::SemanticsContext &semaCtx,
3215 semantics::SemanticsContext &semaCtx,
3223 semantics::SemanticsContext &semaCtx,
3238 semantics::SemanticsContext &semaCtx,
3244 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
3256 semantics::SemanticsContext &semaCtx,
3263 semantics::SemanticsContext &semaCtx,
3306 semantics::SemanticsContext &semaCtx,
3378 semantics::SemanticsContext &semaCtx,
3396 semantics::SemanticsContext &semaCtx,
3403 semantics::SemanticsContext &semaCtx,
3410 semantics::SemanticsContext &semaCtx,
3417 semantics::SemanticsContext &semaCtx,
3446 semantics::SemanticsContext &semaCtx,
3453 semantics::SemanticsContext &semaCtx,
3494 semantics::SemanticsContext &semaCtx,
3517 semantics::SemanticsContext &semaCtx,
3526 semantics::SemanticsContext &semaCtx, lower::pft::Evaluation &eval,
3535 const semantics::Symbol &sym = var.getSymbol();
3537 if (sym.test(semantics::Symbol::Flag::OmpThreadprivate))
3540 if (sym.test(semantics::Symbol::Flag::OmpDeclareTarget))
3549 const auto *expr = semantics::GetExpr(collapseClause->v);
3561 const semantics::Symbol &sym = var.getSymbol();
3563 if (const semantics::Symbol *common =
3564 semantics::FindCommonBlockContaining(sym.GetUltimate())) {
3653 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
3670 lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
3723 const semantics::Symbol *symbol) {
3725 using SemaRequires = semantics::WithOmpDeclarative::RequiresFlag;
3729 semantics::WithOmpDeclarative::RequiresFlags semaFlags;
3733 if constexpr (std::is_base_of_v<semantics::WithOmpDeclarative,