#include #include ">

MLIR: lib/Dialect/Affine/Analysis/LoopAnalysis.cpp File Reference (original) (raw)

#include "[mlir/Dialect/Affine/Analysis/LoopAnalysis.h](LoopAnalysis%5F8h%5Fsource.html)"
#include "[mlir/Analysis/SliceAnalysis.h](SliceAnalysis%5F8h%5Fsource.html)"
#include "[mlir/Dialect/Affine/Analysis/AffineAnalysis.h](AffineAnalysis%5F8h%5Fsource.html)"
#include "[mlir/Dialect/Affine/Analysis/AffineStructures.h](AffineStructures%5F8h%5Fsource.html)"
#include "[mlir/Dialect/Affine/Analysis/NestedMatcher.h](NestedMatcher%5F8h%5Fsource.html)"
#include "[mlir/Dialect/Affine/Analysis/Utils.h](Dialect%5F2Affine%5F2Analysis%5F2Utils%5F8h%5Fsource.html)"
#include "[mlir/Dialect/Affine/IR/AffineValueMap.h](AffineValueMap%5F8h%5Fsource.html)"
#include "llvm/Support/MathExtras.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/Support/Debug.h"
#include <numeric>
#include <optional>
#include <type_traits>

Go to the source code of this file.

Functions
static bool isAccessIndexInvariant (Value iv, Value index)
Given an affine.for iv and an access index of type index, returns true if index is independent of iv and false otherwise. More...
template
static bool isVectorElement (LoadOrStoreOp memoryOp)
static bool isVectorizableLoopBodyWithOpCond (AffineForOp loop, const VectorizableOpFun &isVectorizableOp, NestedPattern &vectorTransferMatcher)

DEBUG_TYPE

#define DEBUG_TYPE "affine-loop-analysis"

VectorizableOpFun

isAccessIndexInvariant()

static bool isAccessIndexInvariant ( Value iv, Value index ) static

isVectorElement()

template

static bool isVectorElement ( LoadOrStoreOp memoryOp) static

isVectorizableLoopBodyWithOpCond()

static bool isVectorizableLoopBodyWithOpCond ( AffineForOp loop, const VectorizableOpFun & isVectorizableOp, NestedPattern & vectorTransferMatcher ) static