[flang-commits] [flang] [flang][OpenMP] Extend `do concurrent` mapping to device (PR #155987)
Sergio Afonso via flang-commits
flang-commits at lists.llvm.org
Tue Sep 9 07:16:40 PDT 2025
================
@@ -244,6 +325,51 @@ class DoConcurrentConversion
}
private:
+ struct TargetDeclareShapeCreationInfo {
+ // Note: We use `std::vector` (rather than `llvm::SmallVector` as usual) to
+ // interface more easily `ShapeShiftOp::getOrigins()` which returns
+ // `std::vector`.
+ std::vector<mlir::Value> startIndices{};
+ std::vector<mlir::Value> extents{};
+
+ TargetDeclareShapeCreationInfo(mlir::Value liveIn) {
+ mlir::Value shape = nullptr;
+ mlir::Operation *liveInDefiningOp = liveIn.getDefiningOp();
+ auto declareOp =
+ mlir::dyn_cast_if_present<hlfir::DeclareOp>(liveInDefiningOp);
+
+ if (declareOp != nullptr)
+ shape = declareOp.getShape();
+
+ if (shape == nullptr)
----------------
skatrak wrote:
Nit: Feel free to ignore, but I see many comparisons to `nullptr` in this function that could be simplified. E.g. `if (!shape)` here.
https://github.com/llvm/llvm-project/pull/155987
More information about the flang-commits
mailing list