MLIR
20.0.0git
|
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/GPU/IR/GPUDialect.h"
#include "mlir/Dialect/GPU/Utils/DistributionUtils.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/Vector/IR/VectorOps.h"
#include "mlir/Dialect/Vector/Transforms/VectorDistribution.h"
#include "mlir/IR/AffineExpr.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Transforms/RegionUtils.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/Support/FormatVariadic.h"
#include <utility>
Go to the source code of this file.
Functions | |
static AffineMap | calculateImplicitMap (VectorType sequentialType, VectorType distributedType) |
Currently the distribution map is implicit based on the vector shape. More... | |
static Operation * | cloneOpWithOperandsAndTypes (RewriterBase &rewriter, Location loc, Operation *op, ArrayRef< Value > operands, ArrayRef< Type > resultTypes) |
static bool | canBeHoisted (Operation *op, function_ref< bool(Value)> definedOutside) |
Helper to know if an op can be hoisted out of the region. More... | |
|
static |
Currently the distribution map is implicit based on the vector shape.
In the future it will be part of the op. Example:
Would have an implicit map of: (d0, d1, d2) -> (d0, d2)
Definition at line 39 of file VectorDistribute.cpp.
References mlir::AffineMap::get(), and mlir::getAffineDimExpr().
|
static |
Helper to know if an op can be hoisted out of the region.
Definition at line 1784 of file VectorDistribute.cpp.
References mlir::Operation::getNumRegions(), mlir::Operation::getOperands(), and mlir::isMemoryEffectFree().
|
static |
Definition at line 167 of file VectorDistribute.cpp.
References mlir::OpBuilder::create(), mlir::Operation::getAttrs(), mlir::Operation::getName(), and mlir::OperationName::getStringRef().