[llvm-branch-commits] [flang] [Flang][OpenMP] Derived type explicit allocatable member mapping (PR #96266)

Kareem Ergawy via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Sun Jul 14 22:56:33 PDT 2024


================
@@ -671,4 +672,51 @@ static inline bool isEqual(const Fortran::lower::SomeExpr *x,
 }
 } // end namespace Fortran::lower
 
+// OpenMP utility functions used in locations outside of the
+// OpenMP lowering.
+namespace Fortran::lower::omp {
+
+[[maybe_unused]] static void fillMemberIndices(
+    llvm::SmallVector<llvm::SmallVector<int>> &memberPlacementData) {
+  size_t largestIndicesSize =
+      std::max_element(memberPlacementData.begin(), memberPlacementData.end(),
+                       [](auto a, auto b) { return a.size() < b.size(); })
+          ->size();
+
+  // DenseElementsAttr expects a rectangular shape for the data, so all
+  // index lists have to be of the same length, this emplaces -1 as filler.
----------------
ergawy wrote:

Does the `-1` value has a significance here or is it just a random value?

https://github.com/llvm/llvm-project/pull/96266


More information about the llvm-branch-commits mailing list