Lines Matching refs:Symbol
41 Symbol::Flag defaultDSA{Symbol::Flag::AccShared}; // TODOACC
42 std::map<const Symbol *, Symbol::Flag> objectWithDSA;
64 void SetContextDefaultDSA(Symbol::Flag flag) { in SetContextDefaultDSA()
68 const Symbol &symbol, Symbol::Flag flag, DirContext &context) { in AddToContextObjectWithDSA()
71 void AddToContextObjectWithDSA(const Symbol &symbol, Symbol::Flag flag) { in AddToContextObjectWithDSA()
74 bool IsObjectWithDSA(const Symbol &symbol) { in IsObjectWithDSA()
81 Symbol &MakeAssocSymbol(const SourceName &name, Symbol &prev, Scope &scope) { in MakeAssocSymbol()
85 Symbol &MakeAssocSymbol(const SourceName &name, Symbol &prev) { in MakeAssocSymbol()
99 bool HasDataSharingAttributeObject(const Symbol &);
103 Symbol *DeclarePrivateAccessEntity(
104 const parser::Name &, Symbol::Flag, Scope &);
105 Symbol *DeclarePrivateAccessEntity(Symbol &, Symbol::Flag, Scope &);
106 Symbol *DeclareOrMarkOtherAccessEntity(const parser::Name &, Symbol::Flag);
159 ResolveAccObjectList(x.v, Symbol::Flag::AccCopyIn); in Pre()
160 ResolveAccObjectList(x.v, Symbol::Flag::AccCopyOut); in Pre()
166 ResolveAccObjectList(objectList, Symbol::Flag::AccCreate); in Pre()
172 ResolveAccObjectList(objectList, Symbol::Flag::AccCopyIn); in Pre()
178 ResolveAccObjectList(objectList, Symbol::Flag::AccCopyOut); in Pre()
183 ResolveAccObjectList(x.v, Symbol::Flag::AccPresent); in Pre()
187 ResolveAccObjectList(x.v, Symbol::Flag::AccPrivate); in Pre()
191 ResolveAccObjectList(x.v, Symbol::Flag::AccFirstPrivate); in Pre()
200 static constexpr Symbol::Flags dataSharingAttributeFlags{
201 Symbol::Flag::AccShared, Symbol::Flag::AccPrivate,
202 Symbol::Flag::AccPresent, Symbol::Flag::AccFirstPrivate,
203 Symbol::Flag::AccReduction};
205 static constexpr Symbol::Flags dataMappingAttributeFlags{
206 Symbol::Flag::AccCreate, Symbol::Flag::AccCopyIn,
207 Symbol::Flag::AccCopyOut, Symbol::Flag::AccDelete};
209 static constexpr Symbol::Flags accFlagsRequireNewSymbol{
210 Symbol::Flag::AccPrivate, Symbol::Flag::AccFirstPrivate,
211 Symbol::Flag::AccReduction};
213 static constexpr Symbol::Flags accFlagsRequireMark{};
216 void ResolveAccObjectList(const parser::AccObjectList &, Symbol::Flag);
217 void ResolveAccObject(const parser::AccObject &, Symbol::Flag);
218 Symbol *ResolveAcc(const parser::Name &, Symbol::Flag, Scope &);
219 Symbol *ResolveAcc(Symbol &, Symbol::Flag, Scope &);
220 Symbol *ResolveName(const parser::Name &);
221 Symbol *ResolveAccCommonBlockName(const parser::Name *);
222 Symbol *DeclareOrMarkOtherAccessEntity(const parser::Name &, Symbol::Flag);
223 Symbol *DeclareOrMarkOtherAccessEntity(Symbol &, Symbol::Flag);
225 const parser::Name &, const Symbol &, Symbol::Flag);
285 for (const Symbol &symbol : evaluate::CollectSymbols(*expr)) { in Pre()
321 ResolveOmpName(*name, Symbol::Flag::OmpDeclareSimd); in Pre()
338 ResolveOmpObjectList(x.v, Symbol::Flag::OmpShared); in Pre()
342 ResolveOmpObjectList(x.v, Symbol::Flag::OmpPrivate); in Pre()
347 ResolveOmpObjectList(objectList, Symbol::Flag::OmpAllocate); in Pre()
351 ResolveOmpObjectList(x.v, Symbol::Flag::OmpFirstPrivate); in Pre()
355 ResolveOmpObjectList(x.v, Symbol::Flag::OmpLastPrivate); in Pre()
359 ResolveOmpObjectList(x.v, Symbol::Flag::OmpCopyIn); in Pre()
363 ResolveOmpObjectList(x.v, Symbol::Flag::OmpCopyPrivate); in Pre()
371 Symbol::Flag::OmpLinear); in Pre()
376 linearWithModifier.names, Symbol::Flag::OmpLinear); in Pre()
393 name->symbol->set(Symbol::Flag::OmpReduction); in Pre()
394 AddToContextObjectWithDSA(*name->symbol, Symbol::Flag::OmpReduction); in Pre()
400 Symbol::Flag::OmpReduction, currScope()); in Pre()
404 ResolveOmpObjectList(objList, Symbol::Flag::OmpReduction); in Pre()
410 ResolveOmpNameList(alignedNameList, Symbol::Flag::OmpAligned); in Pre()
416 ResolveOmpNameList(nontemporalNameList, Symbol::Flag::OmpNontemporal); in Pre()
467 static constexpr Symbol::Flags dataSharingAttributeFlags{
468 Symbol::Flag::OmpShared, Symbol::Flag::OmpPrivate,
469 Symbol::Flag::OmpFirstPrivate, Symbol::Flag::OmpLastPrivate,
470 Symbol::Flag::OmpReduction, Symbol::Flag::OmpLinear};
472 static constexpr Symbol::Flags privateDataSharingAttributeFlags{
473 Symbol::Flag::OmpPrivate, Symbol::Flag::OmpFirstPrivate,
474 Symbol::Flag::OmpLastPrivate};
476 static constexpr Symbol::Flags ompFlagsRequireNewSymbol{
477 Symbol::Flag::OmpPrivate, Symbol::Flag::OmpLinear,
478 Symbol::Flag::OmpFirstPrivate, Symbol::Flag::OmpLastPrivate,
479 Symbol::Flag::OmpReduction, Symbol::Flag::OmpCriticalLock,
480 Symbol::Flag::OmpCopyIn};
482 static constexpr Symbol::Flags ompFlagsRequireMark{
483 Symbol::Flag::OmpThreadprivate};
485 static constexpr Symbol::Flags dataCopyingAttributeFlags{
486 Symbol::Flag::OmpCopyIn, Symbol::Flag::OmpCopyPrivate};
517 void ResolveOmpObjectList(const parser::OmpObjectList &, Symbol::Flag);
518 void ResolveOmpObject(const parser::OmpObject &, Symbol::Flag);
519 Symbol *ResolveOmp(const parser::Name &, Symbol::Flag, Scope &);
520 Symbol *ResolveOmp(Symbol &, Symbol::Flag, Scope &);
521 Symbol *ResolveOmpCommonBlockName(const parser::Name *);
522 void ResolveOmpNameList(const std::list<parser::Name> &, Symbol::Flag);
523 void ResolveOmpName(const parser::Name &, Symbol::Flag);
524 Symbol *ResolveName(const parser::Name *);
525 Symbol *ResolveOmpObjectScope(const parser::Name *);
526 Symbol *DeclareOrMarkOtherAccessEntity(const parser::Name &, Symbol::Flag);
527 Symbol *DeclareOrMarkOtherAccessEntity(Symbol &, Symbol::Flag);
529 const parser::Name &, const Symbol &, Symbol::Flag);
532 const parser::Name &, const Symbol &, Symbol::Flag);
535 const parser::Name &, const Symbol &, Symbol::Flag);
544 bool HasSymbolInEnclosingScope(const Symbol &, Scope &);
550 const Symbol &object) { in HasDataSharingAttributeObject()
569 Symbol *DirectiveAttributeVisitor<T>::DeclarePrivateAccessEntity( in DeclarePrivateAccessEntity()
570 const parser::Name &name, Symbol::Flag flag, Scope &scope) { in DeclarePrivateAccessEntity()
579 Symbol *DirectiveAttributeVisitor<T>::DeclarePrivateAccessEntity( in DeclarePrivateAccessEntity()
580 Symbol &object, Symbol::Flag flag, Scope &scope) { in DeclarePrivateAccessEntity()
584 if (flag == Symbol::Flag::OmpCopyIn) { in DeclarePrivateAccessEntity()
586 symbol.set(Symbol::Flag::OmpThreadprivate); in DeclarePrivateAccessEntity()
713 Symbol *AccAttributeVisitor::ResolveName(const parser::Name &name) { in ResolveName()
714 Symbol *prev{currScope().FindSymbol(name.source)}; in ResolveName()
869 Symbol::Flag ivDSA{Symbol::Flag::AccPrivate}; in PrivatizeAssociatedLoopIndex()
876 symbol->set(Symbol::Flag::AccPreDetermined); in PrivatizeAssociatedLoopIndex()
932 SetContextDefaultDSA(Symbol::Flag::AccPresent); in Post()
935 SetContextDefaultDSA(Symbol::Flag::AccNone); in Post()
948 if (Symbol * found{currScope().FindSymbol(name.source)}) { in Post()
951 } else if (GetContext().defaultDSA == Symbol::Flag::AccNone) { in Post()
963 Symbol *AccAttributeVisitor::ResolveAccCommonBlockName( in ResolveAccCommonBlockName()
977 const parser::AccObjectList &accObjectList, Symbol::Flag accFlag) { in ResolveAccObjectList()
984 const parser::AccObject &accObject, Symbol::Flag accFlag) { in ResolveAccObject()
1010 name, *symbol, Symbol::Flag::AccCommonBlock); in ResolveAccObject()
1027 Symbol *AccAttributeVisitor::ResolveAcc( in ResolveAcc()
1028 const parser::Name &name, Symbol::Flag accFlag, Scope &scope) { in ResolveAcc()
1036 Symbol *AccAttributeVisitor::ResolveAcc( in ResolveAcc()
1037 Symbol &symbol, Symbol::Flag accFlag, Scope &scope) { in ResolveAcc()
1045 Symbol *AccAttributeVisitor::DeclareOrMarkOtherAccessEntity( in DeclareOrMarkOtherAccessEntity()
1046 const parser::Name &name, Symbol::Flag accFlag) { in DeclareOrMarkOtherAccessEntity()
1047 Symbol *prev{currScope().FindSymbol(name.source)}; in DeclareOrMarkOtherAccessEntity()
1056 Symbol *AccAttributeVisitor::DeclareOrMarkOtherAccessEntity( in DeclareOrMarkOtherAccessEntity()
1057 Symbol &object, Symbol::Flag accFlag) { in DeclareOrMarkOtherAccessEntity()
1065 const Symbol &symbol, Symbol::Flag flag) { in WithMultipleAppearancesAccException()
1070 const parser::Name &name, const Symbol &symbol, Symbol::Flag accFlag) { in CheckMultipleAppearances()
1133 const Symbol &symbolPrivate{*privateObj}; in Post()
1236 if (auto *symbol{ResolveOmp(iv, Symbol::Flag::OmpPrivate, targetIt->scope)}) { in ResolveSeqLoopIndexInParallelOrTaskConstruct()
1238 symbol->set(Symbol::Flag::OmpPreDetermined); in ResolveSeqLoopIndexInParallelOrTaskConstruct()
1241 AddToContextObjectWithDSA(*symbol, Symbol::Flag::OmpPrivate, *it); in ResolveSeqLoopIndexInParallelOrTaskConstruct()
1259 if (!iv.symbol->test(Symbol::Flag::OmpPreDetermined)) { in Pre()
1267 const Symbol *tpSymbol = &details->symbol(); in Pre()
1268 if (tpSymbol->test(Symbol::Flag::OmpThreadprivate)) { in Pre()
1330 Symbol::Flag ivDSA; in PrivatizeAssociatedLoopIndexAndCheckLoopLevel()
1332 ivDSA = Symbol::Flag::OmpPrivate; in PrivatizeAssociatedLoopIndexAndCheckLoopLevel()
1334 ivDSA = Symbol::Flag::OmpLinear; in PrivatizeAssociatedLoopIndexAndCheckLoopLevel()
1336 ivDSA = Symbol::Flag::OmpLastPrivate; in PrivatizeAssociatedLoopIndexAndCheckLoopLevel()
1344 symbol->set(Symbol::Flag::OmpPreDetermined); in PrivatizeAssociatedLoopIndexAndCheckLoopLevel()
1388 ResolveOmpName(*criticalName, Symbol::Flag::OmpCriticalLock); in Pre()
1392 ResolveOmpName(*endCriticalName, Symbol::Flag::OmpCriticalLock); in Pre()
1400 ResolveOmpObjectList(list, Symbol::Flag::OmpThreadprivate); in Pre()
1407 ResolveOmpObjectList(list, Symbol::Flag::OmpDeclarativeAllocateDirective); in Pre()
1415 ResolveOmpObjectList(*list, Symbol::Flag::OmpExecutableAllocateDirective); in Pre()
1424 SetContextDefaultDSA(Symbol::Flag::OmpPrivate); in Post()
1427 SetContextDefaultDSA(Symbol::Flag::OmpFirstPrivate); in Post()
1430 SetContextDefaultDSA(Symbol::Flag::OmpShared); in Post()
1433 SetContextDefaultDSA(Symbol::Flag::OmpNone); in Post()
1482 if (Symbol * found{currScope().FindSymbol(name.source)}) { in Post()
1485 } else if (GetContext().defaultDSA == Symbol::Flag::OmpNone) { in Post()
1496 Symbol *OmpAttributeVisitor::ResolveName(const parser::Name *name) { in ResolveName()
1507 const parser::Name &name, Symbol::Flag ompFlag) { in ResolveOmpName()
1514 } else if (ompFlag == Symbol::Flag::OmpCriticalLock) { in ResolveOmpName()
1523 const std::list<parser::Name> &nameList, Symbol::Flag ompFlag) { in ResolveOmpNameList()
1529 Symbol *OmpAttributeVisitor::ResolveOmpCommonBlockName( in ResolveOmpCommonBlockName()
1551 Symbol *OmpAttributeVisitor::ResolveOmpObjectScope(const parser::Name *name) { in ResolveOmpObjectScope()
1572 const parser::OmpObjectList &ompObjectList, Symbol::Flag ompFlag) { in ResolveOmpObjectList()
1579 const parser::OmpObject &ompObject, Symbol::Flag ompFlag) { in ResolveOmpObject()
1596 if (ompFlag == Symbol::Flag::OmpAllocate) { in ResolveOmpObject()
1600 if (ompFlag == Symbol::Flag::OmpDeclarativeAllocateDirective && in ResolveOmpObject()
1607 if ((ompFlag == Symbol::Flag::OmpDeclarativeAllocateDirective || in ResolveOmpObject()
1609 Symbol::Flag::OmpExecutableAllocateDirective) && in ResolveOmpObject()
1632 name, *symbol, Symbol::Flag::OmpCommonBlock); in ResolveOmpObject()
1657 Symbol *OmpAttributeVisitor::ResolveOmp( in ResolveOmp()
1658 const parser::Name &name, Symbol::Flag ompFlag, Scope &scope) { in ResolveOmp()
1666 Symbol *OmpAttributeVisitor::ResolveOmp( in ResolveOmp()
1667 Symbol &symbol, Symbol::Flag ompFlag, Scope &scope) { in ResolveOmp()
1675 Symbol *OmpAttributeVisitor::DeclareOrMarkOtherAccessEntity( in DeclareOrMarkOtherAccessEntity()
1676 const parser::Name &name, Symbol::Flag ompFlag) { in DeclareOrMarkOtherAccessEntity()
1677 Symbol *prev{currScope().FindSymbol(name.source)}; in DeclareOrMarkOtherAccessEntity()
1686 Symbol *OmpAttributeVisitor::DeclareOrMarkOtherAccessEntity( in DeclareOrMarkOtherAccessEntity()
1687 Symbol &object, Symbol::Flag ompFlag) { in DeclareOrMarkOtherAccessEntity()
1695 const Symbol &symbol, Symbol::Flag flag) { in WithMultipleAppearancesOmpException()
1696 return (flag == Symbol::Flag::OmpFirstPrivate && in WithMultipleAppearancesOmpException()
1697 symbol.test(Symbol::Flag::OmpLastPrivate)) || in WithMultipleAppearancesOmpException()
1698 (flag == Symbol::Flag::OmpLastPrivate && in WithMultipleAppearancesOmpException()
1699 symbol.test(Symbol::Flag::OmpFirstPrivate)); in WithMultipleAppearancesOmpException()
1703 const parser::Name &name, const Symbol &symbol, Symbol::Flag ompFlag) { in CheckMultipleAppearances()
1747 const parser::Name &name, const Symbol &symbol, Symbol::Flag ompFlag) { in CheckDataCopyingClause()
1753 if (ompFlag == Symbol::Flag::OmpCopyIn) { in CheckDataCopyingClause()
1756 if (!checkSymbol->test(Symbol::Flag::OmpThreadprivate)) { in CheckDataCopyingClause()
1761 } else if (ompFlag == Symbol::Flag::OmpCopyPrivate && in CheckDataCopyingClause()
1766 (symbol.test(Symbol::Flag::OmpPrivate) || in CheckDataCopyingClause()
1767 symbol.test(Symbol::Flag::OmpFirstPrivate))) { in CheckDataCopyingClause()
1775 if (!checkSymbol->test(Symbol::Flag::OmpThreadprivate) && in CheckDataCopyingClause()
1777 symbol.test(Symbol::Flag::OmpPrivate))) { in CheckDataCopyingClause()
1788 const parser::Name &name, const Symbol &symbol, Symbol::Flag ompFlag) { in CheckObjectInNamelist()
1791 if (ompFlag == Symbol::Flag::OmpFirstPrivate) { in CheckObjectInNamelist()
1793 } else if (ompFlag == Symbol::Flag::OmpLastPrivate) { in CheckObjectInNamelist()
1797 if (ultimateSymbol.test(Symbol::Flag::InNamelist)) { in CheckObjectInNamelist()
1853 const Symbol &symbol, Scope &scope) { in HasSymbolInEnclosingScope()