MLIR
17.0.0git
|
#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Affine/LoopUtils.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/SCF/Transforms/Patterns.h"
#include "mlir/Dialect/SCF/Transforms/Transforms.h"
#include "mlir/Dialect/SCF/Utils/Utils.h"
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
#include "mlir/Dialect/Transform/IR/TransformInterfaces.h"
#include "mlir/Dialect/Vector/IR/VectorOps.h"
#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.cpp.inc"
Go to the source code of this file.
Macros | |
#define | GET_OP_LIST |
#define | GET_OP_CLASSES |
Functions | |
static scf::ExecuteRegionOp | wrapInExecuteRegion (RewriterBase &b, Operation *op) |
Wraps the given operation op into an scf.execute_region operation. More... | |
static void | loopScheduling (scf::ForOp forOp, std::vector< std::pair< Operation *, unsigned >> &schedule, unsigned iterationInterval, unsigned readLatency) |
Callback for PipeliningOption. More... | |
#define GET_OP_CLASSES |
Definition at line 271 of file SCFTransformOps.cpp.
#define GET_OP_LIST |
|
static |
Callback for PipeliningOption.
Populates schedule
with the mapping from an operation to its logical time position given the iteration interval and the read latency. The latter is only relevant for vector transfers.
Definition at line 148 of file SCFTransformOps.cpp.
References max().
|
static |
Wraps the given operation op
into an scf.execute_region
operation.
Uses the provided rewriter for all operations to remain compatible with the rewriting infra, as opposed to just splicing the op in place.
Definition at line 61 of file SCFTransformOps.cpp.
References mlir::OpBuilder::cloneWithoutRegions(), mlir::OpBuilder::create(), mlir::Region::empty(), mlir::Region::end(), mlir::Operation::getLoc(), mlir::Operation::getNumRegions(), mlir::Operation::getRegions(), mlir::Operation::getResults(), mlir::Operation::getResultTypes(), mlir::RewriterBase::inlineRegionBefore(), mlir::RewriterBase::replaceOp(), mlir::OpBuilder::setInsertionPoint(), and mlir::OpBuilder::setInsertionPointToStart().