jdoerfert added a comment.

typo in the title.



================
Comment at: clang/lib/CodeGen/CGOpenMPRuntime.h:1444
+    /// alloca address where the runtime returns the device pointers.
+    llvm::DenseMap<const ValueDecl *, llvm::Value *> CaptureDeviceAddrMap;
   };
----------------
If it is an alloca (for sure) use `llvm::AllocaInst`.


================
Comment at: clang/test/OpenMP/target_data_use_device_ptr_codegen.cpp:418
-    // CK2:     [[VAL1:%.+]] = load ptr, ptr [[BP1]],
-    // CK2:     store ptr [[VAL1]], ptr [[PVT1:%.+]],
     // CK2:     store ptr [[PVT1]], ptr [[_PVT1:%.+]],
----------------
Did we just change the order or is this non-deterministic? The latter is not 
acceptable, the former might be.


================
Comment at: llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:4131
+      for (auto DeviceMap : Info.DevicePtrInfoMap) {
+        if (isa<AllocaInst>(DeviceMap.second.second)) {
+          auto *LI =
----------------
What else could it be here?


================
Comment at: llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:4694
+      } else if (CombinedInfo.DevicePointers[I] == DeviceInfoTy::Address) {
+        Info.DevicePtrInfoMap[BPVal] = {BP, BP};
+        assert(DeviceAddrCB &&
----------------
What if the PointerBCOrASCast and the GEP are both no-ops, and BPVal is an 
alloca. Would that cause a problem as we later only check if the type of the 
value is an alloca. That said, it seems dangerous to only rely on the type of 
the value.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D152554

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

Reply via email to