59 using mapTy = ::mlir::AffineMapAttr;
63 auto &propStorage = this->map;
64 return ::llvm::cast<::mlir::AffineMapAttr>(propStorage);
66 void setMap(const ::mlir::AffineMapAttr &propValue) {
67 this->map = propValue;
73 auto &propStorage = this->numDims;
74 return ::llvm::cast<::mlir::IntegerAttr>(propStorage);
77 this->numDims = propValue;
81 rhs.
map == this->map &&
86 return !(*
this == rhs);
111 auto attr = ::llvm::cast<::mlir::AffineMapAttr>(
getProperties().map);
115 ::mlir::AffineMap
getMap();
117 auto attr = ::llvm::cast<::mlir::IntegerAttr>(
getProperties().numDims);
124template <
typename RangeT>
126 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
137 template <
typename LateInst = ApplyMapOp,
typename = std::enable_if_t<std::is_same_v<LateInst, ApplyMapOp>>>
146 return {std::next(odsOperands.begin(), valueRange.first),
147 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
166 ::llvm::LogicalResult
verify(::mlir::Location loc);
168class ApplyMapOp :
public ::mlir::Op<ApplyMapOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::IndexType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
173 template <
typename RangeT>
178 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"map"), ::llvm::StringRef(
"numDims")};
179 return ::llvm::ArrayRef(attrNames);
183 return getAttributeNameForIndex(0);
187 return getAttributeNameForIndex(name, 0);
191 return getAttributeNameForIndex(1);
195 return getAttributeNameForIndex(name, 1);
199 return ::llvm::StringLiteral(
"poly.applymap");
205 return {std::next(getOperation()->operand_begin(), valueRange.first),
206 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
220 return {std::next(getOperation()->result_begin(), valueRange.first),
221 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
224 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
227 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
230 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
231 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
234 return ::llvm::cast<::mlir::AffineMapAttr>(getProperties().map);
237 ::mlir::AffineMap
getMap();
239 return ::llvm::cast<::mlir::IntegerAttr>(getProperties().numDims);
244 getProperties().map = attr;
247 void setMap(::mlir::AffineMap attrValue);
249 getProperties().numDims = attr;
253 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::AffineMapAttr map, ::mlir::ValueRange mapOperands = {});
254 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::AffineMap map, ::mlir::ValueRange mapOperands = {});
255 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::AffineExpr expr, ::mlir::ValueRange mapOperands = {});
258 ::llvm::LogicalResult
verify();
260 static ::llvm::LogicalResult
inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
261 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
262 void print(::mlir::OpAsmPrinter &_odsPrinter);
263 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
265 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
266 return getAttributeNameForIndex((*this)->getName(), index);
269 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
270 assert(index < 2 &&
"invalid attribute index");
271 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
272 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
273 "dependent dialect loading?");
274 return name.getAttributeNames()[index];
283 return ::mlir::affine::AffineValueMap(
getAffineMap(), getOperands(), getResult());
288 return ::mlir::OperandRange{
289 getOperands().begin(),
290 getOperands().begin() +
getMap().getNumDims()};
295 return ::mlir::OperandRange{
296 getOperands().begin() +
getMap().getNumDims(),
297 getOperands().end()};
319 auto &propStorage = this->const_name;
320 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(propStorage);
323 this->const_name = propValue;
331 return !(*
this == rhs);
359 auto attr = ::llvm::cast<::mlir::FlatSymbolRefAttr>(
getProperties().const_name);
366template <
typename RangeT>
368 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
379 template <
typename LateInst = ConstReadOp,
typename = std::enable_if_t<std::is_same_v<LateInst, ConstReadOp>>>
388 return {std::next(odsOperands.begin(), valueRange.first),
389 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
404 ::llvm::LogicalResult
verify(::mlir::Location loc);
406class ConstReadOp :
public ::mlir::Op<ConstReadOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait> {
411 template <
typename RangeT>
416 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"const_name")};
417 return ::llvm::ArrayRef(attrNames);
421 return getAttributeNameForIndex(0);
425 return getAttributeNameForIndex(name, 0);
429 return ::llvm::StringLiteral(
"poly.read_const");
438 return {std::next(getOperation()->operand_begin(), valueRange.first),
439 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
448 return {std::next(getOperation()->result_begin(), valueRange.first),
449 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
452 ::mlir::TypedValue<::mlir::Type>
getVal() {
453 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSResults(0).begin());
456 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
459 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
462 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
463 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
466 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(getProperties().const_name);
471 getProperties().const_name = attr;
475 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type val, ::mlir::FlatSymbolRefAttr const_name);
476 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::FlatSymbolRefAttr const_name);
477 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type val, ::llvm::StringRef const_name);
478 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef const_name);
479 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
482 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
483 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
484 void print(::mlir::OpAsmPrinter &_odsPrinter);
485 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
487 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
488 return getAttributeNameForIndex((*this)->getName(), index);
491 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
492 assert(index < 1 &&
"invalid attribute index");
493 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
494 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
495 "dependent dialect loading?");
496 return name.getAttributeNames()[index];
520 auto &propStorage = this->sym_name;
521 return ::llvm::cast<::mlir::StringAttr>(propStorage);
524 this->sym_name = propValue;
532 return !(*
this == rhs);
560 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().sym_name);
575template <
typename RangeT>
577 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
588 template <
typename LateInst = TemplateExprOp,
typename = std::enable_if_t<std::is_same_v<LateInst, TemplateExprOp>>>
597 return {std::next(odsOperands.begin(), valueRange.first),
598 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
613 ::llvm::LogicalResult
verify(::mlir::Location loc);
615class TemplateExprOp :
public ::mlir::Op<TemplateExprOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasParent<::llzk::polymorphic::TemplateOp>::Impl, ::mlir::OpTrait::NoRegionArguments, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::SymbolOpInterface::Trait, ::llzk::polymorphic::TemplateSymbolBindingOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait, ::mlir::OpTrait::IsIsolatedFromAbove> {
620 template <
typename RangeT>
625 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"sym_name")};
626 return ::llvm::ArrayRef(attrNames);
630 return getAttributeNameForIndex(0);
634 return getAttributeNameForIndex(name, 0);
638 return ::llvm::StringLiteral(
"poly.expr");
647 return {std::next(getOperation()->operand_begin(), valueRange.first),
648 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
657 return {std::next(getOperation()->result_begin(), valueRange.first),
658 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
662 return (*this)->getRegion(0);
665 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
668 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
671 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
672 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
675 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
680 getProperties().sym_name = attr;
684 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name);
685 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name);
686 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name);
687 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name);
688 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
693 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
694 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
695 void print(::mlir::OpAsmPrinter &_odsPrinter);
697 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
698 return getAttributeNameForIndex((*this)->getName(), index);
701 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
702 assert(index < 1 &&
"invalid attribute index");
703 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
704 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
705 "dependent dialect loading?");
706 return name.getAttributeNames()[index];
732 auto &propStorage = this->sym_name;
733 return ::llvm::cast<::mlir::StringAttr>(propStorage);
736 this->sym_name = propValue;
744 return !(*
this == rhs);
772 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().sym_name);
787template <
typename RangeT>
789 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
800 template <
typename LateInst = TemplateOp,
typename = std::enable_if_t<std::is_same_v<LateInst, TemplateOp>>>
809 return {std::next(odsOperands.begin(), valueRange.first),
810 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
825 ::llvm::LogicalResult
verify(::mlir::Location loc);
827class TemplateOp :
public ::mlir::Op<TemplateOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasParent<::mlir::ModuleOp>::Impl, ::mlir::OpTrait::NoRegionArguments, ::mlir::OpTrait::NoTerminator, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::SymbolOpInterface::Trait, ::llzk::LLZKSymbolTableImplTrait, ::mlir::OpTrait::SymbolTable, ::mlir::OpTrait::IsIsolatedFromAbove> {
832 template <
typename RangeT>
837 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"sym_name")};
838 return ::llvm::ArrayRef(attrNames);
842 return getAttributeNameForIndex(0);
846 return getAttributeNameForIndex(name, 0);
850 return ::llvm::StringLiteral(
"poly.template");
859 return {std::next(getOperation()->operand_begin(), valueRange.first),
860 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
869 return {std::next(getOperation()->result_begin(), valueRange.first),
870 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
874 return (*this)->getRegion(0);
877 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
880 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
883 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
884 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
887 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
892 getProperties().sym_name = attr;
896 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name);
897 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name);
898 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name);
899 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name);
900 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
903 ::llvm::LogicalResult
verify();
904 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
905 void print(::mlir::OpAsmPrinter &_odsPrinter);
907 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
908 return getAttributeNameForIndex((*this)->getName(), index);
911 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
912 assert(index < 1 &&
"invalid attribute index");
913 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
914 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
915 "dependent dialect loading?");
916 return name.getAttributeNames()[index];
922 template <TemplateSymbolBindingOp OpT>
923 inline ::llvm::iterator_range<::mlir::Region::op_iterator<OpT>>
getConstOps() {
928 template <TemplateSymbolBindingOp OpT>
934 template <TemplateSymbolBindingOp OpT>
942 template <TemplateSymbolBindingOp OpT>
944 return ::llvm::to_vector(::llvm::map_range(
getConstOps<OpT>(), [](
auto p) -> ::mlir::Attribute {
945 return ::mlir::FlatSymbolRefAttr::get(p.getNameAttr());
950 template <TemplateSymbolBindingOp OpT>
953 return op.getName() == find;
958 template <TemplateSymbolBindingOp OpT>
964 template <TemplateSymbolBindingOp OpT>
970 template <TemplateSymbolBindingOp OpT>
973 auto it = ::llvm::find_if(range, [&find](OpT op) {
return op.getName() == find; });
974 return it != range.end() ? *it : OpT{};
978 template <TemplateSymbolBindingOp OpT>
984 template <TemplateSymbolBindingOp OpT>
1008 auto &propStorage = this->sym_name;
1009 return ::llvm::cast<::mlir::StringAttr>(propStorage);
1012 this->sym_name = propValue;
1018 auto &propStorage = this->type_opt;
1019 return ::llvm::dyn_cast_or_null<::mlir::TypeAttr>(propStorage);
1022 this->type_opt = propValue;
1031 return !(*
this == rhs);
1059 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().sym_name);
1065 auto attr = ::llvm::dyn_cast_or_null<::mlir::TypeAttr>(
getProperties().type_opt);
1072template <
typename RangeT>
1074 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1085 template <
typename LateInst = TemplateParamOp,
typename = std::enable_if_t<std::is_same_v<LateInst, TemplateParamOp>>>
1094 return {std::next(odsOperands.begin(), valueRange.first),
1095 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1110 ::llvm::LogicalResult
verify(::mlir::Location loc);
1112class TemplateParamOp :
public ::mlir::Op<TemplateParamOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasParent<::llzk::polymorphic::TemplateOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::SymbolOpInterface::Trait, ::llzk::polymorphic::TemplateSymbolBindingOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait> {
1117 template <
typename RangeT>
1122 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"sym_name"), ::llvm::StringRef(
"type_opt")};
1123 return ::llvm::ArrayRef(attrNames);
1127 return getAttributeNameForIndex(0);
1131 return getAttributeNameForIndex(name, 0);
1135 return getAttributeNameForIndex(1);
1139 return getAttributeNameForIndex(name, 1);
1143 return ::llvm::StringLiteral(
"poly.param");
1152 return {std::next(getOperation()->operand_begin(), valueRange.first),
1153 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1162 return {std::next(getOperation()->result_begin(), valueRange.first),
1163 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1166 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1169 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
1172 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1173 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
1176 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
1181 return ::llvm::dyn_cast_or_null<::mlir::TypeAttr>(getProperties().type_opt);
1186 getProperties().sym_name = attr;
1189 void setSymName(::llvm::StringRef attrValue);
1191 getProperties().type_opt = attr;
1194 void setTypeOpt(::std::optional<::mlir::Type> attrValue);
1196 auto &attr = getProperties().type_opt;
1201 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::TypeAttr type_opt);
1202 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name, ::mlir::TypeAttr type_opt);
1203 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name, ::mlir::TypeAttr type_opt);
1204 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name, ::mlir::TypeAttr type_opt);
1205 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1208 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
1209 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1210 void print(::mlir::OpAsmPrinter &_odsPrinter);
1212 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
1213 return getAttributeNameForIndex((*this)->getName(), index);
1216 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
1217 assert(index < 2 &&
"invalid attribute index");
1218 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
1219 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
1220 "dependent dialect loading?");
1221 return name.getAttributeNames()[index];
1261template <
typename RangeT>
1263 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1266 UnifiableCastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1272 template <
typename LateInst = UnifiableCastOp,
typename = std::enable_if_t<std::is_same_v<LateInst, UnifiableCastOp>>>
1281 return {std::next(odsOperands.begin(), valueRange.first),
1282 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1301 ::llvm::LogicalResult
verify(::mlir::Location loc);
1303class UnifiableCastOp :
public ::mlir::Op<UnifiableCastOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait> {
1308 template <
typename RangeT>
1316 return ::llvm::StringLiteral(
"poly.unifiable_cast");
1325 return {std::next(getOperation()->operand_begin(), valueRange.first),
1326 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1330 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(0).begin());
1335 return getOperation()->getOpOperand(range.first);
1344 return {std::next(getOperation()->result_begin(), valueRange.first),
1345 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1349 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSResults(0).begin());
1352 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
1353 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
1354 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1357 ::llvm::LogicalResult
verify();
1358 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1359 void print(::mlir::OpAsmPrinter &_odsPrinter);
1360 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1398template <
typename RangeT>
1400 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1403 YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1405 YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) :
YieldOpGenericAdaptor(values, attrs, (properties ? *properties.as<::
mlir::EmptyProperties *>() : ::
mlir::EmptyProperties{}), regions) {}
1409 template <
typename LateInst = YieldOp,
typename = std::enable_if_t<std::is_same_v<LateInst, YieldOp>>>
1418 return {std::next(odsOperands.begin(), valueRange.first),
1419 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1438 ::llvm::LogicalResult
verify(::mlir::Location loc);
1440class YieldOp :
public ::mlir::Op<YieldOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::HasParent<::llzk::polymorphic::TemplateExprOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::RegionBranchTerminatorOpInterface::Trait, ::mlir::OpTrait::ReturnLike, ::mlir::OpTrait::IsTerminator> {
1445 template <
typename RangeT>
1453 return ::llvm::StringLiteral(
"poly.yield");
1462 return {std::next(getOperation()->operand_begin(), valueRange.first),
1463 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1467 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(0).begin());
1472 return getOperation()->getOpOperand(range.first);
1481 return {std::next(getOperation()->result_begin(), valueRange.first),
1482 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1485 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value val);
1486 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value val);
1487 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1491 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1492 void print(::mlir::OpAsmPrinter &_odsPrinter);
ApplyMapOpAdaptor(ApplyMapOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
ApplyMapOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
ApplyMapOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
ApplyMapOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
ApplyMapOpGenericAdaptor(RangeT values, const ApplyMapOpGenericAdaptorBase &base)
ApplyMapOpGenericAdaptor(RangeT values, LateInst op)
ApplyMapOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ValueRange getSymbolOperands()
Returns all symbol operands.
::mlir::AffineMapAttr getMapAttr()
::mlir::IntegerAttr getNumDimsAttr()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::ValueRange getDimOperands()
Returns all dimension operands.
::mlir::Operation::result_range getODSResults(unsigned index)
::mlir::affine::AffineValueMap getAffineValueMap()
Returns the affine value map computed from this operation.
::llvm::APInt getNumDims()
::mlir::Operation::operand_range getMapOperands()
::mlir::StringAttr getNumDimsAttrName(::mlir::OperationName name)
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
::llvm::LogicalResult verify()
void print(::mlir::OpAsmPrinter &_odsPrinter)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
::llvm::LogicalResult verifyInvariants()
static llvm::hash_code computePropertiesHash(const Properties &prop)
FoldAdaptor::Properties Properties
::mlir::StringAttr getMapAttrName(::mlir::OperationName name)
::mlir::Operation::operand_range getODSOperands(unsigned index)
ApplyMapOpAdaptor Adaptor
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::AffineMapAttr map, ::mlir::ValueRange mapOperands={})
::mlir::StringAttr getMapAttrName()
::mlir::AffineMap getMap()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
ApplyMapOpGenericAdaptor< RangeT > GenericAdaptor
void writeProperties(::mlir::DialectBytecodeWriter &writer)
void setMap(::mlir::AffineMap attrValue)
void setNumDimsAttr(::mlir::IntegerAttr attr)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::StringAttr getNumDimsAttrName()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::MutableOperandRange getMapOperandsMutable()
::mlir::AffineMap getAffineMap()
Returns the affine map to be applied by this operation.
::llvm::LogicalResult verifyInvariantsImpl()
void setMapAttr(::mlir::AffineMapAttr attr)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
void setNumDims(::llvm::APInt attrValue)
::llvm::LogicalResult verify(::mlir::Location loc)
ConstReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
ConstReadOpAdaptor(ConstReadOp op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
ConstReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
ConstReadOpGenericAdaptor(RangeT values, const ConstReadOpGenericAdaptorBase &base)
ConstReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
ConstReadOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
ConstReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static constexpr ::llvm::StringLiteral getOperationName()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
void print(::mlir::OpAsmPrinter &_odsPrinter)
FoldAdaptor::Properties Properties
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::TypedValue<::mlir::Type > getVal()
::mlir::StringAttr getConstNameAttrName()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
ConstReadOpGenericAdaptor< RangeT > GenericAdaptor
::mlir::StringAttr getConstNameAttrName(::mlir::OperationName name)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static llvm::hash_code computePropertiesHash(const Properties &prop)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
void setConstName(::llvm::StringRef attrValue)
::llvm::LogicalResult verifyInvariantsImpl()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
void setConstNameAttr(::mlir::FlatSymbolRefAttr attr)
::mlir::FlatSymbolRefAttr getConstNameAttr()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type val, ::mlir::FlatSymbolRefAttr const_name)
ConstReadOpAdaptor Adaptor
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)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::llvm::StringRef getConstName()
::llvm::LogicalResult verify(::mlir::Location loc)
TemplateExprOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
TemplateExprOpAdaptor(TemplateExprOp op)
TemplateExprOpGenericAdaptor(RangeT values, LateInst op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
TemplateExprOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
TemplateExprOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
TemplateExprOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
TemplateExprOpGenericAdaptor(RangeT values, const TemplateExprOpGenericAdaptorBase &base)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::StringAttr getSymNameAttr()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult verifyRegions()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::Region & getInitializerRegion()
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
static llvm::hash_code computePropertiesHash(const Properties &prop)
TemplateExprOpAdaptor Adaptor
::mlir::Type getType()
Returns the type of the poly.yield op in the initializer region.
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::StringRef getSymName()
void setSymName(::llvm::StringRef attrValue)
::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name)
void setSymNameAttr(::mlir::StringAttr attr)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
TemplateExprOpGenericAdaptor< RangeT > GenericAdaptor
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::mlir::Operation::result_range getODSResults(unsigned index)
FoldAdaptor::Properties Properties
::std::optional<::mlir::Type > getTypeOpt()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::StringAttr getSymNameAttrName()
::llvm::LogicalResult verifyInvariants()
void print(::mlir::OpAsmPrinter &_odsPrinter)
TemplateOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
TemplateOpAdaptor(TemplateOp op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
RangeT getODSOperands(unsigned index)
TemplateOpGenericAdaptor(RangeT values, LateInst op)
TemplateOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
TemplateOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
TemplateOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
TemplateOpGenericAdaptor(RangeT values, const TemplateOpGenericAdaptorBase &base)
::mlir::Region & getBodyRegion()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::StringAttr getSymNameAttrName()
static llvm::hash_code computePropertiesHash(const Properties &prop)
OpT getConstNamed(::mlir::StringRef find)
Return the op of type OpT with the given name within the body region if it exists,...
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::SmallVector<::mlir::Attribute > getConstNames()
Return the names of all ops of type OpT within the body region in the order they are defined.
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name)
OpT getConstNamed(::mlir::FlatSymbolRefAttr find)
Return the op of type OpT with the given name within the body region if it exists,...
bool hasConstNamed(::mlir::StringRef find)
Return true if there is an op of type OpT with the given name within the body region.
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
FoldAdaptor::Properties Properties
OpT getConstNamed(::mlir::StringAttr find)
Return the op of type OpT with the given name within the body region if it exists,...
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::StringAttr getSymNameAttr()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
TemplateOpGenericAdaptor< RangeT > GenericAdaptor
void setSymNameAttr(::mlir::StringAttr attr)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verify()
Verify the optional transform-carried name pattern against current parameters.
bool hasConstNamed(::mlir::FlatSymbolRefAttr find)
Return true if there is an op of type OpT with the given name within the body region.
void setSymName(::llvm::StringRef attrValue)
bool hasConstOps()
Return true if there are ops of type OpT within the body region.
bool hasConstNamed(::mlir::StringAttr find)
Return true if there is an op of type OpT with the given name within the body region.
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::mlir::Operation::result_range getODSResults(unsigned index)
static constexpr ::llvm::StringLiteral getOperationName()
::llvm::StringRef getSymName()
size_t numConstOps()
Return the number of ops of type OpT within the body region.
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInvariants()
TemplateOpAdaptor Adaptor
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
inline ::llvm::iterator_range<::mlir::Region::op_iterator< OpT > > getConstOps()
Return ops of type OpT within the body region.
::llvm::LogicalResult verify(::mlir::Location loc)
TemplateParamOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
TemplateParamOpAdaptor(TemplateParamOp op)
RangeT getODSOperands(unsigned index)
TemplateParamOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
TemplateParamOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
TemplateParamOpGenericAdaptor(RangeT values, LateInst op)
TemplateParamOpGenericAdaptor(RangeT values, const TemplateParamOpGenericAdaptorBase &base)
TemplateParamOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
void setSymName(::llvm::StringRef attrValue)
::mlir::StringAttr getTypeOptAttrName()
void setTypeOpt(::std::optional<::mlir::Type > attrValue)
::mlir::Attribute removeTypeOptAttr()
::mlir::TypeAttr getTypeOptAttr()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::TypeAttr type_opt)
TemplateParamOpAdaptor Adaptor
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
void setSymNameAttr(::mlir::StringAttr attr)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
FoldAdaptor::Properties Properties
::mlir::Operation::result_range getODSResults(unsigned index)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::mlir::Operation::operand_range getODSOperands(unsigned index)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
TemplateParamOpGenericAdaptor< RangeT > GenericAdaptor
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
::mlir::StringAttr getTypeOptAttrName(::mlir::OperationName name)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::StringAttr getSymNameAttrName()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::mlir::StringAttr getSymNameAttr()
static constexpr ::llvm::StringLiteral getOperationName()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInvariantsImpl()
::std::optional<::mlir::Type > getTypeOpt()
::llvm::StringRef getSymName()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
void setTypeOptAttr(::mlir::TypeAttr attr)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name)
UnifiableCastOpAdaptor(UnifiableCastOp op)
UnifiableCastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
UnifiableCastOpGenericAdaptor(RangeT values, const UnifiableCastOpGenericAdaptorBase &base)
UnifiableCastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
UnifiableCastOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
UnifiableCastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::mlir::Operation::operand_range getODSOperands(unsigned index)
static constexpr ::llvm::StringLiteral getOperationName()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::OpOperand & getInputMutable()
UnifiableCastOpGenericAdaptor< RangeT > GenericAdaptor
::mlir::TypedValue<::mlir::Type > getInput()
::mlir::TypedValue<::mlir::Type > getResult()
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInvariants()
::mlir::Operation::result_range getODSResults(unsigned index)
UnifiableCastOpAdaptor Adaptor
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verify(::mlir::Location loc)
YieldOpAdaptor(YieldOp op)
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
YieldOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
YieldOpGenericAdaptor(RangeT values, const YieldOpGenericAdaptorBase &base)
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::OpOperand & getValMutable()
::mlir::MutableOperandRange getMutableSuccessorOperands(::mlir::RegionBranchPoint point)
::llvm::LogicalResult verifyInvariantsImpl()
void print(::mlir::OpAsmPrinter &_odsPrinter)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
static constexpr ::llvm::StringLiteral getOperationName()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::mlir::Operation::result_range getODSResults(unsigned index)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
YieldOpGenericAdaptor< RangeT > GenericAdaptor
::llvm::LogicalResult verifyInvariants()
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::TypedValue<::mlir::Type > getVal()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value val)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
const Properties & getProperties()
::mlir::AffineMap getMap()
::mlir::IntegerAttr getNumDimsAttr()
ApplyMapOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr odsAttrs
::mlir::AffineMapAttr getMapAttr()
::mlir::DictionaryAttr getAttributes()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::llvm::APInt getNumDims()
::mlir::RegionRange odsRegions
::std::optional<::mlir::OperationName > odsOpName
const Properties & getProperties()
::mlir::FlatSymbolRefAttr getConstNameAttr()
ConstReadOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
::llvm::StringRef getConstName()
::mlir::DictionaryAttr odsAttrs
::mlir::DictionaryAttr getAttributes()
const Properties & getProperties()
TemplateExprOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
::mlir::RegionRange getRegions()
::mlir::Region & getInitializerRegion()
::mlir::DictionaryAttr getAttributes()
::mlir::DictionaryAttr odsAttrs
::llvm::StringRef getSymName()
::mlir::StringAttr getSymNameAttr()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
TemplateOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
const Properties & getProperties()
::mlir::StringAttr getSymNameAttr()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::Region & getBodyRegion()
::mlir::DictionaryAttr getAttributes()
::mlir::RegionRange getRegions()
::llvm::StringRef getSymName()
::std::optional<::mlir::OperationName > odsOpName
::llvm::StringRef getSymName()
::mlir::TypeAttr getTypeOptAttr()
::std::optional<::mlir::Type > getTypeOpt()
TemplateParamOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
::mlir::StringAttr getSymNameAttr()
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::DictionaryAttr getAttributes()
UnifiableCastOpGenericAdaptorBase(::mlir::Operation *op)
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::RegionRange odsRegions
UnifiableCastOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr getAttributes()
::mlir::DictionaryAttr odsAttrs
::mlir::DictionaryAttr getAttributes()
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr odsAttrs
YieldOpGenericAdaptorBase(::mlir::Operation *op)
::mlir::RegionRange odsRegions
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
YieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
bool operator==(const Properties &rhs) const
::mlir::IntegerAttr numDimsTy
::mlir::AffineMapAttr mapTy
void setMap(const ::mlir::AffineMapAttr &propValue)
bool operator!=(const Properties &rhs) const
void setNumDims(const ::mlir::IntegerAttr &propValue)
::mlir::FlatSymbolRefAttr const_nameTy
bool operator==(const Properties &rhs) const
bool operator!=(const Properties &rhs) const
void setConstName(const ::mlir::FlatSymbolRefAttr &propValue)
void setSymName(const ::mlir::StringAttr &propValue)
bool operator==(const Properties &rhs) const
::mlir::StringAttr sym_nameTy
bool operator!=(const Properties &rhs) const
void setSymName(const ::mlir::StringAttr &propValue)
bool operator!=(const Properties &rhs) const
bool operator==(const Properties &rhs) const
::mlir::StringAttr sym_nameTy
bool operator==(const Properties &rhs) const
bool operator!=(const Properties &rhs) const
void setTypeOpt(const ::mlir::TypeAttr &propValue)
::mlir::StringAttr sym_nameTy
::mlir::TypeAttr type_optTy
void setSymName(const ::mlir::StringAttr &propValue)