llvm-project
24da7fa0 - [MLIR][Presburger] Use Identifiers outside Presburger library (#77316)

Commit
1 year ago
[MLIR][Presburger] Use Identifiers outside Presburger library (#77316) The pull request includes the following changes. 1. Refactors the interface to `PresburgerSpace::identifiers` to `setId` and a const `getId`, instead of previous `getId` which returned a mutable reference. `resetIds` does not need to be called to use identifiers, `setId` calls `resetIds` if identifiers are not enabled. 2. Deprecates `FlatAffineRelation` by refactoring all usages of `FlatAffineRelation` to `IntegerRelation`. To achieve this, `FlatAffineRelation::compose` is refactored into `IntegerRelation::mergeAndCompose`. 3. Deletes unneeded overrides of virtual functions `hasConsistentState`, `clearAndCopyFrom` and `fourierMotzkinEliminate` from `FlatLinearValueConstraints` as these were only used through `FlatAffineRelation` and we now use `IntegerRelation`'s member functions instead. 4. Fixes an existing bug in FlatLinearValueConstraints' constructor which caused identifiers set by superclass FlatLinearConstraints' constructor to be erased. 5. Fixes `IntegerRelation::convertVarKind` not preserving identifiers.
Author
Parents
Loading