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();
259 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);
260 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
261 void print(::mlir::OpAsmPrinter &_odsPrinter);
262 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
264 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
265 return getAttributeNameForIndex((*this)->getName(), index);
268 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
269 assert(index < 2 &&
"invalid attribute index");
270 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
271 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
272 "dependent dialect loading?");
273 return name.getAttributeNames()[index];
282 return ::mlir::affine::AffineValueMap(
getAffineMap(), getOperands(), getResult());
287 return ::mlir::OperandRange{
288 getOperands().begin(),
289 getOperands().begin() +
getMap().getNumDims()};
294 return ::mlir::OperandRange{
295 getOperands().begin() +
getMap().getNumDims(),
296 getOperands().end()};
318 auto &propStorage = this->const_name;
319 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(propStorage);
322 this->const_name = propValue;
330 return !(*
this == rhs);
358 auto attr = ::llvm::cast<::mlir::FlatSymbolRefAttr>(
getProperties().const_name);
365template <
typename RangeT>
367 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
378 template <
typename LateInst = ConstReadOp,
typename = std::enable_if_t<std::is_same_v<LateInst, ConstReadOp>>>
387 return {std::next(odsOperands.begin(), valueRange.first),
388 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
403 ::llvm::LogicalResult
verify(::mlir::Location loc);
405class 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> {
410 template <
typename RangeT>
415 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"const_name")};
416 return ::llvm::ArrayRef(attrNames);
420 return getAttributeNameForIndex(0);
424 return getAttributeNameForIndex(name, 0);
428 return ::llvm::StringLiteral(
"poly.read_const");
437 return {std::next(getOperation()->operand_begin(), valueRange.first),
438 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
447 return {std::next(getOperation()->result_begin(), valueRange.first),
448 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
451 ::mlir::TypedValue<::mlir::Type>
getVal() {
452 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSResults(0).begin());
455 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
458 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
461 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
462 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
465 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(getProperties().const_name);
470 getProperties().const_name = attr;
474 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type val, ::mlir::FlatSymbolRefAttr const_name);
475 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::FlatSymbolRefAttr const_name);
476 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type val, ::llvm::StringRef const_name);
477 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef const_name);
478 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
481 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
482 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
483 void print(::mlir::OpAsmPrinter &_odsPrinter);
484 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
486 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
487 return getAttributeNameForIndex((*this)->getName(), index);
490 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
491 assert(index < 1 &&
"invalid attribute index");
492 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
493 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
494 "dependent dialect loading?");
495 return name.getAttributeNames()[index];
519 auto &propStorage = this->sym_name;
520 return ::llvm::cast<::mlir::StringAttr>(propStorage);
523 this->sym_name = propValue;
531 return !(*
this == rhs);
559 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().sym_name);
574template <
typename RangeT>
576 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
587 template <
typename LateInst = TemplateExprOp,
typename = std::enable_if_t<std::is_same_v<LateInst, TemplateExprOp>>>
596 return {std::next(odsOperands.begin(), valueRange.first),
597 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
612 ::llvm::LogicalResult
verify(::mlir::Location loc);
614class 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> {
619 template <
typename RangeT>
624 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"sym_name")};
625 return ::llvm::ArrayRef(attrNames);
629 return getAttributeNameForIndex(0);
633 return getAttributeNameForIndex(name, 0);
637 return ::llvm::StringLiteral(
"poly.expr");
646 return {std::next(getOperation()->operand_begin(), valueRange.first),
647 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
656 return {std::next(getOperation()->result_begin(), valueRange.first),
657 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
661 return (*this)->getRegion(0);
664 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
667 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
670 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
671 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
674 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
679 getProperties().sym_name = attr;
683 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name);
684 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name);
685 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name);
686 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name);
687 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
692 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
693 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
694 void print(::mlir::OpAsmPrinter &_odsPrinter);
696 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
697 return getAttributeNameForIndex((*this)->getName(), index);
700 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
701 assert(index < 1 &&
"invalid attribute index");
702 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
703 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
704 "dependent dialect loading?");
705 return name.getAttributeNames()[index];
731 auto &propStorage = this->sym_name;
732 return ::llvm::cast<::mlir::StringAttr>(propStorage);
735 this->sym_name = propValue;
743 return !(*
this == rhs);
771 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().sym_name);
786template <
typename RangeT>
788 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
799 template <
typename LateInst = TemplateOp,
typename = std::enable_if_t<std::is_same_v<LateInst, TemplateOp>>>
808 return {std::next(odsOperands.begin(), valueRange.first),
809 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
824 ::llvm::LogicalResult
verify(::mlir::Location loc);
826class 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> {
831 template <
typename RangeT>
836 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"sym_name")};
837 return ::llvm::ArrayRef(attrNames);
841 return getAttributeNameForIndex(0);
845 return getAttributeNameForIndex(name, 0);
849 return ::llvm::StringLiteral(
"poly.template");
858 return {std::next(getOperation()->operand_begin(), valueRange.first),
859 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
868 return {std::next(getOperation()->result_begin(), valueRange.first),
869 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
873 return (*this)->getRegion(0);
876 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
879 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
882 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
883 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
886 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
891 getProperties().sym_name = attr;
895 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name);
896 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name);
897 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name);
898 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name);
899 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
902 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
903 void print(::mlir::OpAsmPrinter &_odsPrinter);
905 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
906 return getAttributeNameForIndex((*this)->getName(), index);
909 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
910 assert(index < 1 &&
"invalid attribute index");
911 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
912 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
913 "dependent dialect loading?");
914 return name.getAttributeNames()[index];
920 template <TemplateSymbolBindingOp OpT>
921 inline ::llvm::iterator_range<::mlir::Region::op_iterator<OpT>>
getConstOps() {
926 template <TemplateSymbolBindingOp OpT>
932 template <TemplateSymbolBindingOp OpT>
940 template <TemplateSymbolBindingOp OpT>
942 return ::llvm::to_vector(::llvm::map_range(
getConstOps<OpT>(), [](
auto p) -> ::mlir::Attribute {
943 return ::mlir::FlatSymbolRefAttr::get(p.getNameAttr());
948 template <TemplateSymbolBindingOp OpT>
951 return op.getName() == find;
956 template <TemplateSymbolBindingOp OpT>
962 template <TemplateSymbolBindingOp OpT>
968 template <TemplateSymbolBindingOp OpT>
971 auto it = ::llvm::find_if(range, [&find](OpT op) {
return op.getName() == find; });
972 return it != range.end() ? *it : OpT{};
976 template <TemplateSymbolBindingOp OpT>
982 template <TemplateSymbolBindingOp OpT>
1006 auto &propStorage = this->sym_name;
1007 return ::llvm::cast<::mlir::StringAttr>(propStorage);
1010 this->sym_name = propValue;
1016 auto &propStorage = this->type_opt;
1017 return ::llvm::dyn_cast_or_null<::mlir::TypeAttr>(propStorage);
1020 this->type_opt = propValue;
1029 return !(*
this == rhs);
1057 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().sym_name);
1063 auto attr = ::llvm::dyn_cast_or_null<::mlir::TypeAttr>(
getProperties().type_opt);
1070template <
typename RangeT>
1072 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1083 template <
typename LateInst = TemplateParamOp,
typename = std::enable_if_t<std::is_same_v<LateInst, TemplateParamOp>>>
1092 return {std::next(odsOperands.begin(), valueRange.first),
1093 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1108 ::llvm::LogicalResult
verify(::mlir::Location loc);
1110class 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> {
1115 template <
typename RangeT>
1120 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"sym_name"), ::llvm::StringRef(
"type_opt")};
1121 return ::llvm::ArrayRef(attrNames);
1125 return getAttributeNameForIndex(0);
1129 return getAttributeNameForIndex(name, 0);
1133 return getAttributeNameForIndex(1);
1137 return getAttributeNameForIndex(name, 1);
1141 return ::llvm::StringLiteral(
"poly.param");
1150 return {std::next(getOperation()->operand_begin(), valueRange.first),
1151 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1160 return {std::next(getOperation()->result_begin(), valueRange.first),
1161 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1164 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1167 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
1170 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1171 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
1174 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
1179 return ::llvm::dyn_cast_or_null<::mlir::TypeAttr>(getProperties().type_opt);
1184 getProperties().sym_name = attr;
1187 void setSymName(::llvm::StringRef attrValue);
1189 getProperties().type_opt = attr;
1192 void setTypeOpt(::std::optional<::mlir::Type> attrValue);
1194 auto &attr = getProperties().type_opt;
1199 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::TypeAttr type_opt);
1200 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name, ::mlir::TypeAttr type_opt);
1201 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name, ::mlir::TypeAttr type_opt);
1202 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name, ::mlir::TypeAttr type_opt);
1203 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1206 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
1207 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1208 void print(::mlir::OpAsmPrinter &_odsPrinter);
1210 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
1211 return getAttributeNameForIndex((*this)->getName(), index);
1214 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
1215 assert(index < 2 &&
"invalid attribute index");
1216 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
1217 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
1218 "dependent dialect loading?");
1219 return name.getAttributeNames()[index];
1259template <
typename RangeT>
1261 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1264 UnifiableCastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1270 template <
typename LateInst = UnifiableCastOp,
typename = std::enable_if_t<std::is_same_v<LateInst, UnifiableCastOp>>>
1279 return {std::next(odsOperands.begin(), valueRange.first),
1280 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1299 ::llvm::LogicalResult
verify(::mlir::Location loc);
1301class 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> {
1306 template <
typename RangeT>
1314 return ::llvm::StringLiteral(
"poly.unifiable_cast");
1323 return {std::next(getOperation()->operand_begin(), valueRange.first),
1324 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1328 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(0).begin());
1333 return getOperation()->getOpOperand(range.first);
1342 return {std::next(getOperation()->result_begin(), valueRange.first),
1343 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1347 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSResults(0).begin());
1350 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
1351 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
1352 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1355 ::llvm::LogicalResult
verify();
1356 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1357 void print(::mlir::OpAsmPrinter &_odsPrinter);
1358 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1396template <
typename RangeT>
1398 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1401 YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1403 YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) :
YieldOpGenericAdaptor(values, attrs, (properties ? *properties.as<::
mlir::EmptyProperties *>() : ::
mlir::EmptyProperties{}), regions) {}
1407 template <
typename LateInst = YieldOp,
typename = std::enable_if_t<std::is_same_v<LateInst, YieldOp>>>
1416 return {std::next(odsOperands.begin(), valueRange.first),
1417 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1436 ::llvm::LogicalResult
verify(::mlir::Location loc);
1438class 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> {
1443 template <
typename RangeT>
1451 return ::llvm::StringLiteral(
"poly.yield");
1460 return {std::next(getOperation()->operand_begin(), valueRange.first),
1461 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1465 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(0).begin());
1470 return getOperation()->getOpOperand(range.first);
1479 return {std::next(getOperation()->result_begin(), valueRange.first),
1480 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1483 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value val);
1484 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value val);
1485 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1489 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1490 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)
::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)
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)