diff --git a/flang/include/flang/Parser/dump-parse-tree.h b/flang/include/flang/Parser/dump-parse-tree.h index 57421da4fa938..7170dfb591fae 100644 --- a/flang/include/flang/Parser/dump-parse-tree.h +++ b/flang/include/flang/Parser/dump-parse-tree.h @@ -49,6 +49,7 @@ class ParseTreeDumper { NODE(std, uint64_t) NODE_ENUM(common, CUDADataAttr) NODE_ENUM(common, CUDASubprogramAttrs) + NODE_ENUM(common, OmpMemoryOrderType) NODE_ENUM(common, OpenACCDeviceType) NODE(format, ControlEditDesc) NODE(format::ControlEditDesc, Kind) @@ -482,126 +483,129 @@ class ParseTreeDumper { NODE(parser, NullInit) NODE(parser, ObjectDecl) NODE(parser, OldParameterStmt) - NODE(parser, OmpTypeSpecifier) - NODE(parser, OmpTypeNameList) + + static std::string GetNodeName(const llvm::omp::Directive &x) { + return llvm::Twine("llvm::omp::Directive = ", + llvm::omp::getOpenMPDirectiveName(x, llvm::omp::FallbackVersion)) + .str(); + } + static std::string GetNodeName(const llvm::omp::Clause &x) { + return llvm::Twine( + "llvm::omp::Clause = ", llvm::omp::getOpenMPClauseName(x)) + .str(); + } + NODE(parser, OmpAbsentClause) + NODE(parser, OmpAccessGroup) + NODE_ENUM(OmpAccessGroup, Value) NODE(parser, OmpAdjustArgsClause) NODE(OmpAdjustArgsClause, OmpAdjustOp) NODE_ENUM(OmpAdjustArgsClause::OmpAdjustOp, Value) - NODE(parser, OmpAppendArgsClause) - NODE(OmpAppendArgsClause, OmpAppendOp) - NODE(parser, OmpLocator) - NODE(parser, OmpLocatorList) - NODE(parser, OmpReductionSpecifier) - NODE(parser, OmpArgument) - NODE(parser, OmpArgumentList) - NODE(parser, OmpMetadirectiveDirective) - NODE(parser, OmpMatchClause) - NODE(parser, OmpOtherwiseClause) - NODE(parser, OmpWhenClause) - NODE(OmpWhenClause, Modifier) - NODE(parser, OmpDirectiveName) - NODE(parser, OmpDirectiveSpecification) - NODE_ENUM(OmpDirectiveSpecification, Flags) - NODE(parser, OmpTraitPropertyName) - NODE(parser, OmpTraitScore) - NODE(parser, OmpTraitPropertyExtension) - NODE(OmpTraitPropertyExtension, Complex) - NODE(parser, OmpTraitProperty) - NODE(parser, OmpTraitSelectorName) - NODE_ENUM(OmpTraitSelectorName, Value) - NODE(parser, OmpTraitSelector) - NODE(OmpTraitSelector, Properties) - NODE(parser, OmpTraitSetSelectorName) - NODE_ENUM(OmpTraitSetSelectorName, Value) - NODE(parser, OmpTraitSetSelector) - NODE(parser, OmpContextSelectorSpecification) - NODE(parser, OmpMapper) - NODE(parser, OmpMapType) - NODE_ENUM(OmpMapType, Value) - NODE(parser, OmpMapTypeModifier) - NODE_ENUM(OmpMapTypeModifier, Value) - NODE(parser, OmpIteratorSpecifier) - NODE(parser, OmpIterator) - NODE(parser, OmpAbsentClause) NODE(parser, OmpAffinityClause) NODE(OmpAffinityClause, Modifier) - NODE(parser, OmpAccessGroup) - NODE_ENUM(OmpAccessGroup, Value) - NODE(parser, OmpAlignment) NODE(parser, OmpAlignClause) NODE(parser, OmpAlignedClause) NODE(OmpAlignedClause, Modifier) + NODE(parser, OmpAlignment) + NODE(parser, OmpAlignModifier) + NODE(parser, OmpAllocateClause) + NODE(OmpAllocateClause, Modifier) + NODE(parser, OmpAllocatorComplexModifier) + NODE(parser, OmpAllocatorSimpleModifier) NODE(parser, OmpAlwaysModifier) NODE_ENUM(OmpAlwaysModifier, Value) + NODE(parser, OmpAppendArgsClause) + NODE(OmpAppendArgsClause, OmpAppendOp) + NODE(parser, OmpArgument) + NODE(parser, OmpArgumentList) + NODE(parser, OmpAssumeDirective) NODE(parser, OmpAtClause) NODE_ENUM(OmpAtClause, ActionTime) - NODE_ENUM(OmpSeverityClause, Severity) + NODE(parser, OmpAtomicDefaultMemOrderClause) + NODE(parser, OmpAutomapModifier) + NODE_ENUM(OmpAutomapModifier, Value) + NODE(parser, OmpBeginDirective) NODE(parser, OmpBeginLoopDirective) NODE(parser, OmpBeginSectionsDirective) - static std::string GetNodeName(const llvm::omp::Directive &x) { - return llvm::Twine("llvm::omp::Directive = ", - llvm::omp::getOpenMPDirectiveName(x, llvm::omp::FallbackVersion)) - .str(); - } + NODE(parser, OmpBindClause) + NODE_ENUM(OmpBindClause, Binding) + NODE(parser, OmpCancellationConstructTypeClause) + NODE(parser, OmpChunkModifier) + NODE_ENUM(OmpChunkModifier, Value) NODE(parser, OmpClause) -#define GEN_FLANG_DUMP_PARSE_TREE_CLAUSES -#include "llvm/Frontend/OpenMP/OMP.inc" NODE(parser, OmpClauseList) - NODE(parser, OmpCancellationConstructTypeClause) NODE(parser, OmpCloseModifier) NODE_ENUM(OmpCloseModifier, Value) NODE(parser, OmpContainsClause) + NODE(parser, OmpContextSelectorSpecification) NODE(parser, OmpCriticalDirective) - NODE(parser, OmpErrorDirective) - NODE(parser, OmpNothingDirective) NODE(parser, OmpDeclareTargetSpecifier) NODE(parser, OmpDeclareTargetWithClause) NODE(parser, OmpDeclareTargetWithList) - NODE(parser, OmpMapperSpecifier) + NODE(parser, OmpDeclareVariantDirective) NODE(parser, OmpDefaultClause) NODE_ENUM(OmpDefaultClause, DataSharingAttribute) - NODE(parser, OmpVariableCategory) - NODE_ENUM(OmpVariableCategory, Value) NODE(parser, OmpDefaultmapClause) - NODE_ENUM(OmpDefaultmapClause, ImplicitBehavior) NODE(OmpDefaultmapClause, Modifier) + NODE_ENUM(OmpDefaultmapClause, ImplicitBehavior) NODE(parser, OmpDeleteModifier) NODE_ENUM(OmpDeleteModifier, Value) + NODE(parser, OmpDependClause) + NODE(OmpDependClause, TaskDep) + NODE(OmpDependClause::TaskDep, Modifier) NODE(parser, OmpDependenceType) NODE_ENUM(OmpDependenceType, Value) - NODE(parser, OmpTaskDependenceType) - NODE_ENUM(OmpTaskDependenceType, Value) - NODE(parser, OmpDynGroupprivateClause) - NODE(OmpDynGroupprivateClause, Modifier) - NODE(parser, OmpIndirectClause) - NODE(parser, OmpIterationOffset) - NODE(parser, OmpIteration) - NODE(parser, OmpIterationVector) + NODE(parser, OmpDestroyClause) + NODE(parser, OmpDetachClause) + NODE(parser, OmpDeviceClause) + NODE(OmpDeviceClause, Modifier) + NODE(parser, OmpDeviceModifier) + NODE_ENUM(OmpDeviceModifier, Value) + NODE(parser, OmpDeviceTypeClause) + NODE_ENUM(OmpDeviceTypeClause, DeviceTypeDescription) + NODE(parser, OmpDirectiveName) + NODE(parser, OmpDirectiveSpecification) + NODE_ENUM(OmpDirectiveSpecification, Flags) NODE(parser, OmpDoacross) NODE(OmpDoacross, Sink) NODE(OmpDoacross, Source) - NODE(parser, OmpDependClause) - NODE(OmpDependClause, TaskDep) - NODE(OmpDependClause::TaskDep, Modifier) - NODE(parser, OmpAutomapModifier) - NODE_ENUM(OmpAutomapModifier, Value) - NODE(parser, OmpDetachClause) NODE(parser, OmpDoacrossClause) - NODE(parser, OmpDestroyClause) + NODE(parser, OmpDynGroupprivateClause) + NODE(OmpDynGroupprivateClause, Modifier) + NODE(parser, OmpEndAssumeDirective) NODE(parser, OmpEndCriticalDirective) + NODE(parser, OmpEndDirective) NODE(parser, OmpEndLoopDirective) NODE(parser, OmpEndSectionsDirective) NODE(parser, OmpEnterClause) NODE(OmpEnterClause, Modifier) + NODE(parser, OmpErrorDirective) + NODE(parser, OmpExpectation) + NODE_ENUM(OmpExpectation, Value) NODE(parser, OmpFailClause) NODE(parser, OmpFromClause) NODE(OmpFromClause, Modifier) - NODE(parser, OmpExpectation) - NODE_ENUM(OmpExpectation, Value) + NODE(parser, OmpGrainsizeClause) + NODE(OmpGrainsizeClause, Modifier) NODE(parser, OmpHintClause) NODE(parser, OmpHoldsClause) NODE(parser, OmpIfClause) NODE(OmpIfClause, Modifier) + NODE(parser, OmpIndirectClause) + NODE(parser, OmpInitClause) + NODE(OmpInitClause, Modifier) + NODE(parser, OmpInitializerClause) + NODE(parser, OmpInitializerProc) + NODE(parser, OmpInReductionClause) + NODE(OmpInReductionClause, Modifier) + NODE(parser, OmpInteropPreference) + NODE(parser, OmpInteropRuntimeIdentifier) + NODE(parser, OmpInteropType) + NODE_ENUM(OmpInteropType, Value) + NODE(parser, OmpIteration) + NODE(parser, OmpIterationOffset) + NODE(parser, OmpIterationVector) + NODE(parser, OmpIterator) + NODE(parser, OmpIteratorSpecifier) NODE(parser, OmpLastprivateClause) NODE(OmpLastprivateClause, Modifier) NODE(parser, OmpLastprivateModifier) @@ -610,87 +614,92 @@ class ParseTreeDumper { NODE(OmpLinearClause, Modifier) NODE(parser, OmpLinearModifier) NODE_ENUM(OmpLinearModifier, Value) - NODE(parser, OmpStepComplexModifier) - NODE(parser, OmpStepSimpleModifier) + NODE(parser, OmpLocator) + NODE(parser, OmpLocatorList) NODE(parser, OmpLoopDirective) NODE(parser, OmpMapClause) - NODE(parser, OmpMessageClause) NODE(OmpMapClause, Modifier) - static std::string GetNodeName(const llvm::omp::Clause &x) { - return llvm::Twine( - "llvm::omp::Clause = ", llvm::omp::getOpenMPClauseName(x)) - .str(); - } - NODE(parser, OmpObject) - NODE(parser, OmpObjectList) + NODE(parser, OmpMapper) + NODE(parser, OmpMapperSpecifier) + NODE(parser, OmpMapType) + NODE_ENUM(OmpMapType, Value) + NODE(parser, OmpMapTypeModifier) + NODE_ENUM(OmpMapTypeModifier, Value) + NODE(parser, OmpMatchClause) + NODE(parser, OmpMessageClause) + NODE(parser, OmpMetadirectiveDirective) NODE(parser, OmpNoOpenMPClause) NODE(parser, OmpNoOpenMPRoutinesClause) NODE(parser, OmpNoParallelismClause) + NODE(parser, OmpNothingDirective) + NODE(parser, OmpNumTasksClause) + NODE(OmpNumTasksClause, Modifier) + NODE(parser, OmpObject) + NODE(parser, OmpObjectList) NODE(parser, OmpOrderClause) NODE(OmpOrderClause, Modifier) NODE_ENUM(OmpOrderClause, Ordering) + NODE(parser, OmpOrderingModifier) + NODE_ENUM(OmpOrderingModifier, Value) NODE(parser, OmpOrderModifier) NODE_ENUM(OmpOrderModifier, Value) - NODE(parser, OmpGrainsizeClause) - NODE(OmpGrainsizeClause, Modifier) + NODE(parser, OmpOtherwiseClause) NODE(parser, OmpPrescriptiveness) NODE_ENUM(OmpPrescriptiveness, Value) - NODE(parser, OmpNumTasksClause) - NODE(OmpNumTasksClause, Modifier) - NODE(parser, OmpBindClause) - NODE_ENUM(OmpBindClause, Binding) NODE(parser, OmpPresentModifier) NODE_ENUM(OmpPresentModifier, Value) NODE(parser, OmpProcBindClause) NODE_ENUM(OmpProcBindClause, AffinityPolicy) - NODE(parser, OmpReductionModifier) - NODE_ENUM(OmpReductionModifier, Value) NODE(parser, OmpReductionClause) NODE(OmpReductionClause, Modifier) - NODE(parser, OmpInReductionClause) - NODE(OmpInReductionClause, Modifier) NODE(parser, OmpReductionCombiner) + NODE(parser, OmpReductionIdentifier) + NODE(parser, OmpReductionModifier) + NODE_ENUM(OmpReductionModifier, Value) + NODE(parser, OmpReductionSpecifier) NODE(parser, OmpRefModifier) NODE_ENUM(OmpRefModifier, Value) - NODE(parser, OmpSelfModifier) - NODE_ENUM(OmpSelfModifier, Value) - NODE(parser, OmpTaskReductionClause) - NODE(OmpTaskReductionClause, Modifier) - NODE(parser, OmpInitializerProc) - NODE(parser, OmpInitializerClause) - NODE(parser, OmpReductionIdentifier) - NODE(parser, OmpAllocateClause) - NODE(OmpAllocateClause, Modifier) - NODE(parser, OmpAlignModifier) - NODE(parser, OmpAllocatorComplexModifier) - NODE(parser, OmpAllocatorSimpleModifier) NODE(parser, OmpScheduleClause) NODE(OmpScheduleClause, Modifier) NODE_ENUM(OmpScheduleClause, Kind) - NODE(parser, OmpSeverityClause) - NODE(parser, OmpDeviceClause) - NODE(OmpDeviceClause, Modifier) - NODE(parser, OmpDeviceModifier) - NODE_ENUM(OmpDeviceModifier, Value) - NODE(parser, OmpDeviceTypeClause) - NODE_ENUM(OmpDeviceTypeClause, DeviceTypeDescription) - NODE(parser, OmpInteropRuntimeIdentifier) - NODE(parser, OmpInteropPreference) - NODE(parser, OmpInteropType) - NODE_ENUM(OmpInteropType, Value) - NODE(parser, OmpInitClause) - NODE(OmpInitClause, Modifier) - NODE(parser, OmpUseClause) - NODE(parser, OmpUpdateClause) - NODE(parser, OmpChunkModifier) - NODE_ENUM(OmpChunkModifier, Value) - NODE(parser, OmpOrderingModifier) - NODE_ENUM(OmpOrderingModifier, Value) NODE(parser, OmpSectionsDirective) + NODE(parser, OmpSelfModifier) + NODE_ENUM(OmpSelfModifier, Value) + NODE(parser, OmpSeverityClause) + NODE_ENUM(OmpSeverityClause, Severity) + NODE(parser, OmpStepComplexModifier) + NODE(parser, OmpStepSimpleModifier) + NODE(parser, OmpTaskDependenceType) + NODE_ENUM(OmpTaskDependenceType, Value) + NODE(parser, OmpTaskReductionClause) + NODE(OmpTaskReductionClause, Modifier) NODE(parser, OmpToClause) NODE(OmpToClause, Modifier) + NODE(parser, OmpTraitProperty) + NODE(parser, OmpTraitPropertyExtension) + NODE(OmpTraitPropertyExtension, Complex) + NODE(parser, OmpTraitPropertyName) + NODE(parser, OmpTraitScore) + NODE(parser, OmpTraitSelector) + NODE(OmpTraitSelector, Properties) + NODE(parser, OmpTraitSelectorName) + NODE_ENUM(OmpTraitSelectorName, Value) + NODE(parser, OmpTraitSetSelector) + NODE(parser, OmpTraitSetSelectorName) + NODE_ENUM(OmpTraitSetSelectorName, Value) + NODE(parser, OmpTypeNameList) + NODE(parser, OmpTypeSpecifier) + NODE(parser, OmpUpdateClause) + NODE(parser, OmpUseClause) + NODE(parser, OmpVariableCategory) + NODE_ENUM(OmpVariableCategory, Value) + NODE(parser, OmpWhenClause) + NODE(OmpWhenClause, Modifier) NODE(parser, OmpxHoldModifier) NODE_ENUM(OmpxHoldModifier, Value) +#define GEN_FLANG_DUMP_PARSE_TREE_CLAUSES +#include "llvm/Frontend/OpenMP/OMP.inc" + NODE(parser, Only) NODE(parser, OpenACCAtomicConstruct) NODE(parser, OpenACCBlockConstruct) @@ -705,12 +714,9 @@ class ParseTreeDumper { NODE(parser, OpenACCStandaloneDeclarativeConstruct) NODE(parser, OpenACCStandaloneConstruct) NODE(parser, OpenACCWaitConstruct) + + NODE(parser, OpenMPAllocatorsConstruct) NODE(parser, OpenMPAssumeConstruct) - NODE(parser, OpenMPDeclarativeAssumes) - NODE(parser, OmpAssumeDirective) - NODE(parser, OmpEndAssumeDirective) - NODE(parser, OmpBeginDirective) - NODE(parser, OmpEndDirective) NODE(parser, OpenMPAtomicConstruct) NODE(parser, OpenMPBlockConstruct) NODE(parser, OpenMPCancelConstruct) @@ -718,28 +724,26 @@ class ParseTreeDumper { NODE(parser, OpenMPConstruct) NODE(parser, OpenMPCriticalConstruct) NODE(parser, OpenMPDeclarativeAllocate) + NODE(parser, OpenMPDeclarativeAssumes) NODE(parser, OpenMPDeclarativeConstruct) - NODE(parser, OmpDeclareVariantDirective) + NODE(parser, OpenMPDeclareMapperConstruct) NODE(parser, OpenMPDeclareReductionConstruct) NODE(parser, OpenMPDeclareSimdConstruct) NODE(parser, OpenMPDeclareTargetConstruct) - NODE(parser, OpenMPDeclareMapperConstruct) - NODE_ENUM(common, OmpMemoryOrderType) - NODE(parser, OmpAtomicDefaultMemOrderClause) NODE(parser, OpenMPDepobjConstruct) - NODE(parser, OpenMPUtilityConstruct) NODE(parser, OpenMPDispatchConstruct) - NODE(parser, OpenMPFlushConstruct) - NODE(parser, OpenMPLoopConstruct) NODE(parser, OpenMPExecutableAllocate) - NODE(parser, OpenMPAllocatorsConstruct) + NODE(parser, OpenMPFlushConstruct) NODE(parser, OpenMPGroupprivate) + NODE(parser, OpenMPLoopConstruct) NODE(parser, OpenMPRequiresConstruct) - NODE(parser, OpenMPSimpleStandaloneConstruct) - NODE(parser, OpenMPStandaloneConstruct) NODE(parser, OpenMPSectionConstruct) NODE(parser, OpenMPSectionsConstruct) + NODE(parser, OpenMPSimpleStandaloneConstruct) + NODE(parser, OpenMPStandaloneConstruct) NODE(parser, OpenMPThreadprivate) + NODE(parser, OpenMPUtilityConstruct) + NODE(parser, OpenStmt) NODE(parser, Optional) NODE(parser, OptionalStmt)