Commit Graph

23 Commits

Author SHA1 Message Date
fe1e7d81c4 builtin: add diag definitions and parser callbacks 2026-03-16 11:58:56 +00:00
8a50445dd8 memref: move memref type to builtin dialect 2026-03-16 11:56:51 +00:00
5344c02b48 mie: builtin: add some diagnostics for value resolution 2026-02-01 10:25:43 +00:00
cd49417972 mie: add a system for registering and producing detailed diagnostic messages 2026-01-27 20:46:44 +00:00
0a791fdfb2 mie: dialect: update Op emitter functions to use mie_emitter 2026-01-25 15:00:37 +00:00
0277931ca1 mie: builtin: implement lots of print and emit functions 2026-01-23 23:22:47 +00:00
76166167c9 mie: builtin: improve int attribute print callback 2026-01-21 14:39:12 +00:00
f6f6131f52 mie: builtin: add function to create mie_type_attr instances 2026-01-21 14:38:01 +00:00
cb3d37043c mie: update b_bstr usage 2026-01-19 13:51:27 +00:00
759aaf9fd8 mie: vector: add copy- and move-constructor support 2026-01-18 21:52:39 +00:00
c410e0a6e3 mie: builtin: implement op printer callbacks 2026-01-17 10:28:51 +00:00
2869e98556 mie: builtin: add function to get int/float value from an attribute 2026-01-17 10:25:49 +00:00
e1f7f46d3e mie: ir: replace mie_module ir object with a builtin generic "module" op
the builtin.module op behaves exactly like any other op, and is designed
to be a container for other ops of any type. it can be used as the
top-level container for other ops (other top-level containers can be used
instead).

this also changes the file format. now, an ir file can only contain a
single top-level op. any other ops in the ir must be contained
directly or indirectly by this top-level op.
2026-01-16 10:01:19 +00:00
65905bc55b mie: implement support for custom op print formats 2026-01-15 14:20:13 +00:00
3c4af9c26e mie: builtin: initial implementation of a symbol system
the symbol system will allow ops to reference each other via symbolic
names, rather than just via their SSA output registers. this will
allow for links between ops that are less strict than SSA.

the two parts of the system are:
- the symbol-table trait. ops with this trait can contain symbol ops.
- the symbol interface. ops with this interface have the necessary attributes
  to be treated as symbols.
2026-01-14 18:21:28 +00:00
50f4be621b mie: move all builtin types (int, float, index, etc) and attributes to the builtin dialect 2026-01-14 09:45:14 +00:00
da630ce382 mie: replace fixed value system with an extensible attribute interface
under this new system, dialects can define their own custom attributes,
complete with their own print() and parse() callbacks, which can then be
used as values in an op's attribute dictionary.

alongside custom dialect attributes, the former int, float, and string
constant values have been converted to attributes provided by the
arith and builtin dialects respectively. the caches for these attributes
have also been moved from mie_ctx to their respective dialect data
structures.

this system will allow new types of attributes to be implemented,
including dictionaries, arrays, and references to types themselves
(rather than just particular values of a given type).
2026-01-13 22:37:43 +00:00
49df8616a8 mie: implement a printer system for converting IR to textual form 2026-01-12 10:33:08 +00:00
417b5dc354 mie: builtin: add isolated-from-above trait 2026-01-11 14:38:28 +00:00
e76e7c17db mie: move op and type definition from dialect/ to ir/ and type/ respectively 2026-01-08 22:16:50 +00:00
344626f207 mie: type: move all function pointers from mie_type to mie_dialect_type 2026-01-08 19:00:13 +00:00
3c2ca0f70e mie: builtin: add string type 2026-01-04 18:57:13 +00:00
7b6ce3bf6e mie: add dialect data structures, and some builtin dialects 2026-01-04 14:10:43 +00:00