Lines Matching defs:loop
1 //===- LoopAnalysis.cpp - Misc loop analysis routines //-------------------===//
9 // This file implements miscellaneous loop analysis routines.
34 #define DEBUG_TYPE "affine-loop-analysis"
36 /// Returns the trip count of the loop as an affine expression if the latter is
87 /// Returns the trip count of the loop if it's a constant, std::nullopt
255 isVectorizableLoopBodyWithOpCond(AffineForOp loop,
258 auto *forOp = loop.getOperation();
311 // vectorizable for a loop to qualify as vectorizable.
317 if (isVectorizableOp && !isVectorizableOp(loop, *op)) {
325 AffineForOp loop, int *memRefDim, NestedPattern &vectorTransferMatcher) {
327 VectorizableOpFun fun([memRefDim](AffineForOp loop, Operation &op) {
332 load ? isContiguousAccess(loop.getInductionVar(),
335 : isContiguousAccess(loop.getInductionVar(),
339 // If memory accesses vary across different dimensions then the loop is
347 return isVectorizableLoopBodyWithOpCond(loop, fun, vectorTransferMatcher);
351 AffineForOp loop, NestedPattern &vectorTransferMatcher) {
352 return isVectorizableLoopBodyWithOpCond(loop, nullptr, vectorTransferMatcher);