MLIR  20.0.0git
Classes | Namespaces | Macros | Typedefs | Functions
SCF.h File Reference
#include "mlir/Dialect/Arith/Utils/Utils.h"
#include "mlir/Dialect/SCF/IR/DeviceMappingInterface.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/RegionKindInterface.h"
#include "mlir/Interfaces/ControlFlowInterfaces.h"
#include "mlir/Interfaces/DestinationStyleOpInterface.h"
#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "mlir/Interfaces/LoopLikeInterface.h"
#include "mlir/Interfaces/ParallelCombiningOpInterface.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Interfaces/ViewLikeInterface.h"
#include "mlir/Dialect/SCF/IR/SCFOpsDialect.h.inc"
#include "mlir/Dialect/SCF/IR/SCFOps.h.inc"

Go to the source code of this file.

Classes

struct  mlir::scf::LoopNest
 

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::scf
 

Macros

#define GET_OP_CLASSES
 

Typedefs

using mlir::scf::ValueVector = SmallVector< Value >
 An owning vector of values, handy to return from functions. More...
 
using mlir::scf::LoopVector = SmallVector< scf::ForOp >
 
using mlir::scf::ValueTypeCastFnTy = llvm::function_ref< Value(OpBuilder &, Location loc, Type, Value)>
 Perform a replacement of one iter OpOperand of an scf.for to the replacement value with a different type. More...
 

Functions

void mlir::scf::buildTerminatedBody (OpBuilder &builder, Location loc)
 Default callback for IfOp builders. Inserts a yield without arguments. More...
 
void mlir::scf::ensureLoopTerminator (Region &region, Builder &builder, Location loc)
 
ForOp mlir::scf::getForInductionVarOwner (Value val)
 Returns the loop parent of an induction variable. More...
 
ParallelOp mlir::scf::getParallelForInductionVarOwner (Value val)
 Returns the parallel loop parent of an induction variable. More...
 
ForallOp mlir::scf::getForallOpThreadIndexOwner (Value val)
 Returns the ForallOp parent of an thread index variable. More...
 
bool mlir::scf::insideMutuallyExclusiveBranches (Operation *a, Operation *b)
 Return true if ops a and b (or their ancestors) are in mutually exclusive regions/blocks of an IfOp. More...
 
void mlir::scf::promote (RewriterBase &rewriter, scf::ForallOp forallOp)
 Promotes the loop body of a scf::ForallOp to its containing block. More...
 
LoopNest mlir::scf::buildLoopNest (OpBuilder &builder, Location loc, ValueRange lbs, ValueRange ubs, ValueRange steps, ValueRange iterArgs, function_ref< ValueVector(OpBuilder &, Location, ValueRange, ValueRange)> bodyBuilder=nullptr)
 Creates a perfect nest of "for" loops, i.e. More...
 
LoopNest mlir::scf::buildLoopNest (OpBuilder &builder, Location loc, ValueRange lbs, ValueRange ubs, ValueRange steps, function_ref< void(OpBuilder &, Location, ValueRange)> bodyBuilder=nullptr)
 A convenience version for building loop nests without iteration arguments (like for reductions). More...
 
SmallVector< Valuemlir::scf::replaceAndCastForOpIterArg (RewriterBase &rewriter, scf::ForOp forOp, OpOperand &operand, Value replacement, const ValueTypeCastFnTy &castFn)
 

Macro Definition Documentation

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 37 of file SCF.h.