llvm-project/mlir/lib/Transforms
Vincent Zhao 654e8aadfd [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
surronding `op`".

Major changes in this diff:

1. Overload `getIndexSet`. The overloaded version considers both
`AffineForOp` and `AffineIfOp`.
2. The `getInstIndexSet` is updated accordingly: its name is changed to
`getOpIndexSet` and its implementation is based on a new API `getIVs`
instead of `getLoopIVs`.
3. Add `addAffineIfOpDomain` to `FlatAffineConstraints`, which extracts
new constraints from the integer set of `AffineIfOp` and merges it to
the current constraint system.
4. Update how a `Value` is determined as dim or symbol for
`ValuePositionMap` in `buildDimAndSymbolPositionMaps`.

Differential Revision: https://reviews.llvm.org/D84698
2020-08-09 03:16:03 +05:30
..
Utils [MLIR] Consider AffineIfOp when getting the index set of an Op wrapped in nested loops 2020-08-09 03:16:03 +05:30
BufferPlacement.cpp [mlir] Extended Buffer Assignment to support AllocaOps. 2020-08-03 11:20:30 +02:00
CMakeLists.txt [MLIR] Introduce inter-procedural memref layout normalization 2020-07-30 18:12:56 +05:30
CSE.cpp [MLIR] Add RegionKindInterface 2020-07-15 14:27:05 -07:00
Canonicalizer.cpp [MLIR][NFC] applyPatternsGreedily -> applyPatternsAndFoldGreedily 2020-04-10 12:55:21 +05:30
CopyRemoval.cpp [mlir][NFC] Polish copy removal transform 2020-07-28 08:34:44 +02:00
DialectConversion.cpp [mlir][DialectConversion] Remove usage of std::distance to track position. 2020-08-03 10:06:05 -07:00
Inliner.cpp [mlir][NFC] Remove usernames and google bug numbers from TODO comments. 2020-07-07 01:40:52 -07:00
LocationSnapshot.cpp [mlir][Pass] Update the PassGen to generate base classes instead of utilities 2020-04-07 14:08:52 -07:00
LoopCoalescing.cpp [mlir] NFC: Rename LoopOps dialect to SCF (Structured Control Flow) 2020-05-11 15:04:27 +02:00
LoopFusion.cpp [MLIR][Affine] Fix createPrivateMemRef in affine fusion 2020-08-04 12:17:48 -07:00
LoopInvariantCodeMotion.cpp [NFC][MLIR] Undo anonymous namespace change from https://reviews.llvm.org/D82417 2020-06-23 20:21:42 -07:00
MemRefDataFlowOpt.cpp [MLIR] Vector store to load forwarding 2020-07-28 11:30:54 -07:00
NormalizeMemRefs.cpp [MLIR] Introduce inter-procedural memref layout normalization 2020-07-30 18:12:56 +05:30
OpStats.cpp [mlir][Pass] Update the PassGen to generate base classes instead of utilities 2020-04-07 14:08:52 -07:00
ParallelLoopCollapsing.cpp [mlir] NFC: Rename LoopOps dialect to SCF (Structured Control Flow) 2020-05-11 15:04:27 +02:00
PassDetail.h [mlir][Pass] Update the PassGen to generate base classes instead of utilities 2020-04-07 14:08:52 -07:00
PipelineDataTransfer.cpp [mlir][NFC] Remove usernames and google bug numbers from TODO comments. 2020-07-07 01:40:52 -07:00
SCCP.cpp [MLIR] Add argument related API to Region 2020-07-14 09:28:29 -07:00
StripDebugInfo.cpp [mlir][Pass] Update the PassGen to generate base classes instead of utilities 2020-04-07 14:08:52 -07:00
SymbolDCE.cpp [mlir][Symbol] Change Symbol from a Trait into an OpInterface. 2020-04-27 13:04:49 -07:00
ViewOpGraph.cpp [NFC] Use llvm::hasSingleElement() in place of .size() == 1 2020-06-17 13:26:10 -07:00
ViewRegionGraph.cpp [mlir][Pass] Update the PassGen to generate base classes instead of utilities 2020-04-07 14:08:52 -07:00