MLIR  20.0.0git
Namespaces | Macros | Functions
AffineExpandIndexOps.cpp File Reference
#include "mlir/Dialect/Affine/LoopUtils.h"
#include "mlir/Dialect/Affine/Passes.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Affine/Transforms/Transforms.h"
#include "mlir/Dialect/Affine/Utils.h"
#include "mlir/Dialect/Arith/Utils/Utils.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "mlir/Dialect/Affine/Passes.h.inc"

Go to the source code of this file.

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::affine
 

Macros

#define GEN_PASS_DEF_AFFINEEXPANDINDEXOPS
 

Functions

static SmallVector< ValuecomputeStrides (Location loc, RewriterBase &rewriter, ValueRange dynamicBasis, ArrayRef< int64_t > staticBasis)
 Given a basis (in static and dynamic components), return the sequence of suffix products of the basis, including the product of the entire basis, which must not contain an outer bound. More...
 

Macro Definition Documentation

◆ GEN_PASS_DEF_AFFINEEXPANDINDEXOPS

#define GEN_PASS_DEF_AFFINEEXPANDINDEXOPS

Definition at line 24 of file AffineExpandIndexOps.cpp.

Function Documentation

◆ computeStrides()

static SmallVector<Value> computeStrides ( Location  loc,
RewriterBase rewriter,
ValueRange  dynamicBasis,
ArrayRef< int64_t >  staticBasis 
)
static

Given a basis (in static and dynamic components), return the sequence of suffix products of the basis, including the product of the entire basis, which must not contain an outer bound.

If excess dynamic values are provided, the values at the beginning will be ignored. This allows for dropping the outer bound without needing to manipulate the dynamic value array.

Definition at line 39 of file AffineExpandIndexOps.cpp.

References mlir::OpBuilder::create(), and mlir::OpBuilder::createOrFold().