69template <
typename RangeT>
71 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
74 CreateStructOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
80 template <
typename LateInst = CreateStructOp,
typename = std::enable_if_t<std::is_same_v<LateInst, CreateStructOp>>>
89 return {std::next(odsOperands.begin(), valueRange.first),
90 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
105 ::llvm::LogicalResult
verify(::mlir::Location loc);
107class CreateStructOp :
public ::mlir::Op<CreateStructOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::component::StructType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::OpAsmOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait> {
112 template <
typename RangeT>
120 return ::llvm::StringLiteral(
"struct.new");
129 return {std::next(getOperation()->operand_begin(), valueRange.first),
130 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
139 return {std::next(getOperation()->result_begin(), valueRange.first),
140 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
143 ::mlir::TypedValue<::llzk::component::StructType>
getResult() {
144 return ::llvm::cast<::mlir::TypedValue<::llzk::component::StructType>>(*
getODSResults(0).begin());
147 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result);
148 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes);
149 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
153 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
154 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
155 void print(::mlir::OpAsmPrinter &_odsPrinter);
177 auto &propStorage = this->column;
178 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(propStorage);
181 this->column = propValue;
187 auto &propStorage = this->signal;
188 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(propStorage);
191 this->signal = propValue;
197 auto &propStorage = this->sym_name;
198 return ::llvm::cast<::mlir::StringAttr>(propStorage);
201 this->sym_name = propValue;
207 auto &propStorage = this->type;
208 return ::llvm::cast<::mlir::TypeAttr>(propStorage);
210 void setType(const ::mlir::TypeAttr &propValue) {
211 this->type = propValue;
215 rhs.
column == this->column &&
216 rhs.
signal == this->signal &&
218 rhs.
type == this->type &&
222 return !(*
this == rhs);
250 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().sym_name);
256 auto attr = ::llvm::cast<::mlir::TypeAttr>(
getProperties().type);
267template <
typename RangeT>
269 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
280 template <
typename LateInst = MemberDefOp,
typename = std::enable_if_t<std::is_same_v<LateInst, MemberDefOp>>>
289 return {std::next(odsOperands.begin(), valueRange.first),
290 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
305 ::llvm::LogicalResult
verify(::mlir::Location loc);
307class MemberDefOp :
public ::mlir::Op<MemberDefOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasParent<::llzk::component::StructDefOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait, ::mlir::SymbolOpInterface::Trait> {
312 template <
typename RangeT>
317 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"column"), ::llvm::StringRef(
"signal"), ::llvm::StringRef(
"sym_name"), ::llvm::StringRef(
"type")};
318 return ::llvm::ArrayRef(attrNames);
322 return getAttributeNameForIndex(0);
326 return getAttributeNameForIndex(name, 0);
330 return getAttributeNameForIndex(1);
334 return getAttributeNameForIndex(name, 1);
338 return getAttributeNameForIndex(2);
342 return getAttributeNameForIndex(name, 2);
346 return getAttributeNameForIndex(3);
350 return getAttributeNameForIndex(name, 3);
354 return ::llvm::StringLiteral(
"struct.member");
363 return {std::next(getOperation()->operand_begin(), valueRange.first),
364 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
373 return {std::next(getOperation()->result_begin(), valueRange.first),
374 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
377 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
380 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
383 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
384 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
387 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
392 return ::llvm::cast<::mlir::TypeAttr>(getProperties().type);
397 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(getProperties().column);
402 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(getProperties().signal);
407 getProperties().sym_name = attr;
412 getProperties().type = attr;
415 void setType(::mlir::Type attrValue);
417 getProperties().column = attr;
422 getProperties().signal = attr;
427 auto &attr = getProperties().column;
433 auto &attr = getProperties().signal;
438 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::TypeAttr type,
bool isSignal =
false,
bool isColumn =
false);
439 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name, ::mlir::Type type,
bool isSignal =
false,
bool isColumn =
false);
440 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes,
bool isSignal =
false,
bool isColumn =
false);
441 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes,
bool isSignal =
false,
bool isColumn =
false);
444 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
445 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
446 void print(::mlir::OpAsmPrinter &_odsPrinter);
448 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
449 return getAttributeNameForIndex((*this)->getName(), index);
452 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
453 assert(index < 4 &&
"invalid attribute index");
454 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
455 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
456 "dependent dialect loading?");
457 return name.getAttributeNames()[index];
461 inline bool hasPublicAttr() {
return getOperation()->hasAttr(llzk::PublicAttr::name); }
483 auto &propStorage = this->mapOpGroupSizes;
484 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(propStorage);
487 this->mapOpGroupSizes = propValue;
493 auto &propStorage = this->member_name;
494 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(propStorage);
497 this->member_name = propValue;
503 auto &propStorage = this->numDimsPerMap;
504 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(propStorage);
507 this->numDimsPerMap = propValue;
513 auto &propStorage = this->tableOffset;
514 return ::llvm::dyn_cast_or_null<::mlir::Attribute>(propStorage);
517 this->tableOffset = propValue;
528 return !(*
this == rhs);
553 auto attr = ::llvm::cast<::mlir::FlatSymbolRefAttr>(
getProperties().member_name);
559 auto attr = ::llvm::dyn_cast_or_null<::mlir::Attribute>(
getProperties().tableOffset);
567 auto attr = ::llvm::cast<::mlir::DenseI32ArrayAttr>(
getProperties().mapOpGroupSizes);
574template <
typename RangeT>
576 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
587 template <
typename LateInst = MemberReadOp,
typename = std::enable_if_t<std::is_same_v<LateInst, MemberReadOp>>>
596 return {std::next(odsOperands.begin(), valueRange.first),
597 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
608 ::llvm::SmallVector<RangeT> tblgenTmpOperandGroups;
609 for (
int i = 0, e = sizes.size(); i < e; ++i) {
610 tblgenTmpOperandGroups.push_back(tblgenTmpOperands.take_front(sizes[i]));
611 tblgenTmpOperands = tblgenTmpOperands.drop_front(sizes[i]);
613 return tblgenTmpOperandGroups;
628 ::llvm::LogicalResult
verify(::mlir::Location loc);
630class MemberReadOp :
public ::mlir::Op<MemberReadOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::AtLeastNOperands<1>::Impl, ::llzk::VerifySizesForMultiAffineOps<1>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::llzk::component::MemberRefOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait> {
635 template <
typename RangeT>
640 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"mapOpGroupSizes"), ::llvm::StringRef(
"member_name"), ::llvm::StringRef(
"numDimsPerMap"), ::llvm::StringRef(
"tableOffset")};
641 return ::llvm::ArrayRef(attrNames);
645 return getAttributeNameForIndex(0);
649 return getAttributeNameForIndex(name, 0);
653 return getAttributeNameForIndex(1);
657 return getAttributeNameForIndex(name, 1);
661 return getAttributeNameForIndex(2);
665 return getAttributeNameForIndex(name, 2);
669 return getAttributeNameForIndex(3);
673 return getAttributeNameForIndex(name, 3);
677 return ::llvm::StringLiteral(
"struct.readm");
683 return {std::next(getOperation()->operand_begin(), valueRange.first),
684 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
688 return ::llvm::cast<::mlir::TypedValue<::llzk::component::StructType>>(*
getODSOperands(0).begin());
697 return getOperation()->getOpOperand(range.first);
707 return {std::next(getOperation()->result_begin(), valueRange.first),
708 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
711 ::mlir::TypedValue<::mlir::Type>
getVal() {
712 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSResults(0).begin());
715 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
718 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
721 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
722 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
725 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(getProperties().member_name);
730 return ::llvm::dyn_cast_or_null<::mlir::Attribute>(getProperties().tableOffset);
735 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(getProperties().numDimsPerMap);
740 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(getProperties().mapOpGroupSizes);
745 getProperties().member_name = attr;
750 getProperties().tableOffset = attr;
754 getProperties().numDimsPerMap = attr;
759 getProperties().mapOpGroupSizes = attr;
764 auto &attr = getProperties().tableOffset;
769 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value
component, ::mlir::StringAttr member);
770 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value
component, ::mlir::StringAttr member, ::mlir::Attribute dist, ::mlir::ValueRange mapOperands, std::optional<int32_t> numDims);
771 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value
component, ::mlir::StringAttr member, ::mlir::SymbolRefAttr dist);
772 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value
component, ::mlir::StringAttr member, ::mlir::IntegerAttr dist);
773 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::mlir::ArrayRef<::mlir::NamedAttribute> attrs);
777 ::llvm::LogicalResult
verify();
779 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
780 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
781 void print(::mlir::OpAsmPrinter &_odsPrinter);
783 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
784 return getAttributeNameForIndex((*this)->getName(), index);
787 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
788 assert(index < 4 &&
"invalid attribute index");
789 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
790 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
791 "dependent dialect loading?");
792 return name.getAttributeNames()[index];
797 inline ::mlir::FailureOr<SymbolLookupResult<MemberDefOp>>
getMemberDefOp(::mlir::SymbolTableCollection &tables) {
798 return ::llvm::cast<MemberRefOpInterface>(getOperation()).getMemberDefOp(tables);
820 auto &propStorage = this->member_name;
821 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(propStorage);
824 this->member_name = propValue;
832 return !(*
this == rhs);
860 auto attr = ::llvm::cast<::mlir::FlatSymbolRefAttr>(
getProperties().member_name);
867template <
typename RangeT>
869 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
880 template <
typename LateInst = MemberWriteOp,
typename = std::enable_if_t<std::is_same_v<LateInst, MemberWriteOp>>>
889 return {std::next(odsOperands.begin(), valueRange.first),
890 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
913 ::llvm::LogicalResult
verify(::mlir::Location loc);
915class MemberWriteOp :
public ::mlir::Op<MemberWriteOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::llzk::component::MemberRefOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait> {
920 template <
typename RangeT>
925 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"member_name")};
926 return ::llvm::ArrayRef(attrNames);
930 return getAttributeNameForIndex(0);
934 return getAttributeNameForIndex(name, 0);
938 return ::llvm::StringLiteral(
"struct.writem");
947 return {std::next(getOperation()->operand_begin(), valueRange.first),
948 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
952 return ::llvm::cast<::mlir::TypedValue<::llzk::component::StructType>>(*
getODSOperands(0).begin());
955 ::mlir::TypedValue<::mlir::Type>
getVal() {
956 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(1).begin());
961 return getOperation()->getOpOperand(range.first);
966 return getOperation()->getOpOperand(range.first);
975 return {std::next(getOperation()->result_begin(), valueRange.first),
976 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
979 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
982 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
985 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
986 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
989 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(getProperties().member_name);
994 getProperties().member_name = attr;
998 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value
component, ::mlir::FlatSymbolRefAttr member_name, ::mlir::Value val);
999 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value
component, ::mlir::FlatSymbolRefAttr member_name, ::mlir::Value val);
1000 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value
component, ::llvm::StringRef member_name, ::mlir::Value val);
1001 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value
component, ::llvm::StringRef member_name, ::mlir::Value val);
1002 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1006 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
1007 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1008 void print(::mlir::OpAsmPrinter &_odsPrinter);
1010 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
1011 return getAttributeNameForIndex((*this)->getName(), index);
1014 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
1015 assert(index < 1 &&
"invalid attribute index");
1016 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
1017 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
1018 "dependent dialect loading?");
1019 return name.getAttributeNames()[index];
1024 inline ::mlir::FailureOr<SymbolLookupResult<MemberDefOp>>
getMemberDefOp(::mlir::SymbolTableCollection &tables) {
1025 return ::llvm::cast<MemberRefOpInterface>(getOperation()).getMemberDefOp(tables);
1047 auto &propStorage = this->const_params;
1048 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
1051 this->const_params = propValue;
1057 auto &propStorage = this->sym_name;
1058 return ::llvm::cast<::mlir::StringAttr>(propStorage);
1061 this->sym_name = propValue;
1070 return !(*
this == rhs);
1098 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().sym_name);
1104 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(
getProperties().const_params);
1119template <
typename RangeT>
1121 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1132 template <
typename LateInst = StructDefOp,
typename = std::enable_if_t<std::is_same_v<LateInst, StructDefOp>>>
1141 return {std::next(odsOperands.begin(), valueRange.first),
1142 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1157 ::llvm::LogicalResult
verify(::mlir::Location loc);
1159class StructDefOp :
public ::mlir::Op<StructDefOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasParent<::mlir::ModuleOp>::Impl, ::llzk::component::SetFuncAllowAttrs, ::mlir::OpTrait::NoRegionArguments, ::mlir::OpTrait::NoTerminator, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::SymbolOpInterface::Trait, ::mlir::OpTrait::SymbolTable, ::mlir::OpTrait::IsIsolatedFromAbove, ::mlir::SymbolUserOpInterface::Trait, ::mlir::RegionKindInterface::Trait, ::mlir::OpTrait::HasOnlyGraphRegion> {
1164 template <
typename RangeT>
1169 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"const_params"), ::llvm::StringRef(
"sym_name")};
1170 return ::llvm::ArrayRef(attrNames);
1174 return getAttributeNameForIndex(0);
1178 return getAttributeNameForIndex(name, 0);
1182 return getAttributeNameForIndex(1);
1186 return getAttributeNameForIndex(name, 1);
1190 return ::llvm::StringLiteral(
"struct.def");
1199 return {std::next(getOperation()->operand_begin(), valueRange.first),
1200 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1209 return {std::next(getOperation()->result_begin(), valueRange.first),
1210 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1214 return (*this)->getRegion(0);
1217 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1220 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
1223 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1224 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
1227 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
1232 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().const_params);
1237 getProperties().sym_name = attr;
1240 void setSymName(::llvm::StringRef attrValue);
1242 getProperties().const_params = attr;
1246 auto &attr = getProperties().const_params;
1251 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::ArrayAttr const_params);
1252 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name, ::mlir::ArrayAttr const_params);
1253 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name, ::mlir::ArrayAttr const_params);
1254 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name, ::mlir::ArrayAttr const_params);
1255 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1259 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
1260 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1261 void print(::mlir::OpAsmPrinter &_odsPrinter);
1263 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
1264 return getAttributeNameForIndex((*this)->getName(), index);
1267 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
1268 assert(index < 2 &&
"invalid attribute index");
1269 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
1270 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
1271 "dependent dialect loading?");
1272 return name.getAttributeNames()[index];
CreateStructOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
CreateStructOpAdaptor(CreateStructOp op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
CreateStructOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
CreateStructOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
CreateStructOpGenericAdaptor(RangeT values, LateInst op)
CreateStructOpGenericAdaptor(RangeT values, const CreateStructOpGenericAdaptorBase &base)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result)
::mlir::Operation::operand_range getODSOperands(unsigned index)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
::llvm::LogicalResult verifyInvariants()
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
CreateStructOpGenericAdaptor< RangeT > GenericAdaptor
static constexpr ::llvm::StringLiteral getOperationName()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::mlir::TypedValue<::llzk::component::StructType > getResult()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
CreateStructOpAdaptor Adaptor
void print(::mlir::OpAsmPrinter &_odsPrinter)
MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
MemberDefOpAdaptor(MemberDefOp op)
MemberDefOpGenericAdaptor(RangeT values, const MemberDefOpGenericAdaptorBase &base)
MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
MemberDefOpGenericAdaptor(RangeT values, LateInst op)
MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
RangeT getODSOperands(unsigned index)
void setSymNameAttr(::mlir::StringAttr attr)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
MemberDefOpAdaptor Adaptor
::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::StringAttr getColumnAttrName(::mlir::OperationName name)
::llvm::StringRef getSymName()
void setSignal(bool attrValue)
::mlir::StringAttr getTypeAttrName()
::mlir::StringAttr getColumnAttrName()
::llvm::LogicalResult verifyInvariants()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
MemberDefOpGenericAdaptor< RangeT > GenericAdaptor
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name, ::mlir::Type type, bool isSignal=false, bool isColumn=false)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
void setPublicAttr(bool newValue=true)
::mlir::StringAttr getTypeAttrName(::mlir::OperationName name)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute > attributes, bool isSignal=false, bool isColumn=false)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariantsImpl()
void setColumnAttr(::mlir::UnitAttr attr)
::mlir::UnitAttr getSignalAttr()
void setTypeAttr(::mlir::TypeAttr attr)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static constexpr ::llvm::StringLiteral getOperationName()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::TypeAttr type, bool isSignal=false, bool isColumn=false)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
void setColumn(bool attrValue)
::mlir::Attribute removeSignalAttr()
::mlir::TypeAttr getTypeAttr()
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Attribute removeColumnAttr()
::mlir::StringAttr getSignalAttrName()
::mlir::StringAttr getSignalAttrName(::mlir::OperationName name)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::StringAttr getSymNameAttr()
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
void setType(::mlir::Type attrValue)
FoldAdaptor::Properties Properties
void setSignalAttr(::mlir::UnitAttr attr)
void setSymName(::llvm::StringRef attrValue)
::mlir::Operation::result_range getODSResults(unsigned index)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::UnitAttr getColumnAttr()
::mlir::StringAttr getSymNameAttrName()
MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
MemberReadOpAdaptor(MemberReadOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
MemberReadOpGenericAdaptor(RangeT values, LateInst op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::SmallVector< RangeT > getMapOperands()
MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
MemberReadOpGenericAdaptor(RangeT values, const MemberReadOpGenericAdaptorBase &base)
::mlir::StringAttr getNumDimsPerMapAttrName(::mlir::OperationName name)
::mlir::MutableOperandRangeRange getMapOperandsMutable()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::mlir::ArrayRef<::mlir::NamedAttribute > attrs)
::mlir::Attribute removeTableOffsetAttr()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::TypedValue<::llzk::component::StructType > getComponent()
static llvm::hash_code computePropertiesHash(const Properties &prop)
MemberReadOpGenericAdaptor< RangeT > GenericAdaptor
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
void setMapOpGroupSizes(::llvm::ArrayRef< int32_t > attrValue)
::mlir::TypedValue<::mlir::Type > getVal()
::std::optional<::mlir::Attribute > getTableOffset()
::mlir::OpOperand & getComponentMutable()
::mlir::OperandRangeRange getMapOperands()
bool isRead()
Return true if the op is a read, false if it's a write.
void setNumDimsPerMapAttr(::mlir::DenseI32ArrayAttr attr)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value component, ::mlir::StringAttr member)
::llvm::LogicalResult verifyInvariantsImpl()
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
::mlir::FlatSymbolRefAttr getMemberNameAttr()
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
::mlir::StringAttr getMemberNameAttrName(::mlir::OperationName name)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::StringAttr getMapOpGroupSizesAttrName()
void setMapOpGroupSizesAttr(::mlir::DenseI32ArrayAttr attr)
inline ::mlir::FailureOr< SymbolLookupResult< MemberDefOp > > getMemberDefOp(::mlir::SymbolTableCollection &tables)
Gets the definition for the member referenced in this op.
void setNumDimsPerMap(::llvm::ArrayRef< int32_t > attrValue)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::mlir::Operation::result_range getODSResults(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value component, ::mlir::StringAttr member, ::mlir::Attribute dist, ::mlir::ValueRange mapOperands, std::optional< int32_t > numDims)
::llvm::LogicalResult verifyInvariants()
void setTableOffsetAttr(::mlir::Attribute attr)
MemberReadOpAdaptor Adaptor
void setMemberNameAttr(::mlir::FlatSymbolRefAttr attr)
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
::mlir::StringAttr getMapOpGroupSizesAttrName(::mlir::OperationName name)
::llvm::StringRef getMemberName()
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::StringAttr getTableOffsetAttrName()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::llvm::LogicalResult verify()
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::Attribute getTableOffsetAttr()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
void setMemberName(::llvm::StringRef attrValue)
::mlir::StringAttr getMemberNameAttrName()
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::StringAttr getTableOffsetAttrName(::mlir::OperationName name)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
FoldAdaptor::Properties Properties
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
::mlir::StringAttr getNumDimsPerMapAttrName()
MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
MemberWriteOpAdaptor(MemberWriteOp op)
RangeT getODSOperands(unsigned index)
MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
MemberWriteOpGenericAdaptor(RangeT values, LateInst op)
MemberWriteOpGenericAdaptor(RangeT values, const MemberWriteOpGenericAdaptorBase &base)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
MemberWriteOpGenericAdaptor< RangeT > GenericAdaptor
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::mlir::OpOperand & getComponentMutable()
::mlir::TypedValue<::llzk::component::StructType > getComponent()
void setMemberName(::llvm::StringRef attrValue)
FoldAdaptor::Properties Properties
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
inline ::mlir::FailureOr< SymbolLookupResult< MemberDefOp > > getMemberDefOp(::mlir::SymbolTableCollection &tables)
Gets the definition for the member referenced in this op.
::mlir::FlatSymbolRefAttr getMemberNameAttr()
::mlir::StringAttr getMemberNameAttrName(::mlir::OperationName name)
bool isRead()
Return true if the op is a read, false if it's a write.
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
::llvm::LogicalResult verifyInvariants()
void print(::mlir::OpAsmPrinter &_odsPrinter)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value component, ::mlir::FlatSymbolRefAttr member_name, ::mlir::Value val)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
static constexpr ::llvm::StringLiteral getOperationName()
::llvm::StringRef getMemberName()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
void setMemberNameAttr(::mlir::FlatSymbolRefAttr attr)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
MemberWriteOpAdaptor Adaptor
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::Operation::result_range getODSResults(unsigned index)
::mlir::TypedValue<::mlir::Type > getVal()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::mlir::OpOperand & getValMutable()
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::StringAttr getMemberNameAttrName()
StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
StructDefOpAdaptor(StructDefOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
StructDefOpGenericAdaptor(RangeT values, LateInst op)
StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
StructDefOpGenericAdaptor(RangeT values, const StructDefOpGenericAdaptorBase &base)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::LogicalResult hasColumns()
Returns whether the struct defines members marked as columns.
StructType getType(::std::optional<::mlir::ArrayAttr > constParams={}) const
StructType getType(::std::optional<::mlir::ArrayAttr > constParams={})
Gets the StructType representing this struct.
::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Region & getBodyRegion()
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
static constexpr ::llvm::StringLiteral getOperationName()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llzk::function::FuncDefOp getConstrainOrProductFuncOp()
Gets the FuncDefOp that defines the constrain function in this structure, if present,...
::llvm::LogicalResult verifyInvariants()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::StringRef getSymName()
::mlir::Attribute removeConstParamsAttr()
void setSymNameAttr(::mlir::StringAttr attr)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::Operation::result_range getODSResults(unsigned index)
StructDefOpAdaptor Adaptor
::mlir::SymbolRefAttr getFullyQualifiedName()
Return the full name for this struct from the root module, including any surrounding module scopes.
::std::vector< MemberDefOp > getMemberDefs()
Get all MemberDefOp in this structure.
FoldAdaptor::Properties Properties
::mlir::StringAttr getConstParamsAttrName()
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
bool hasParamNamed(::mlir::FlatSymbolRefAttr find)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
MemberDefOp getMemberDef(::mlir::StringAttr memberName)
Gets the MemberDefOp that defines the member in this structure with the given name,...
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::ArrayAttr const_params)
::llzk::function::FuncDefOp getConstrainFuncOp()
Gets the FuncDefOp that defines the constrain function in this structure, if present,...
::mlir::StringAttr getSymNameAttr()
::llzk::function::FuncDefOp getComputeOrProductFuncOp()
Gets the FuncDefOp that defines the compute function in this structure, if present,...
::mlir::StringAttr getConstParamsAttrName(::mlir::OperationName name)
::mlir::LogicalResult hasSignals()
Returns whether the struct defines members marked as signals.
::std::optional< ::mlir::ArrayAttr > getConstParams()
void setSymName(::llvm::StringRef attrValue)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
bool hasParamNamed(::mlir::StringAttr find)
Return true iff this StructDefOp has a parameter with the given name.
::llvm::LogicalResult verifyRegions()
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::ArrayAttr getConstParamsAttr()
::llzk::function::FuncDefOp getComputeFuncOp()
Gets the FuncDefOp that defines the compute function in this structure, if present,...
bool hasComputeConstrain()
Returns true iff this structure defines compute and constrain functions.
::mlir::StringAttr getSymNameAttrName()
bool isMainComponent()
Return true iff this StructDefOp is the main struct. See llzk::MAIN_ATTR_NAME.
bool hasConstParamsAttr()
Return false iff getConstParamsAttr() returns nullptr
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
StructDefOpGenericAdaptor< RangeT > GenericAdaptor
void setConstParamsAttr(::mlir::ArrayAttr attr)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::std::string getHeaderString()
Generate header string, in the same format as the assemblyFormat.
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::RegionRange odsRegions
CreateStructOpGenericAdaptorBase(::mlir::Operation *op)
CreateStructOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr getAttributes()
::mlir::DictionaryAttr odsAttrs
::mlir::RegionRange odsRegions
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::StringAttr getSymNameAttr()
::llvm::StringRef getSymName()
const Properties & getProperties()
::mlir::DictionaryAttr getAttributes()
::mlir::UnitAttr getColumnAttr()
::mlir::DictionaryAttr odsAttrs
::mlir::UnitAttr getSignalAttr()
MemberDefOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
::mlir::TypeAttr getTypeAttr()
::mlir::DictionaryAttr odsAttrs
const Properties & getProperties()
::mlir::RegionRange odsRegions
::std::optional<::mlir::Attribute > getTableOffset()
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
::mlir::Attribute getTableOffsetAttr()
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
MemberReadOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::llvm::StringRef getMemberName()
::mlir::FlatSymbolRefAttr getMemberNameAttr()
::mlir::DictionaryAttr getAttributes()
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
MemberWriteOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::StringRef getMemberName()
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr odsAttrs
const Properties & getProperties()
::mlir::DictionaryAttr getAttributes()
::mlir::FlatSymbolRefAttr getMemberNameAttr()
::mlir::RegionRange odsRegions
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::RegionRange getRegions()
::std::optional< ::mlir::ArrayAttr > getConstParams()
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
StructDefOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ArrayAttr getConstParamsAttr()
::mlir::Region & getBodyRegion()
::mlir::StringAttr getSymNameAttr()
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::llvm::StringRef getSymName()
::mlir::DictionaryAttr getAttributes()
const Properties & getProperties()
constexpr char FUNC_NAME_COMPUTE[]
Symbol name for the witness generation (and resp.
constexpr char FUNC_NAME_CONSTRAIN[]
llvm::StringLiteral getOperationName()
Get the operation name, like "constrain.eq" for the given OpClass.
void setColumn(const ::mlir::UnitAttr &propValue)
void setSymName(const ::mlir::StringAttr &propValue)
void setType(const ::mlir::TypeAttr &propValue)
::mlir::UnitAttr columnTy
::mlir::UnitAttr signalTy
::mlir::StringAttr sym_nameTy
void setSignal(const ::mlir::UnitAttr &propValue)
bool operator!=(const Properties &rhs) const
bool operator==(const Properties &rhs) const
bool operator!=(const Properties &rhs) const
auto getMapOpGroupSizes()
void setNumDimsPerMap(const ::mlir::DenseI32ArrayAttr &propValue)
::mlir::FlatSymbolRefAttr member_nameTy
void setMapOpGroupSizes(const ::mlir::DenseI32ArrayAttr &propValue)
mapOpGroupSizesTy mapOpGroupSizes
::mlir::DenseI32ArrayAttr mapOpGroupSizesTy
::mlir::DenseI32ArrayAttr numDimsPerMapTy
void setTableOffset(const ::mlir::Attribute &propValue)
::mlir::Attribute tableOffsetTy
bool operator==(const Properties &rhs) const
numDimsPerMapTy numDimsPerMap
tableOffsetTy tableOffset
member_nameTy member_name
void setMemberName(const ::mlir::FlatSymbolRefAttr &propValue)
::mlir::FlatSymbolRefAttr member_nameTy
bool operator==(const Properties &rhs) const
member_nameTy member_name
void setMemberName(const ::mlir::FlatSymbolRefAttr &propValue)
bool operator!=(const Properties &rhs) const
::mlir::ArrayAttr const_paramsTy
bool operator!=(const Properties &rhs) const
void setConstParams(const ::mlir::ArrayAttr &propValue)
bool operator==(const Properties &rhs) const
::mlir::StringAttr sym_nameTy
void setSymName(const ::mlir::StringAttr &propValue)
const_paramsTy const_params