[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:23 PDT 2025
================
@@ -2365,6 +2402,67 @@ static bool IsSymbolStaticStorageDuration(const Symbol &symbol) {
(ultSym.flags().test(Symbol::Flag::InCommonBlock));
}
+static bool IsTargetCaptureImplicitlyFirstprivatizeable(const Symbol &symbol,
+ const Symbol::Flags &dsa, const Symbol::Flags &dataSharingAttributeFlags,
+ const Symbol::Flags &dataMappingAttributeFlags,
+ std::map<parser::OmpVariableCategory::Value,
+ parser::OmpDefaultmapClause::ImplicitBehavior>
+ defaultMap) {
+ if (!defaultMap.empty()) {
+ if (llvm::is_contained(
+ defaultMap, parser::OmpVariableCategory::Value::Scalar) &&
+ defaultMap[parser::OmpVariableCategory::Value::Scalar] !=
+ parser::OmpDefaultmapClause::ImplicitBehavior::Firstprivate) {
+ return false;
+ }
+
+ if (llvm::is_contained(
----------------
bhandarkar-pranav wrote:
This check seems to subsume the check above. If that's correct, then we should lead with this check rather than the one before.
https://github.com/llvm/llvm-project/pull/147442
More information about the flang-commits
mailing list