MLIR  22.0.0git
Namespaces | Functions
XeGPUUtils.h File Reference
#include "mlir/Dialect/XeGPU/IR/XeGPU.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/OpDefinition.h"

Go to the source code of this file.

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::xegpu
 

Functions

SmallVector< Valuemlir::xegpu::flattenValues (ArrayRef< ValueRange > values)
 Flatten a set of ValueRange into a single SmallVector<Value> More...
 
FailureOr< VectorType > mlir::xegpu::getDistributedVectorType (xegpu::TensorDescType tdescTy)
 If tensor descriptor has a layout attribute it is used in SIMT mode. More...
 
FailureOr< VectorType > mlir::xegpu::getDistributedVectorType (VectorType originalType, LayoutAttr layout)
 Helper to get the distributed vector type for a given vector type according to a given LayoutAttr. More...
 
std::string mlir::xegpu::getLayoutName (const OpOperand &operand)
 Return the attribute name for the OpOperand to attach DistributeLayoutAttr. More...
 
std::string mlir::xegpu::getLayoutName (const OpResult result)
 Return the attribute name for the OpResult to attach DistributeLayoutAttr. More...
 
DistributeLayoutAttr mlir::xegpu::getDistributeLayoutAttr (const Value value)
 Retrieves the DistributeLayoutAttr associated with a given Value. More...
 
template<typename AttrTy >
AttrTy mlir::xegpu::getDistributeLayoutAttrOfType (const Value value)
 
DistributeLayoutAttr mlir::xegpu::getDistributeLayoutAttr (const OpOperand &opr)
 Retrieves the DistributeLayoutAttr associated with a given OpOperand. More...
 
template<typename AttrTy >
AttrTy mlir::xegpu::getDistributeLayoutAttrOfType (const OpOperand &opr)
 
template<typename T , typename = std::enable_if_t<std::is_same_v<T, OpOperand> || std::is_same_v<T, OpResult>>>
void mlir::xegpu::removeLayoutAttr (const T &operandOrResult)
 Removes the LayoutAttr for a given OpOperand or OpResult if it exists. More...
 
void mlir::xegpu::removeLayoutAttrs (Operation *op)
 Removes the DistributeLayoutAttr for each OpOperand and OpResult of the given operation if they exist. More...
 
template<typename T , typename = std::enable_if_t<std::is_same_v<T, OpOperand> || std::is_same_v<T, OpResult>>>
void mlir::xegpu::setDistributeLayoutAttr (const T &operandOrResult, const DistributeLayoutAttr layout)
 Sets the DistributeLayoutAttr for a given OpOperand or OpResult by attaching it to the owner's dictionary attributes. More...
 
void mlir::xegpu::setDistributeLayoutAttrs (Operation *op, function_ref< DistributeLayoutAttr(Value)> getLayoutImpl)
 Set the DistributeLayoutAttr for each OpOperand and OpResult of the given operation. More...
 
SmallVector< Valuemlir::xegpu::extractVectorsWithShapeFromValue (OpBuilder &builder, Location loc, Value value, ArrayRef< int64_t > shape)
 Extract a set of small vectors from a value with a given shape using vector.extract_stride_slice. More...
 
Value mlir::xegpu::createVectorWithShapeFromValues (OpBuilder &builder, Location loc, ValueRange values, ArrayRef< int64_t > shape)
 Create a vector of shape from a set of values using vector.insert_stride_slice. More...
 
void mlir::xegpu::doSCFStructuralTypeConversionWithTensorType (Operation *op, TypeConverter converter)
 Do type conversion for SCF structural ops, e.g., scf.for using SCF structure type convertion patterns. More...
 
std::optional< std::string > mlir::xegpu::getChipStr (Operation *op)
 Retrieves the chip string from the XeVM target attribute of the parent GPU module operation. More...
 
SmallVector< OpFoldResultmlir::xegpu::addWithRightAligned (OpBuilder &builder, Location loc, ArrayRef< OpFoldResult > lhs, ArrayRef< OpFoldResult > rhs)
 Generates element-wise addition ops of two arrays with automatic alignment. More...