#include "mlir/Dialect/Affine/Analysis/AffineStructures.h"
#include "mlir/Analysis/Presburger/IntegerRelation.h"
#include "mlir/Analysis/Presburger/LinearTransform.h"
#include "mlir/Analysis/Presburger/Simplex.h"
#include "mlir/Analysis/Presburger/Utils.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Affine/IR/AffineValueMap.h"
#include "mlir/Dialect/Utils/StaticValueUtils.h"
#include "mlir/IR/AffineExprVisitor.h"
#include "mlir/IR/IntegerSet.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include <optional>
#define DEBUG_TYPE …
usingnamespacemlir;
usingnamespaceaffine;
usingnamespacepresburger;
void FlatAffineValueConstraints::addInductionVarOrTerminalSymbol(Value val) { … }
LogicalResult
FlatAffineValueConstraints::addAffineForOpDomain(AffineForOp forOp) { … }
LogicalResult FlatAffineValueConstraints::addAffineParallelOpDomain(
AffineParallelOp parallelOp) { … }
LogicalResult
FlatAffineValueConstraints::addDomainFromSliceMaps(ArrayRef<AffineMap> lbMaps,
ArrayRef<AffineMap> ubMaps,
ArrayRef<Value> operands) { … }
void FlatAffineValueConstraints::addAffineIfOpDomain(AffineIfOp ifOp) { … }
LogicalResult FlatAffineValueConstraints::addBound(BoundType type, unsigned pos,
AffineMap boundMap,
ValueRange boundOperands) { … }
LogicalResult FlatAffineValueConstraints::addSliceBounds(
ArrayRef<Value> values, ArrayRef<AffineMap> lbMaps,
ArrayRef<AffineMap> ubMaps, ArrayRef<Value> operands) { … }
LogicalResult
FlatAffineValueConstraints::composeMap(const AffineValueMap *vMap) { … }
static void turnSymbolIntoDim(FlatAffineValueConstraints *cst, Value value) { … }
void FlatAffineValueConstraints::convertLoopIVSymbolsToDims() { … }
void FlatAffineValueConstraints::getIneqAsAffineValueMap(
unsigned pos, unsigned ineqPos, AffineValueMap &vmap,
MLIRContext *context) const { … }
FlatAffineValueConstraints FlatAffineRelation::getDomainSet() const { … }
FlatAffineValueConstraints FlatAffineRelation::getRangeSet() const { … }
void FlatAffineRelation::compose(const FlatAffineRelation &other) { … }
void FlatAffineRelation::inverse() { … }
void FlatAffineRelation::insertDomainVar(unsigned pos, unsigned num) { … }
void FlatAffineRelation::insertRangeVar(unsigned pos, unsigned num) { … }
void FlatAffineRelation::appendDomainVar(unsigned num) { … }
void FlatAffineRelation::appendRangeVar(unsigned num) { … }
void FlatAffineRelation::removeVarRange(VarKind kind, unsigned varStart,
unsigned varLimit) { … }
LogicalResult mlir::affine::getRelationFromMap(AffineMap &map,
IntegerRelation &rel) { … }
LogicalResult mlir::affine::getRelationFromMap(const AffineValueMap &map,
IntegerRelation &rel) { … }