[Openmp-commits] [llvm] [clang] [openmp] [OpenMP] Rework handling of global ctor/dtors in OpenMP (PR #71739)
Matt Arsenault via Openmp-commits
openmp-commits at lists.llvm.org
Thu Nov 9 05:11:27 PST 2023
================
@@ -2794,6 +2794,14 @@ void ItaniumCXXABI::registerGlobalDtor(CodeGenFunction &CGF, const VarDecl &D,
if (D.isNoDestroy(CGM.getContext()))
return;
+ // OpenMP offloading supports C++ constructors and destructors but we do not
+ // always have 'atexit' available. Instead lower these to use the LLVM global
+ // destructors which we can handle directly in the runtime.
+ if (CGM.getLangOpts().OpenMP && CGM.getLangOpts().OpenMPIsTargetDevice &&
+ !D.isStaticLocal() &&
+ (CGM.getTriple().isAMDGPU() || CGM.getTriple().isNVPTX()))
----------------
arsenm wrote:
Would also just hide this in a target/lang predicate that lists these
https://github.com/llvm/llvm-project/pull/71739
More information about the Openmp-commits
mailing list