Class PragmaArrayPartitionOp

Inheritance Relationships

Base Type

  • public mlir::Op< PragmaArrayPartitionOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::emithls::PragmaInterface::Trait >

Class Documentation

class PragmaArrayPartitionOp : public mlir::Op<PragmaArrayPartitionOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::emithls::PragmaInterface::Trait>

Public Types

using Adaptor = PragmaArrayPartitionOpAdaptor
template<typename RangeT>
using GenericAdaptor = PragmaArrayPartitionOpGenericAdaptor<RangeT>
using FoldAdaptor = GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute>>
using Properties = FoldAdaptor::Properties

Public Functions

inline ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames()
inline ::mlir::StringAttr getPartDimAttrName()
inline ::mlir::StringAttr getPartFactorAttrName()
inline ::mlir::StringAttr getPartTypeAttrName()
inline std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index)
inline ::mlir::Operation::operand_range getODSOperands(unsigned index)
inline ::mlir::TypedValue<::mlir::emithls::ArrayType> getVariable()
inline ::mlir::OpOperand &getVariableMutable()
inline std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index)
inline ::mlir::Operation::result_range getODSResults(unsigned index)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
inline ::mlir::emithls::ArrayPartitionTypeAttr getPartTypeAttr()
::mlir::emithls::ArrayPartitionType getPartType()
inline ::mlir::IntegerAttr getPartFactorAttr()
::std::optional<uint32_t> getPartFactor()
inline ::mlir::IntegerAttr getPartDimAttr()
::std::optional<uint32_t> getPartDim()
inline void setPartTypeAttr(::mlir::emithls::ArrayPartitionTypeAttr attr)
void setPartType(::mlir::emithls::ArrayPartitionType attrValue)
inline void setPartFactorAttr(::mlir::IntegerAttr attr)
void setPartFactor(::std::optional<uint32_t> attrValue)
inline void setPartDimAttr(::mlir::IntegerAttr attr)
void setPartDim(::std::optional<uint32_t> attrValue)
inline ::mlir::Attribute removePartFactorAttr()
inline ::mlir::Attribute removePartDimAttr()
void print(::mlir::OpAsmPrinter &p)

Prints a emithls::PragmaArrayPartitionOp in the custom assembly syntax consumed by parse.

::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult verify()

Verifies a emithls::PragmaArrayPartitionOp is well-formed.

  • cyclic and block partitions require both a factor and a dimension.

  • complete partition must not specify a factor.

inline Type getVariableType()

Public Static Functions

static inline ::mlir::StringAttr getPartDimAttrName(::mlir::OperationName name)
static inline ::mlir::StringAttr getPartFactorAttrName(::mlir::OperationName name)
static inline ::mlir::StringAttr getPartTypeAttrName(::mlir::OperationName name)
static inline constexpr ::llvm::StringLiteral getOperationName()
static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, Value variable, emithls::ArrayPartitionType partType, std::optional<int32_t> partFactor = {}, std::optional<int32_t> partDim = {})

Builds a emithls::PragmaArrayPartitionOp.

Parameters:
  • variable – The array variable to partition.

  • partType – The partition strategy (cyclic, block, or complete).

  • partFactor – Partition factor; required for cyclic and block.

  • partDim – Dimension to partition; required for cyclic and block.

static PragmaArrayPartitionOp create(::mlir::OpBuilder &builder, ::mlir::Location location, Value variable, emithls::ArrayPartitionType partType, std::optional<int32_t> partFactor = {}, std::optional<int32_t> partDim = {})
static PragmaArrayPartitionOp create(::mlir::ImplicitLocOpBuilder &builder, Value variable, emithls::ArrayPartitionType partType, std::optional<int32_t> partFactor = {}, std::optional<int32_t> partDim = {})
static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)

Parses a emithls::PragmaArrayPartitionOp from its custom assembly syntax.

The expected syntax is:

`emithls.pragma_array_partition` `variable=` variable `(` type `)`
  `type=` partition-type [`factor=` integer] [`dim=` integer]

static ::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)

Public Static Attributes

static constexpr int odsIndex_variable = 0