MLIR  20.0.0git
Namespaces | Macros | Functions
LoopCanonicalization.cpp File Reference
#include "mlir/Dialect/SCF/Transforms/Passes.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/SCF/Transforms/Patterns.h"
#include "mlir/Dialect/SCF/Utils/AffineCanonicalizationUtils.h"
#include "mlir/Dialect/Tensor/IR/Tensor.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "llvm/ADT/TypeSwitch.h"
#include "mlir/Dialect/SCF/Transforms/Passes.h.inc"

Go to the source code of this file.

Namespaces

 mlir
 Include the generated interface declarations.
 

Macros

#define GEN_PASS_DEF_SCFFORLOOPCANONICALIZATION
 

Functions

static bool isShapePreserving (ForOp forOp, int64_t arg)
 A simple, conservative analysis to determine if the loop is shape conserving. More...
 

Macro Definition Documentation

◆ GEN_PASS_DEF_SCFFORLOOPCANONICALIZATION

#define GEN_PASS_DEF_SCFFORLOOPCANONICALIZATION

Definition at line 27 of file LoopCanonicalization.cpp.

Function Documentation

◆ isShapePreserving()

static bool isShapePreserving ( ForOp  forOp,
int64_t  arg 
)
static

A simple, conservative analysis to determine if the loop is shape conserving.

I.e., the type of the arg-th yielded value is the same as the type of the corresponding basic block argument of the loop. Note: This function handles only simple cases. Expand as needed.

Definition at line 38 of file LoopCanonicalization.cpp.

References mlir::OpResult::getOwner(), and mlir::OpResult::getResultNumber().