ABataev added a comment.

Could you provide a little bit more comments what are you doing in this patch? 
It would be good t have a detailed description of the codegen scheme.


================
Comment at: lib/CodeGen/CGOpenMPRuntime.cpp:2390
   }
+  case OMPRTL__tgt_target_data_mapper: {
+    // Build void __tgt_target_data_mapper(int64_t device_id, int32_t arg_num,
----------------
You need to implement these mapper functions first.


================
Comment at: lib/CodeGen/CGOpenMPRuntime.cpp:6769-6773
+  const OMPExecutableDirective *CurDir = nullptr;
+
+  /// The mapper directive from where the map clauses were extracted. One and
+  /// only one of CurDir and CurMapperDir is valid.
+  const OMPDeclareMapperDecl *CurMapperDir = nullptr;
----------------
Use `llvm::PointerUnion<OMPExecutableDirective *, OMPDeclareMapperDecl *>` to 
save the space.


================
Comment at: lib/CodeGen/CGOpenMPRuntime.h:351
+  /// is the asynchronous version.
+  llvm::DenseMap<const OMPDeclareMapperDecl *,
+                 std::pair<llvm::Function *, llvm::Function *>>
----------------
You should be very careful with this map. If the mapper is declared in the 
function context, it must be removed from this map as soon as the function 
processing is completed. All local declarations are removed after this and 
their address might be used again.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59474/new/

https://reviews.llvm.org/D59474



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to