|
MLIR 24.0.0git
|
#include "mlir/Dialect/Linalg/Transforms/Hoisting.h"#include "mlir/Analysis/SliceAnalysis.h"#include "mlir/Dialect/Affine/Analysis/AffineStructures.h"#include "mlir/Dialect/Affine/IR/AffineOps.h"#include "mlir/Dialect/Affine/Utils.h"#include "mlir/Dialect/Linalg/Transforms/Transforms.h"#include "mlir/Dialect/MemRef/IR/MemRef.h"#include "mlir/Dialect/MemRef/Utils/MemRefUtils.h"#include "mlir/Dialect/SCF/IR/SCF.h"#include "mlir/Dialect/SCF/Utils/Utils.h"#include "mlir/Dialect/Vector/IR/VectorOps.h"#include "mlir/Dialect/Vector/Utils/VectorUtils.h"#include "mlir/IR/Dominance.h"#include "mlir/Transforms/LoopInvariantCodeMotionUtils.h"#include "llvm/Support/Debug.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "linalg-hoisting" |
| #define | DBGS() |
Functions | |
| static scf::ForOp | replaceWithDifferentYield (RewriterBase &rewriter, scf::ForOp loop, Value newInitOperand, unsigned index, Value newYieldValue) |
| Replace loop with a new loop that has a different init operand at position index. | |
| #define DBGS | ( | ) |
Definition at line 34 of file Hoisting.cpp.
Referenced by mlir::linalg::detail::buildPackingLoopNest(), buildPackingLoopNestImpl(), buildPackingLoopNestImpl(), mlir::linalg::hoistPaddingOnTensors(), mlir::linalg::hoistRedundantVectorBroadcasts(), mlir::linalg::hoistRedundantVectorTransfers(), padOperandToSmallestStaticBoundingBox(), padThroughLoopIterArg(), replaceByPackingResult(), mlir::linalg::rewriteAsPaddedOp(), tracesBackToExpectedValue(), and updateFunctionOpInterface().
| #define DEBUG_TYPE "linalg-hoisting" |
Definition at line 32 of file Hoisting.cpp.
|
static |
Replace loop with a new loop that has a different init operand at position index.
The body of this loop is moved over to the new loop.
newInitOperands specifies the replacement "init" operands. newYieldValue is the replacement yield value of the loop at position index.
Definition at line 45 of file Hoisting.cpp.
References mlir::RewriterBase::mergeBlocks(), mlir::RewriterBase::replaceOp(), and mlir::OpBuilder::setInsertionPoint().
Referenced by mlir::linalg::hoistRedundantVectorBroadcasts().