Class PushOp
Defined in File DFGOps.h.inc
Inheritance Relationships
Base Type
public mlir::Op< PushOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::AtLeastNOperands< 2 >::Impl, ::mlir::OpTrait::OpInvariants >
Class Documentation
-
class PushOp : public mlir::Op<PushOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::AtLeastNOperands<2>::Impl, ::mlir::OpTrait::OpInvariants>
Public Types
-
using Adaptor = PushOpAdaptor
-
template<typename RangeT>
using GenericAdaptor = PushOpGenericAdaptor<RangeT>
-
using FoldAdaptor = GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute>>
-
using Properties = FoldAdaptor::Properties
Public Functions
-
inline ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames()
-
std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index)
-
inline ::mlir::Operation::operand_range getODSOperands(unsigned index)
-
inline ::mlir::TypedValue<::mlir::Type> getToken()
-
inline ::mlir::Operation::operand_range getIndices()
-
inline ::mlir::OpOperand &getTokenMutable()
-
inline ::mlir::OpOperand &getWritePortMutable()
-
::mlir::MutableOperandRange getIndicesMutable()
-
inline std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index)
-
inline ::mlir::Operation::result_range getODSResults(unsigned index)
-
void print(::mlir::OpAsmPrinter &p)
Prints a
dfg::PushOpin the custom assembly syntax consumed byparse.Emits
token to writePort[idx, ...] : portType, omitting the bracket list when no indices are present.
-
::llvm::LogicalResult verifyInvariantsImpl()
-
::llvm::LogicalResult verifyInvariants()
-
::llvm::LogicalResult verify()
Verifies that the index list is consistent with the port shape.
Mirrors
PullOp::verify: scalar ports must have no indices, and shaped ports must have exactly as many indices as the port rank.
Public Static Functions
-
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 void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, Value writePort, Value readPort, ValueRange indices = {})
Builds a
dfg::PushOpthat writes a token to a shaped or scalar port.- Parameters:
token – The value to write; must match the port’s element type.
writePort – The
dfg::InputTypeport to write to.indices – Element indices for shaped ports; must be empty for scalar ports.
-
static PushOp create(::mlir::OpBuilder &builder, ::mlir::Location location, Value writePort, Value readPort, ValueRange indices = {})
-
static PushOp create(::mlir::ImplicitLocOpBuilder &builder, Value writePort, Value readPort, ValueRange indices = {})
-
static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Parses a
dfg::PushOpfrom its custom assembly syntax.The expected syntax is:
`dfg.push` %token `to` %writePort (`[` index-list `]`)? `:` port-type
The
tokeyword separates the written value from the destination port. Index operands, if present, address a specific element of a shaped port. The token type is resolved as the element type of the port and is not written explicitly.
-
static ::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
-
using Adaptor = PushOpAdaptor