MLIR
21.0.0git
|
#include "mlir/Dialect/Affine/Passes.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Affine/Transforms/Transforms.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Interfaces/FunctionInterfaces.h"
#include "mlir/Interfaces/ValueBoundsOpInterface.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "llvm/ADT/IntEqClasses.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/InterleavedRange.h"
#include "mlir/Dialect/Affine/Passes.h.inc"
Go to the source code of this file.
Classes | |
struct | SimplifyAffineMinMaxPass |
Creates a simplification pass for affine min/max/apply. More... | |
Namespaces | |
mlir | |
Include the generated interface declarations. | |
mlir::affine | |
Macros | |
#define | DEBUG_TYPE "affine-min-max" |
#define | DBGS() (llvm::dbgs() << "[" DEBUG_TYPE << "]: ") |
#define | GEN_PASS_DEF_SIMPLIFYAFFINEMINMAXPASS |
Functions | |
template<typename AffineOp > | |
static bool | simplifyAffineMinMaxOp (RewriterBase &rewriter, AffineOp affineOp) |
Simplifies an affine min/max operation by proving there's a lower or upper bound. More... | |
#define DBGS | ( | ) | (llvm::dbgs() << "[" DEBUG_TYPE << "]: ") |
Definition at line 26 of file SimplifyAffineMinMax.cpp.
Definition at line 25 of file SimplifyAffineMinMax.cpp.
#define GEN_PASS_DEF_SIMPLIFYAFFINEMINMAXPASS |
Definition at line 242 of file SimplifyAffineMinMax.cpp.
|
static |
Simplifies an affine min/max operation by proving there's a lower or upper bound.
Definition at line 34 of file SimplifyAffineMinMax.cpp.
References DBGS, mlir::detail::enumerate(), mlir::AffineMap::get(), mlir::Builder::getContext(), mlir::AffineMap::getNumDims(), mlir::AffineMap::getNumResults(), mlir::AffineMap::getNumSymbols(), mlir::RewriterBase::modifyOpInPlace(), and mlir::ValueBoundsConstraintSet::strongCompare().
Referenced by mlir::affine::simplifyAffineMaxOp(), and mlir::affine::simplifyAffineMinOp().