30 enum class SlicesOverlapKind {
39 EitherIdenticalOrDisjoint
48 llvm::function_ref<bool(mlir::Value, mlir::Value)>;
61 static SlicesOverlapKind
62 analyze(mlir::Value ref1, mlir::Value ref2,
65 static bool isDesignatingArrayInOrder(hlfir::DesignateOp designate,
66 hlfir::ElementalOpInterface elemental);
73 mlir::Value lb, ub, stride;
75 SectionDesc(mlir::Value lb, mlir::Value ub, mlir::Value stride);
84 bool operator==(
const SectionDesc &other)
const;
93 static SectionDesc readSectionDesc(mlir::Operation::operand_iterator &it,
103 static std::pair<mlir::Value, mlir::Value>
104 getOrderedBounds(
const SectionDesc &desc);
113 static bool areDisjointSections(
const SectionDesc &desc1,
114 const SectionDesc &desc2);
132 areIdenticalSections(
const SectionDesc &desc1,
const SectionDesc &desc2,
136 static bool isLess(mlir::Value v1, mlir::Value v2);