4d315d6abe
pass: handle null items in schedule_passes
2026-03-16 12:04:48 +00:00
a99610ac02
dialect: select: update parse callback prototype
2026-03-16 12:04:00 +00:00
6bebcbfdf6
scf: implement print/parse for for, if, yield
2026-03-16 12:03:02 +00:00
ab7ccfcfef
dialect: meta: update parse callback prototype
2026-03-16 12:02:45 +00:00
a27375ac2e
func: implement print/parse for func, return
2026-03-16 12:02:19 +00:00
ef4349b732
cf: implement print/parse for br, br-cond
2026-03-16 12:01:50 +00:00
639652b083
arith: implement print/parse for addf, addi, cmpi, constant
2026-03-16 12:00:59 +00:00
fc610a6605
memref: implement print/parse for memref.load()
2026-03-16 12:00:10 +00:00
f88d537043
ptr: update parse callback prototypes
2026-03-16 11:59:30 +00:00
fe1e7d81c4
builtin: add diag definitions and parser callbacks
2026-03-16 11:58:56 +00:00
000a9c2671
vector: add a macro to forward a vector-ref to another function
2026-03-16 11:57:48 +00:00
8a50445dd8
memref: move memref type to builtin dialect
2026-03-16 11:56:51 +00:00
81fde5d43b
rewrite: add functions to add new args to ops
2026-03-16 11:55:28 +00:00
06101b6316
print: add nullptr handling
2026-03-16 11:54:55 +00:00
7b729c49fa
type: add functions to determine what kind of type a type is
2026-03-16 11:54:07 +00:00
51c8d2744c
parse: generate diags to report parse errors
2026-03-16 11:53:35 +00:00
2858323eca
diag: add function to append a simple string to a diag
2026-03-16 11:51:14 +00:00
fed4cad7e8
id: add missing functions to header
2026-03-16 11:41:41 +00:00
a107964e2b
ir: add some manipulation functions
2026-03-16 11:38:37 +00:00
6abdf8f993
mie: implement block dominance calculation using lengauer-tarjan algorithm
2026-02-01 10:33:36 +00:00
870b2bfbac
mie: memref: add load op
2026-02-01 10:33:03 +00:00
5344c02b48
mie: builtin: add some diagnostics for value resolution
2026-02-01 10:25:43 +00:00
4a4f0c483a
mie: ir: op: remove redundant op_dialect pointer
2026-02-01 10:24:06 +00:00
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