#include <utility>
#include "mlir/Dialect/Affine/Analysis/NestedMatcher.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/raw_ostream.h"
usingnamespacemlir;
usingnamespacemlir::affine;
llvm::BumpPtrAllocator *&NestedMatch::allocator() { … }
NestedMatch NestedMatch::build(Operation *operation,
ArrayRef<NestedMatch> nestedMatches) { … }
llvm::BumpPtrAllocator *&NestedPattern::allocator() { … }
void NestedPattern::copyNestedToThis(ArrayRef<NestedPattern> nested) { … }
void NestedPattern::freeNested() { … }
NestedPattern::NestedPattern(ArrayRef<NestedPattern> nested,
FilterFunctionType filter)
: … { … }
NestedPattern::NestedPattern(const NestedPattern &other)
: … { … }
NestedPattern &NestedPattern::operator=(const NestedPattern &other) { … }
unsigned NestedPattern::getDepth() const { … }
void NestedPattern::matchOne(Operation *op,
SmallVectorImpl<NestedMatch> *matches) { … }
static bool isAffineForOp(Operation &op) { … }
static bool isAffineIfOp(Operation &op) { … }
namespace mlir {
namespace affine {
namespace matcher {
NestedPattern Op(FilterFunctionType filter) { … }
NestedPattern If(const NestedPattern &child) { … }
NestedPattern If(const FilterFunctionType &filter, const NestedPattern &child) { … }
NestedPattern If(ArrayRef<NestedPattern> nested) { … }
NestedPattern If(const FilterFunctionType &filter,
ArrayRef<NestedPattern> nested) { … }
NestedPattern For(const NestedPattern &child) { … }
NestedPattern For(const FilterFunctionType &filter,
const NestedPattern &child) { … }
NestedPattern For(ArrayRef<NestedPattern> nested) { … }
NestedPattern For(const FilterFunctionType &filter,
ArrayRef<NestedPattern> nested) { … }
bool isLoadOrStore(Operation &op) { … }
}
}
}