================
@@ -5315,6 +5320,46 @@ convertTargetOpsInNest(Operation *op, 
llvm::IRBuilderBase &builder,
               return WalkResult::interrupt();
             return WalkResult::skip();
           }
+
+          // Non-target ops might nest target-related ops, therefore, we
+          // translate them as non-OpenMP scopes. Translating them is needed by
+          // nested target-related ops since they might need LLVM values 
defined
+          // in their parent non-target ops.
+          if (isa<omp::OpenMPDialect>(oper->getDialect()) &&
+              oper->getParentOfType<LLVM::LLVMFuncOp>() &&
+              !oper->getRegions().empty()) {
----------------
skatrak wrote:

I'm wondering what should happen to OpenMP ops that don't have regions. If they 
return a value, it seems like that value could end up impacting what's passed 
into an `omp.map.info` as an argument. Maybe we should map their results to 
something as well.

https://github.com/llvm/llvm-project/pull/130078
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to