The new class hierarchy is as follows:
- IntegerRelation (no change)
- IntegerPolyhedron (no change)
- FlatLinearConstraints: provides an AffineExpr-based API
- FlatLinearValueConstraints: stores an additional mapping of non-local vars to SSA values
- FlatAffineValueConstraints: provides additional helper functions for Affine dialect ops
- FlatAffineRelation (no change)
FlatLinearConstraints and FlatLinearValueConstraints are moved from MLIRAffineAnalysis to MLIRAnalysis and can be used without depending on the Affine dialect.
This change is in preparation of D145681, which adds an MLIR interface that depends on FlatConstraints (and cannot depend on the Affine dialect or any other dialect).