![Alex Zinenko](/assets/img/avatar_default.png)
Historically, MemRef only supported a restricted list of element types that were known to be storable in memory. This is unnecessarily restrictive given the open nature of MLIR's type system. Allow types to opt into being used as MemRef elements by implementing a type interface. For now, the interface is merely a declaration with no methods. Later, methods to query, e.g., the type size or whether a type can alias elements of another type may be added. Harden the "standard"-to-LLVM conversion against memrefs with non-builtin types. See https://llvm.discourse.group/t/rfc-memref-of-custom-types/3558. Depends On D103826 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D103827
991 B
Builtin Dialect
The builtin dialect contains a core set of Attributes, Operations, and Types
that have wide applicability across a very large number of domains and
abstractions. Many of the components of this dialect are also instrumental in
the implementation of the core IR. As such, this dialect is implicitly loaded in
every MLIRContext
, and available directly to all users of MLIR.
Given the far-reaching nature of this dialect and the fact that MLIR is extensible by design, any potential additions are heavily scrutinized.
[TOC]
Attributes
[include "Dialects/BuiltinAttributes.md"]
Location Attributes
A subset of the builtin attribute values correspond to source locations, that may be attached to Operations.
[include "Dialects/BuiltinLocationAttributes.md"]
Operations
[include "Dialects/BuiltinOps.md"]
Types
[include "Dialects/BuiltinTypes.md"]
Type Interfaces
[include "Dialects/BuiltinTypeInterfaces.md"]