f37ee90b0e
mie: func: add function-like trait
2026-01-31 23:29:17 +00:00
3f901ed83a
doc: update type prefix in sample graph files
2026-01-27 20:52:35 +00:00
b28efa2d08
tool: optimise: update mie_lex usage
2026-01-27 20:51:31 +00:00
5835d25679
tool: validate: if parse fails, print any diagnostic messages
2026-01-27 20:51:18 +00:00
d4fbd75a59
tool: implement a diagnostic message printer
2026-01-27 20:48:04 +00:00
0b1d4697a2
tool: ctx-dump: show registered diag classes/messages
2026-01-27 20:47:10 +00:00
cd49417972
mie: add a system for registering and producing detailed diagnostic messages
2026-01-27 20:46:44 +00:00
bd5ba9e9fd
mie: lex: move file i/o handling to a separate struct
2026-01-27 20:46:08 +00:00
b5fa40d4d8
mie: tool: add command to run optimisations on an input IR file
2026-01-25 15:12:07 +00:00
a67e4b6688
mie: tool: validate: remove functionality that was moved to internal subcommands
2026-01-25 15:11:06 +00:00
5873326138
mie: tool: split internal command into several different subcommands
2026-01-25 15:10:23 +00:00
00152cac56
mie: convert-scf-to-cf: implement if match/rewrite using new interface
2026-01-25 15:08:19 +00:00
287983fa95
mie: implement a full rewriter with pattern-matching and rewriting support
...
the new rewriter interface supports running patterns over an Op's children
matching Ops that conform to a pattern, and rewriting Ops in arbitrary ways.
2026-01-25 15:06:43 +00:00
8cdbf5389c
mie: pass: manager: update mie_walker usage
2026-01-25 15:05:44 +00:00
00c7c3d5ea
mie: parse: update parse_region_list to use new Op->Region linking mechanism
2026-01-25 15:05:18 +00:00
9e546ee32f
mie: name: fix crash when destroying a zeroed mie_name
2026-01-25 15:04:37 +00:00
00ba3a3d87
mie: print: implement exception-printing of resolved, but null, op args
...
this is to make it easier to spot mistakes made when modifying IR.
2026-01-25 15:02:48 +00:00
d44bc8c5c0
mie: ir: op: fix crash when checking if an unresolved op is isolated
2026-01-25 15:02:17 +00:00
a22e95d88d
mie: ir: op: add functions to check what an Op is, and add successors with args
2026-01-25 15:01:41 +00:00
0a791fdfb2
mie: dialect: update Op emitter functions to use mie_emitter
2026-01-25 15:00:37 +00:00
fe511011ec
mie: ir: walk: implement non-recursive traversal
...
struct mie_walker is now a public struct that can (and should) be stack
allocated. this means that non-recursive traversal of an Op's children
uses no dynamically allocated memory.
2026-01-25 14:58:51 +00:00
e8534f8d70
mie: ir: Op->Region, Region->Block, and Block->Op lists are now b_queues rather than mie_vectors
...
this change has two key benefits:
1. we no longer need to allocate large contigious buffers for Regions with lots
of Blocks, or Blocks with lots of Ops.
2. this simplifies re-arranging, inserting, and moving parts of the IR structure.
2026-01-25 14:56:47 +00:00
bf8c966c03
mie: ir: builder: add mie_emitter support
2026-01-25 14:53:24 +00:00
7d30e8f3ff
mie: ir: add an emitter interface for emitting IR constructs
...
mie_emitter can be inherited from by any structure that supports
emitting IR constructs like Ops and Blocks. Dialect Op emitter
functions can wrap mie_emitter to simplify emitting specific Ops,
and these functions can then be used with any struct that inherits
from mie_emitter.
2026-01-25 14:51:36 +00:00
e9d2c0fbc7
mie: scf: implement lots of print and emit functions
2026-01-23 23:33:16 +00:00
a710ef0b24
mie: func: implement lots of print and emit functions
2026-01-23 23:22:57 +00:00
0277931ca1
mie: builtin: implement lots of print and emit functions
2026-01-23 23:22:47 +00:00
ac7860b6bd
mie: ir: rewrite: add pattern and rewriter interface
2026-01-23 23:21:42 +00:00
29984307aa
mie: pass: support filtering passes to any op of a given dialect
2026-01-23 23:21:16 +00:00
ac96248d7e
mie: ir: builder: support adding names to non-isolated op regions
2026-01-23 23:19:29 +00:00
593eda2797
mie: trait: table: fix get_unique() unboxing the wrong pointer
2026-01-23 23:17:39 +00:00
d0ac8a9fed
mie: ir: walk: re-implement walker with a stack rather than a queue
2026-01-23 22:50:05 +00:00
89ebbcc462
mie: parse: replace all op-creation with mie_block_add_op calls
2026-01-23 22:42:39 +00:00
554a1e7342
mie: ir: op: keep a pointer to the block that contains the op
2026-01-23 22:42:05 +00:00
6d1e308ff1
mie: ir: op: only create a name map if the op is isolated-from-above
2026-01-23 22:41:03 +00:00
58bd336eb8
mie: dialect: add emitter functions for various ops
2026-01-21 14:42:22 +00:00
008966e046
mie: ir: add ir builder interface
2026-01-21 14:40:22 +00:00
83343a5eea
mie: ir: block: add function to create block parameters
2026-01-21 14:39:56 +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
33f9ccd871
mie: ir: register: implement moving and cleanup of mie_register_use
2026-01-21 14:36:24 +00:00
0c4ebe7f39
mie: ctx: add function to create ops
2026-01-21 14:17:43 +00:00
72de4ce845
mie: ir: op: add function to add op arguments
2026-01-21 14:15:02 +00:00
937dc57c4e
tool: validate: resolve op definitions; run test pass
2026-01-19 14:00:25 +00:00
b8c0d139a8
vim: update type and attribute prefixes
2026-01-19 14:00:04 +00:00
abf43a9022
doc: update ir sample files
2026-01-19 13:59:43 +00:00
4700ce7778
build: bump minimum CMake version
2026-01-19 13:59:14 +00:00
95c51045b6
meta: update clang-format config
2026-01-19 13:59:00 +00:00
e62c9c4775
mie: ir: add stub rewriter interface
2026-01-19 13:58:24 +00:00
a97678a1c2
mie: add stub memref dialect
2026-01-19 13:58:12 +00:00