29 enum class SlicesOverlapKind {
38 EitherIdenticalOrDisjoint
47 static SlicesOverlapKind analyze(mlir::Value ref1, mlir::Value ref2);
49 static bool isDesignatingArrayInOrder(hlfir::DesignateOp designate,
50 hlfir::ElementalOpInterface elemental);
57 mlir::Value lb, ub, stride;
59 SectionDesc(mlir::Value lb, mlir::Value ub, mlir::Value stride);
68 bool operator==(
const SectionDesc &other)
const;
77 static SectionDesc readSectionDesc(mlir::Operation::operand_iterator &it,
87 static std::pair<mlir::Value, mlir::Value>
88 getOrderedBounds(
const SectionDesc &desc);
97 static bool areDisjointSections(
const SectionDesc &desc1,
98 const SectionDesc &desc2);
111 static bool areIdenticalSections(
const SectionDesc &desc1,
112 const SectionDesc &desc2);
115 static bool isLess(mlir::Value v1, mlir::Value v2);