24 ::mlir::OpOperand &(*getComponentMutable)(
const Concept *
impl, ::mlir::Operation *);
33 template<
typename ConcreteOp>
39 static inline ::mlir::Value
getVal(
const Concept *
impl, ::mlir::Operation *tablegen_opaque_val);
40 static inline ::mlir::TypedValue<::llzk::component::StructType>
getComponent(
const Concept *
impl, ::mlir::Operation *tablegen_opaque_val);
45 static inline void setMemberName(
const Concept *
impl, ::mlir::Operation *tablegen_opaque_val, ::llvm::StringRef attrValue);
47 static inline ::llzk::component::StructType
getStructType(
const Concept *
impl, ::mlir::Operation *tablegen_opaque_val);
48 static inline bool isRead(
const Concept *
impl, ::mlir::Operation *tablegen_opaque_val);
50 template<
typename ConcreteOp>
56 static inline ::mlir::Value
getVal(
const Concept *
impl, ::mlir::Operation *tablegen_opaque_val);
57 static inline ::mlir::TypedValue<::llzk::component::StructType>
getComponent(
const Concept *
impl, ::mlir::Operation *tablegen_opaque_val);
67 template<
typename ConcreteModel,
typename ConcreteOp>
73template <
typename ConcreteOp>
77class MemberRefOpInterface :
public ::mlir::OpInterface<MemberRefOpInterface, detail::MemberRefOpInterfaceInterfaceTraits> {
79 using ::mlir::OpInterface<MemberRefOpInterface, detail::MemberRefOpInterfaceInterfaceTraits>::OpInterface;
80 template <
typename ConcreteOp>
87 ::mlir::TypedValue<::llzk::component::StructType>
getComponent();
114 ::mlir::FailureOr<SymbolLookupResult<MemberDefOp>>
getMemberDefOp(::mlir::SymbolTableCollection &tables);
120 template <
typename ConcreteOp>
121 struct MemberRefOpInterfaceTrait :
public ::mlir::OpInterface<MemberRefOpInterface, detail::MemberRefOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
127template<
typename ConcreteOp>
129 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getVal();
131template<
typename ConcreteOp>
133 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getComponent();
135template<
typename ConcreteOp>
137 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getComponentMutable();
139template<
typename ConcreteOp>
141 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getMemberNameAttrName();
143template<
typename ConcreteOp>
145 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getMemberName();
147template<
typename ConcreteOp>
149 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getMemberNameAttr();
151template<
typename ConcreteOp>
153 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).setMemberName(attrValue);
155template<
typename ConcreteOp>
157 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).setMemberNameAttr(attr);
159template<
typename ConcreteOp>
161 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getComponent().getType();
163template<
typename ConcreteOp>
165 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).isRead();
167template<
typename ConcreteOp>
169 return static_cast<const ConcreteOp *
>(
impl)->
getVal(tablegen_opaque_val);
171template<
typename ConcreteOp>
173 return static_cast<const ConcreteOp *
>(
impl)->
getComponent(tablegen_opaque_val);
175template<
typename ConcreteOp>
179template<
typename ConcreteOp>
183template<
typename ConcreteOp>
185 return static_cast<const ConcreteOp *
>(
impl)->
getMemberName(tablegen_opaque_val);
187template<
typename ConcreteOp>
191template<
typename ConcreteOp>
193 return static_cast<const ConcreteOp *
>(
impl)->
setMemberName(tablegen_opaque_val, attrValue);
195template<
typename ConcreteOp>
199template<
typename ConcreteOp>
201 return static_cast<const ConcreteOp *
>(
impl)->
getStructType(tablegen_opaque_val);
203template<
typename ConcreteOp>
205 return static_cast<const ConcreteOp *
>(
impl)->
isRead(tablegen_opaque_val);
::mlir::Value getVal()
Gets the SSA Value that holds the read/write data for the MemberRefOp.
::mlir::FailureOr< SymbolLookupResult< MemberDefOp > > getMemberDefOp(::mlir::SymbolTableCollection &tables)
Gets the definition for the member referenced in this op.
::mlir::FlatSymbolRefAttr getMemberNameAttr()
Gets the member name attribute from the MemberRefOp.
::mlir::TypedValue<::llzk::component::StructType > getComponent()
Gets the SSA value with the target component from the MemberRefOp.
void setMemberName(::llvm::StringRef attrValue)
Sets the member name attribute value in the MemberRefOp.
bool isRead()
Return true if the op is a read, false if it's a write.
::mlir::StringAttr getMemberNameAttrName()
Gets the name of the member name attribute on the MemberRefOp.
::llvm::StringRef getMemberName()
Gets the member name attribute value from the MemberRefOp.
void setMemberNameAttr(::mlir::FlatSymbolRefAttr attr)
Sets the member name attribute in the MemberRefOp.
::mlir::OpOperand & getComponentMutable()
Gets the SSA value with the target component from the MemberRefOp.
::llzk::component::StructType getStructType()
Gets the struct type of the target component.
ConcreteOp ConcreteEntity
static void setMemberNameAttr(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::FlatSymbolRefAttr attr)
static inline ::mlir::TypedValue<::llzk::component::StructType > getComponent(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static void setMemberName(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::llvm::StringRef attrValue)
static bool isRead(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::OpOperand & getComponentMutable(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::llzk::component::StructType getStructType(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
::llzk::component::MemberRefOpInterface Interface
static inline ::mlir::StringAttr getMemberNameAttrName(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::llvm::StringRef getMemberName(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::FlatSymbolRefAttr getMemberNameAttr(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::Value getVal(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static bool isRead(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::llzk::component::StructType getStructType(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::TypedValue<::llzk::component::StructType > getComponent(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::OpOperand & getComponentMutable(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::llvm::StringRef getMemberName(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static void setMemberName(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::llvm::StringRef attrValue)
static inline ::mlir::Value getVal(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::StringAttr getMemberNameAttrName(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
::llzk::component::MemberRefOpInterface Interface
static void setMemberNameAttr(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::FlatSymbolRefAttr attr)
static inline ::mlir::FlatSymbolRefAttr getMemberNameAttr(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
Common interface for operations that read or write from a struct member.
::mlir::StringAttr(* getMemberNameAttrName)(const Concept *impl, ::mlir::Operation *)
::llvm::StringRef(* getMemberName)(const Concept *impl, ::mlir::Operation *)
::llzk::component::StructType(* getStructType)(const Concept *impl, ::mlir::Operation *)
::mlir::FlatSymbolRefAttr(* getMemberNameAttr)(const Concept *impl, ::mlir::Operation *)
::mlir::Value(* getVal)(const Concept *impl, ::mlir::Operation *)
The methods defined by the interface.
::mlir::TypedValue<::llzk::component::StructType >(* getComponent)(const Concept *impl, ::mlir::Operation *)
::mlir::OpOperand &(* getComponentMutable)(const Concept *impl, ::mlir::Operation *)
bool(* isRead)(const Concept *impl, ::mlir::Operation *)
void(* setMemberName)(const Concept *impl, ::mlir::Operation *, ::llvm::StringRef)
void(* setMemberNameAttr)(const Concept *impl, ::mlir::Operation *, ::mlir::FlatSymbolRefAttr)