[flang-commits] [flang] [Flang][OpenMP] Make implicitly captured scalars fully firstprivatized (PR #147442)
Pranav Bhandarkar via flang-commits
flang-commits at lists.llvm.org
Mon Jul 28 09:08:21 PDT 2025
================
@@ -43,16 +43,42 @@ bool DataSharingProcessor::OMPConstructSymbolVisitor::isSymbolDefineBy(
[](const auto &functionParserNode) { return false; }});
}
+static bool isConstructWithTopLevelTarget(lower::pft::Evaluation &eval) {
+ const auto *ompEval = eval.getIf<parser::OpenMPConstruct>();
+ if (ompEval) {
+ auto dir = parser::omp::GetOmpDirectiveName(ompEval).v;
+ switch (dir) {
+ case llvm::omp::Directive::OMPD_target:
+ case llvm::omp::Directive::OMPD_target_loop:
+ case llvm::omp::Directive::OMPD_target_parallel_do:
+ case llvm::omp::Directive::OMPD_target_parallel_do_simd:
+ case llvm::omp::Directive::OMPD_target_parallel_loop:
+ case llvm::omp::Directive::OMPD_target_teams_distribute:
+ case llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do:
+ case llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do_simd:
+ case llvm::omp::Directive::OMPD_target_teams_distribute_simd:
+ case llvm::omp::Directive::OMPD_target_teams_loop:
+ case llvm::omp::Directive::OMPD_target_simd:
+ return true;
+ break;
+ default:
+ return false;
+ break;
+ }
+ }
+ return false;
+}
+
DataSharingProcessor::DataSharingProcessor(
lower::AbstractConverter &converter, semantics::SemanticsContext &semaCtx,
const List<Clause> &clauses, lower::pft::Evaluation &eval,
bool shouldCollectPreDeterminedSymbols, bool useDelayedPrivatization,
- lower::SymMap &symTable)
+ lower::SymMap &symTable, bool isTargetPrivitization)
----------------
bhandarkar-pranav wrote:
nit: Spelling of Privatization.
https://github.com/llvm/llvm-project/pull/147442
More information about the flang-commits
mailing list