gtbercea updated this revision to Diff 200782. gtbercea added a comment. - Fix function call.
Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D60883/new/ https://reviews.llvm.org/D60883 Files: lib/CodeGen/CGOpenMPRuntime.cpp lib/CodeGen/CGOpenMPRuntime.h Index: lib/CodeGen/CGOpenMPRuntime.h =================================================================== --- lib/CodeGen/CGOpenMPRuntime.h +++ lib/CodeGen/CGOpenMPRuntime.h @@ -1623,6 +1623,9 @@ /// the predefined allocator and translates it into the corresponding address /// space. virtual bool hasAllocateAttributeForGlobalVar(const VarDecl *VD, LangAS &AS); + + /// Return whether the unified_shared_memory has been specified. + virtual bool hasRequiresUnifiedSharedMemory(); }; /// Class supports emissionof SIMD-only code. Index: lib/CodeGen/CGOpenMPRuntime.cpp =================================================================== --- lib/CodeGen/CGOpenMPRuntime.cpp +++ lib/CodeGen/CGOpenMPRuntime.cpp @@ -8255,6 +8255,10 @@ MapValuesArrayTy &Pointers, MapValuesArrayTy &Sizes, MapFlagsArrayTy &Types) const { + // If using unified memory, no need to do the mappings. + if (CGF.CGM.getOpenMPRuntime().hasRequiresUnifiedSharedMemory()) + return; + // Map other list items in the map clause which are not captured variables // but "declare target link" global variables. for (const auto *C : this->CurDir.getClausesOfKind<OMPMapClause>()) { @@ -9251,6 +9255,10 @@ return false; } +bool CGOpenMPRuntime::hasRequiresUnifiedSharedMemory() { + return HasRequiresUnifiedSharedMemory; +} + CGOpenMPRuntime::DisableAutoDeclareTargetRAII::DisableAutoDeclareTargetRAII( CodeGenModule &CGM) : CGM(CGM) {
Index: lib/CodeGen/CGOpenMPRuntime.h =================================================================== --- lib/CodeGen/CGOpenMPRuntime.h +++ lib/CodeGen/CGOpenMPRuntime.h @@ -1623,6 +1623,9 @@ /// the predefined allocator and translates it into the corresponding address /// space. virtual bool hasAllocateAttributeForGlobalVar(const VarDecl *VD, LangAS &AS); + + /// Return whether the unified_shared_memory has been specified. + virtual bool hasRequiresUnifiedSharedMemory(); }; /// Class supports emissionof SIMD-only code. Index: lib/CodeGen/CGOpenMPRuntime.cpp =================================================================== --- lib/CodeGen/CGOpenMPRuntime.cpp +++ lib/CodeGen/CGOpenMPRuntime.cpp @@ -8255,6 +8255,10 @@ MapValuesArrayTy &Pointers, MapValuesArrayTy &Sizes, MapFlagsArrayTy &Types) const { + // If using unified memory, no need to do the mappings. + if (CGF.CGM.getOpenMPRuntime().hasRequiresUnifiedSharedMemory()) + return; + // Map other list items in the map clause which are not captured variables // but "declare target link" global variables. for (const auto *C : this->CurDir.getClausesOfKind<OMPMapClause>()) { @@ -9251,6 +9255,10 @@ return false; } +bool CGOpenMPRuntime::hasRequiresUnifiedSharedMemory() { + return HasRequiresUnifiedSharedMemory; +} + CGOpenMPRuntime::DisableAutoDeclareTargetRAII::DisableAutoDeclareTargetRAII( CodeGenModule &CGM) : CGM(CGM) {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits