MLIR  20.0.0git
Classes | Namespaces | Functions
Transforms.h File Reference
#include "mlir/Dialect/SCF/Utils/AffineCanonicalizationUtils.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/ArrayRef.h"

Go to the source code of this file.

Classes

struct  mlir::scf::PipeliningOption
 Options to dictate how loops should be pipelined. More...
 

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::scf
 

Functions

LogicalResult mlir::scf::forallToForLoop (RewriterBase &rewriter, ForallOp forallOp, SmallVectorImpl< Operation * > *results=nullptr)
 Try converting scf.forall into a set of nested scf.for loops. More...
 
LogicalResult mlir::scf::forallToParallelLoop (RewriterBase &rewriter, ForallOp forallOp, ParallelOp *result=nullptr)
 Try converting scf.forall into an scf.parallel loop. More...
 
void mlir::scf::naivelyFuseParallelOps (Region &region, llvm::function_ref< bool(Value, Value)> mayAlias)
 Fuses all adjacent scf.parallel operations with identical bounds and step into one scf.parallel operations. More...
 
LogicalResult mlir::scf::peelForLoopAndSimplifyBounds (RewriterBase &rewriter, ForOp forOp, scf::ForOp &partialIteration)
 Rewrite a for loop with bounds/step that potentially do not divide evenly into a for loop where the step divides the iteration space evenly, followed by another scf.for for the last (partial) iteration (if any; returned via partialIteration). More...
 
LogicalResult mlir::scf::peelForLoopFirstIteration (RewriterBase &rewriter, ForOp forOp, scf::ForOp &partialIteration)
 Peel the first iteration out of the scf.for loop. More...
 
std::pair< ParallelOp, ParallelOp > mlir::scf::tileParallelLoop (ParallelOp op, llvm::ArrayRef< int64_t > tileSizes, bool noMinMaxBounds)
 Tile a parallel loop of the form scf.parallel (i0, i1) = (arg0, arg1) to (arg2, arg3) step (arg4, arg5) More...
 
FailureOr< ForOp > mlir::scf::pipelineForLoop (RewriterBase &rewriter, ForOp forOp, const PipeliningOption &options, bool *modifiedIR=nullptr)
 Generate a pipelined version of the scf.for loop based on the schedule given as option. More...
 
FailureOr< WhileOp > mlir::scf::wrapWhileLoopInZeroTripCheck (WhileOp whileOp, RewriterBase &rewriter, bool forceCreateCheck=false)
 Create zero-trip-check around a while op and return the new loop op in the check. More...
 
FailureOr< ForOp > mlir::scf::upliftWhileToForLoop (RewriterBase &rewriter, WhileOp loop)
 Try to uplift scf.while op to scf.for. More...