[MLIR] Consider AffineIfOp when getting the index set of an Op wrapped in nested loops
This diff attempts to resolve the TODO in getOpIndexSet (formerly
known as getInstIndexSet), which states "Add support to handle IfInsts
Major changes in this diff:
- Overload getIndexSet. The overloaded version considers both
AffineForOp and AffineIfOp.
- The getInstIndexSet is updated accordingly: its name is changed to
getOpIndexSet and its implementation is based on a new API getIVs
instead of getLoopIVs.
- Add addAffineIfOpDomain to FlatAffineConstraints, which extracts
new constraints from the integer set of AffineIfOp and merges it to
the current constraint system.
- Update how a Value is determined as dim or symbol for
ValuePositionMap in buildDimAndSymbolPositionMaps.
Differential Revision: https://reviews.llvm.org/D84698