[flang-commits] [PATCH] D90324: [Flang][OpenMP][NFC][1/2] Reorder OmpStructureChecker and simplify it.
Kiran Chandramohan via Phabricator via flang-commits
flang-commits at lists.llvm.org
Thu Oct 29 02:54:47 PDT 2020
kiranchandramohan added a comment.
> We might even go further and generate these with TableGen. I guess we have most of the information in OMP.td or ACC.td for that.
> Anyway might be wise to first land this patch and look at TableGen in a next step. Would be happy to look at it if it makes sense.
+1
> Makes seperation between constructs, directives and clauses(sub classes are seperated).
Is this change in this patch?
================
Comment at: flang/lib/Semantics/check-omp-structure.cpp:21
+
+#define CHECK_REQ_CONSTANT_SCALAR_INT_CLAUSE(X, Y) \
+ void OmpStructureChecker::Enter(const parser::OmpClause::X &c) { \
----------------
The name is a bit misleading since it does CheckAllowed also.
================
Comment at: flang/lib/Semantics/check-omp-structure.cpp:363
-void OmpStructureChecker::Enter(const parser::OmpNowait &) {
- CheckAllowed(llvm::omp::Clause::OMPC_nowait);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Inbranch &) {
- CheckAllowed(llvm::omp::Clause::OMPC_inbranch);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Mergeable &) {
- CheckAllowed(llvm::omp::Clause::OMPC_mergeable);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Nogroup &) {
- CheckAllowed(llvm::omp::Clause::OMPC_nogroup);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Notinbranch &) {
- CheckAllowed(llvm::omp::Clause::OMPC_notinbranch);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Untied &) {
- CheckAllowed(llvm::omp::Clause::OMPC_untied);
-}
-
-void OmpStructureChecker::Enter(const parser::OmpClause::Collapse &x) {
- CheckAllowed(llvm::omp::Clause::OMPC_collapse);
- // collapse clause must have a parameter
- RequiresConstantPositiveParameter(llvm::omp::Clause::OMPC_collapse, x.v);
-}
-
-void OmpStructureChecker::Enter(const parser::OmpClause::Copyin &) {
- CheckAllowed(llvm::omp::Clause::OMPC_copyin);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Copyprivate &) {
- CheckAllowed(llvm::omp::Clause::OMPC_copyprivate);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Device &) {
- CheckAllowed(llvm::omp::Clause::OMPC_device);
-}
-void OmpStructureChecker::Enter(const parser::OmpDistScheduleClause &) {
- CheckAllowed(llvm::omp::Clause::OMPC_dist_schedule);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Final &) {
- CheckAllowed(llvm::omp::Clause::OMPC_final);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Firstprivate &) {
- CheckAllowed(llvm::omp::Clause::OMPC_firstprivate);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::From &) {
- CheckAllowed(llvm::omp::Clause::OMPC_from);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Grainsize &x) {
- CheckAllowed(llvm::omp::Clause::OMPC_grainsize);
- RequiresPositiveParameter(llvm::omp::Clause::OMPC_grainsize, x.v);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::Lastprivate &) {
- CheckAllowed(llvm::omp::Clause::OMPC_lastprivate);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::NumTasks &x) {
- CheckAllowed(llvm::omp::Clause::OMPC_num_tasks);
- RequiresPositiveParameter(llvm::omp::Clause::OMPC_num_tasks, x.v);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::NumTeams &x) {
- CheckAllowed(llvm::omp::Clause::OMPC_num_teams);
- RequiresPositiveParameter(llvm::omp::Clause::OMPC_num_teams, x.v);
-}
-void OmpStructureChecker::Enter(const parser::OmpClause::NumThreads &x) {
- CheckAllowed(llvm::omp::Clause::OMPC_num_threads);
- RequiresPositiveParameter(llvm::omp::Clause::OMPC_num_threads, x.v);
- // if parameter is variable, defer to Expression Analysis
-}
-
+// Following clauses do not have a seperate node in parse-tree.h.
+// They fall under 'struct OmpClause' in parse-tree.h.
----------------
Nit: seperate -> separate. Used in a few other places and in the summary.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D90324/new/
https://reviews.llvm.org/D90324
More information about the flang-commits
mailing list