TIFitis added inline comments.
================ Comment at: llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:4181-4191 + for (auto &UseDeviceOp : UseDeviceInfos) { + auto *UseDeviceVal = UseDeviceOp.first; + auto &UseDeviceInfo = UseDeviceOp.second; + SmallDenseSet<Use *> ReplaceUses; + for (auto &Use : UseDeviceVal->uses()) { + if (UseDeviceInfo.Uses.find(&Use) == UseDeviceInfo.Uses.end()) + ReplaceUses.insert(&Use); ---------------- I couldn't come up with a better way for the code generated inside the `target data region` to use the new `AllocaPtrs` when accessing `map operands` marked with the `use_device_ptr` clause. Currently I am just comparing the `Users` list before and after generating the `data region` and replacing the new `uses`. Alternative method would be to use `mlir::LLVM::moduleTranslation.mapValue` method to temporarily remap the `mlir::Value` for the `use_device_ptr` operands to the `AllocaPtrs` `llvm::Value`. But `mapValue` doesn't allow remapping of values. @kiranchandramohan Is there a good reason to prevent remapping of values? Let me know if anyone has a better way of doing this :) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146557/new/ https://reviews.llvm.org/D146557 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits