Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mlir
diff options
context:
space:
mode:
authorGroverkss <groverkss@gmail.com>2022-05-18 07:14:14 +0300
committerGroverkss <groverkss@gmail.com>2022-05-18 07:14:14 +0300
commite00cbbec06c08dc616a0d52a20f678b8fbd4e304 (patch)
tree3f3a7da590647455fc0203bd61fcc31bb62af692 /mlir
parent862b5a52335fef9e29013b00506e49342ac473f1 (diff)
[MLIR][Presburger] Cleanup getMaybeValues in FACV
This patch cleans up multiple getMaybeValue functions to take an IdKind instead of special functions. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D125617
Diffstat (limited to 'mlir')
-rw-r--r--mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h15
-rw-r--r--mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp4
-rw-r--r--mlir/lib/Dialect/SCF/Utils/AffineCanonicalizationUtils.cpp6
3 files changed, 10 insertions, 15 deletions
diff --git a/mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h b/mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h
index 0ddacad04792..b307f0d4d2e3 100644
--- a/mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h
+++ b/mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h
@@ -431,16 +431,11 @@ public:
return {values.data(), values.size()};
}
- inline ArrayRef<Optional<Value>> getMaybeDimValues() const {
- return {values.data(), getNumDimIds()};
- }
-
- inline ArrayRef<Optional<Value>> getMaybeSymbolValues() const {
- return {values.data() + getNumDimIds(), getNumSymbolIds()};
- }
-
- inline ArrayRef<Optional<Value>> getMaybeDimAndSymbolValues() const {
- return {values.data(), getNumDimIds() + getNumSymbolIds()};
+ inline ArrayRef<Optional<Value>>
+ getMaybeValues(presburger::IdKind kind) const {
+ assert(kind != IdKind::Local &&
+ "Local identifiers do not have any value attached to them.");
+ return {values.data() + getIdKindOffset(kind), getNumIdKind(kind)};
}
/// Sets the Value associated with the pos^th identifier.
diff --git a/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp b/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp
index b3bf543f93dc..2c8e3acacb4d 100644
--- a/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp
+++ b/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp
@@ -1666,8 +1666,8 @@ void FlatAffineRelation::compose(const FlatAffineRelation &other) {
convertToLocal(IdKind::SetDim, getNumDomainDims() - removeDims,
getNumDomainDims());
- auto thisMaybeValues = getMaybeDimValues();
- auto relMaybeValues = rel.getMaybeDimValues();
+ auto thisMaybeValues = getMaybeValues(IdKind::SetDim);
+ auto relMaybeValues = rel.getMaybeValues(IdKind::SetDim);
// Add and match domain of `rel` to domain of `this`.
for (unsigned i = 0, e = rel.getNumDomainDims(); i < e; ++i)
diff --git a/mlir/lib/Dialect/SCF/Utils/AffineCanonicalizationUtils.cpp b/mlir/lib/Dialect/SCF/Utils/AffineCanonicalizationUtils.cpp
index 78ad8532e0f3..5abc780e22d8 100644
--- a/mlir/lib/Dialect/SCF/Utils/AffineCanonicalizationUtils.cpp
+++ b/mlir/lib/Dialect/SCF/Utils/AffineCanonicalizationUtils.cpp
@@ -43,8 +43,8 @@ static LogicalResult alignAndAddBound(FlatAffineValueConstraints &constraints,
unsigned pos, AffineMap map,
ValueRange operands) {
SmallVector<Value> dims, syms, newSyms;
- unpackOptionalValues(constraints.getMaybeDimValues(), dims);
- unpackOptionalValues(constraints.getMaybeSymbolValues(), syms);
+ unpackOptionalValues(constraints.getMaybeValues(IdKind::SetDim), dims);
+ unpackOptionalValues(constraints.getMaybeValues(IdKind::Symbol), syms);
AffineMap alignedMap =
alignAffineMapWithValues(map, operands, dims, syms, &newSyms);
@@ -182,7 +182,7 @@ canonicalizeMinMaxOp(RewriterBase &rewriter, Operation *op, AffineMap map,
// Lower and upper bound of `op` are equal. Replace `minOp` with its bound.
AffineMap newMap = alignedBoundMap;
SmallVector<Value> newOperands;
- unpackOptionalValues(constraints.getMaybeDimAndSymbolValues(), newOperands);
+ unpackOptionalValues(constraints.getMaybeValues(), newOperands);
// If dims/symbols have known constant values, use those in order to simplify
// the affine map further.
for (int64_t i = 0, e = constraints.getNumIds(); i < e; ++i) {