[flang-commits] [flang] [flang][openacc] Do not check for unlabelled CYCLE branching (PR #73839)
Valentin Clement バレンタイン クレメン via flang-commits
flang-commits at lists.llvm.org
Wed Nov 29 21:13:46 PST 2023
================
@@ -62,20 +62,24 @@ template <typename D> class NoBranchingEnforce {
if (const auto &cycleName{cycleStmt.v}) {
CheckConstructNameBranching("CYCLE", cycleName.value());
} else {
- switch ((llvm::omp::Directive)currentDirective_) {
- // exclude directives which do not need a check for unlabelled CYCLES
- case llvm::omp::Directive::OMPD_do:
- case llvm::omp::Directive::OMPD_simd:
- case llvm::omp::Directive::OMPD_parallel_do:
- case llvm::omp::Directive::OMPD_parallel_do_simd:
- case llvm::omp::Directive::OMPD_distribute_parallel_do:
- case llvm::omp::Directive::OMPD_distribute_parallel_do_simd:
- case llvm::omp::Directive::OMPD_distribute_parallel_for:
- case llvm::omp::Directive::OMPD_distribute_simd:
- case llvm::omp::Directive::OMPD_distribute_parallel_for_simd:
- return;
- default:
- break;
+ if constexpr (std::is_same_v<D, llvm::omp::Directive>) {
+ switch ((llvm::omp::Directive)currentDirective_) {
+ // exclude directives which do not need a check for unlabelled CYCLES
+ case llvm::omp::Directive::OMPD_do:
+ case llvm::omp::Directive::OMPD_simd:
+ case llvm::omp::Directive::OMPD_parallel_do:
+ case llvm::omp::Directive::OMPD_parallel_do_simd:
+ case llvm::omp::Directive::OMPD_distribute_parallel_do:
+ case llvm::omp::Directive::OMPD_distribute_parallel_do_simd:
+ case llvm::omp::Directive::OMPD_distribute_parallel_for:
+ case llvm::omp::Directive::OMPD_distribute_simd:
+ case llvm::omp::Directive::OMPD_distribute_parallel_for_simd:
+ return;
+ default:
+ break;
+ }
+ } else if constexpr (std::is_same_v<D, llvm::acc::Directive>) {
+ return; // OpenACC construct do not need check for unlabelled CYCLES
----------------
clementval wrote:
https://github.com/llvm/llvm-project/pull/73897
https://github.com/llvm/llvm-project/pull/73839
More information about the flang-commits
mailing list