13 #ifndef MLIR_ANALYSIS_LOOP_ANALYSIS_H 14 #define MLIR_ANALYSIS_LOOP_ANALYSIS_H 17 #include "llvm/ADT/ArrayRef.h" 18 #include "llvm/ADT/Optional.h" 39 SmallVectorImpl<Value> *operands);
60 DenseSet<Value, DenseMapInfo<Value>>
88 #endif // MLIR_ANALYSIS_LOOP_ANALYSIS_H Definition: InferTypeOpInterface.cpp:20
Definition: Attributes.h:129
std::function< bool(AffineForOp)> VectorizableLoopFun
Definition: LoopAnalysis.h:63
auto map(Fn fun, IterType begin, IterType end) -> SmallVector< typename std::result_of< Fn(decltype(*begin))>::type, 8 >
Map with iterators.
Definition: Functional.h:28
void buildTripCountMapAndOperands(AffineForOp forOp, AffineMap *map, SmallVectorImpl< Value > *operands)
Definition: LoopAnalysis.cpp:35
uint64_t getLargestDivisorOfTripCount(AffineForOp forOp)
Definition: LoopAnalysis.cpp:117
bool isInstwiseShiftValid(AffineForOp forOp, ArrayRef< uint64_t > shifts)
Definition: LoopAnalysis.cpp:355
Definition: NestedMatcher.h:92
Optional< uint64_t > getConstantTripCount(AffineForOp forOp)
Definition: LoopAnalysis.cpp:91
DenseSet< Value, DenseMapInfo< Value > > getInvariantAccesses(Value iv, ArrayRef< Value > indices)
Definition: LoopAnalysis.cpp:191
bool isVectorizableLoopBody(AffineForOp loop, NestedPattern &vectorTransferMatcher)
Definition: LoopAnalysis.cpp:345