9#ifndef MLIR_TRANSFORMS_CONTROLFLOWSINKUTILS_H
10#define MLIR_TRANSFORMS_CONTROLFLOWSINKUTILS_H
19class RegionBranchOpInterface;
A class for computing basic dominance information.
Operation is the basic unit of execution within MLIR.
This class provides an abstraction over the different types of ranges over Regions.
This class contains a list of basic blocks and a link to the parent operation it is attached to.
Include the generated interface declarations.
void getSinglyExecutedRegionsToSink(RegionBranchOpInterface branch, SmallVectorImpl< Region * > ®ions)
Populates regions with regions of the provided region branch op that are executed at most once at tha...
size_t controlFlowSink(RegionRange regions, DominanceInfo &domInfo, function_ref< bool(Operation *, Region *)> shouldMoveIntoRegion, function_ref< void(Operation *, Region *)> moveIntoRegion)
Given a list of regions, perform control flow sinking on them.
llvm::function_ref< Fn > function_ref