9#ifdef GET_TYPEDEF_CLASSES
10#undef GET_TYPEDEF_CLASSES
44class PodType :
public ::mlir::Type::TypeBase<PodType, ::mlir::Type, detail::PodTypeStorage, ::mlir::DestructurableTypeInterface::Trait> {
56 ::llvm::FailureOr<::mlir::Type>
getRecord(::llvm::StringRef
name, ::llvm::function_ref<::mlir::InFlightDiagnostic()>)
const;
66 static constexpr ::llvm::StringLiteral
name =
"pod.type";
68 using Base::getChecked;
69 static PodType get(::mlir::MLIRContext *context, ::llvm::ArrayRef<::llzk::pod::RecordAttr> records);
70 static PodType getChecked(::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError, ::mlir::MLIRContext *context, ::llvm::ArrayRef<::llzk::pod::RecordAttr> records);
71 static ::llvm::LogicalResult
verify(::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError, ::llvm::ArrayRef<::llzk::pod::RecordAttr> records);
72 static ::llvm::LogicalResult
verifyInvariants(::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError, ::llvm::ArrayRef<::llzk::pod::RecordAttr> records);
77 static ::mlir::Type
parse(::mlir::AsmParser &odsParser);
78 void print(::mlir::AsmPrinter &odsPrinter)
const;
79 ::llvm::ArrayRef<::llzk::pod::RecordAttr>
getRecords()
const;
static constexpr ::llvm::StringLiteral dialectName
void print(::mlir::AsmPrinter &odsPrinter) const
::llvm::FailureOr<::mlir::Type > getRecord(::llvm::StringRef name, ::llvm::function_ref<::mlir::InFlightDiagnostic()>) const
Searches a record by name.
static constexpr ::llvm::StringLiteral getMnemonic()
static PodType getChecked(::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError, ::mlir::MLIRContext *context, ::llvm::ArrayRef<::llzk::pod::RecordAttr > records)
static PodType fromInitialValues(::mlir::MLIRContext *ctx, InitializedRecords init)
Creates a new type from a set of initialized records.
static PodType get(::mlir::MLIRContext *context, ::llvm::ArrayRef<::llzk::pod::RecordAttr > records)
::llvm::StringMap<::mlir::Type > getRecordMap() const
Returns the records in map form.
::mlir::Type getTypeAtIndex(::mlir::Attribute index) const
Required by DestructurableTypeInterface / SROA pass.
::mlir::Type parse(::mlir::AsmParser &odsParser)
::llvm::LogicalResult verifyInvariants(::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError, ::llvm::ArrayRef<::llzk::pod::RecordAttr > records)
static constexpr ::llvm::StringLiteral name
::std::optional<::llvm::DenseMap<::mlir::Attribute, ::mlir::Type > > getSubelementIndexMap() const
Required by DestructurableTypeInterface / SROA pass.
::llvm::ArrayRef<::llzk::pod::RecordAttr > getRecords() const
::mlir::Type getSingleRecordType(::mlir::StringAttr name) const
Creates a PodType containing only the requested record.
::llvm::LogicalResult verify(::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError, ::llvm::ArrayRef<::llzk::pod::RecordAttr > records)
Common interface for operations that reference a plain-old-data struct value.
mlir::ArrayRef< RecordValue > InitializedRecords