9#ifndef MLIR_DIALECT_VECTOR_TRANSFORMS_VECTORDISTRIBUTION_H_
10#define MLIR_DIALECT_VECTOR_TRANSFORMS_VECTORDISTRIBUTION_H_
71void populateDistributeTransferWriteOpPatterns(
77void moveScalarUniformCode(gpu::WarpExecuteOnLane0Op op);
81using WarpShuffleFromIdxFn =
96void populatePropagateWarpVectorDistributionPatterns(
98 const WarpShuffleFromIdxFn &warpShuffleFromIdxFn,
103using DistributedReductionFn =
108void populateDistributeReduction(
110 const DistributedReductionFn &distributedReductionFn,
static llvm::ManagedStatic< PassManagerOptions > options
A multi-dimensional affine map Affine map's are immutable like Type's, and they are uniqued.
This class defines the main interface for locations in MLIR and acts as a non-nullable wrapper around...
This class helps build Operations.
This class represents the benefit of a pattern match in a unitless scheme that ranges from 0 (very li...
Instances of the Type class are uniqued, have an immutable identifier and an optional mutable compone...
This class represents an instance of an SSA value in the MLIR system, representing a computable value...
std::function< AffineMap(Value)> DistributionMapFn
void populateWarpExecuteOnLane0OpToScfForPattern(RewritePatternSet &patterns, const WarpExecuteOnLane0LoweringOptions &options, PatternBenefit benefit=1)
Include the generated interface declarations.
std::function< Value( Location, OpBuilder &, gpu::WarpExecuteOnLane0Op, Type)> WarpAllocationFn
Lamdba function to let users allocate memory needed for the lowering of WarpExecuteOnLane0Op.
WarpAllocationFn warpAllocationFn
std::function< void(Location, OpBuilder &, gpu::WarpExecuteOnLane0Op)> WarpSynchronizationFn
Lamdba function to let user emit operation to synchronize all the thread within a warp.
WarpSynchronizationFn warpSynchronizationFn