4a0fcef862
mie: add support for adding traits to types and ops
2026-01-11 14:14:43 +00:00
79c83ef73c
mie: id: add iteration support to mie_id_map
2026-01-11 14:03:51 +00:00
c6be143925
mie: trait: add function callback to perform trait-specific validation on an object
2026-01-08 22:26:32 +00:00
e76e7c17db
mie: move op and type definition from dialect/ to ir/ and type/ respectively
2026-01-08 22:16:50 +00:00
27e42340de
mie: ir: implement deferred resolution of op arguments
2026-01-08 19:21:50 +00:00
c686c31ca0
mie: add data structures for registering and applying extensible traits
2026-01-08 19:21:17 +00:00
8ad3f36288
mie: parse: implement type reference parsing
2026-01-08 19:19:45 +00:00
0a45e3b571
mie: type: implement function and storage types
2026-01-08 19:17:34 +00:00
e98ccd0c80
mie: vector: store vector components in an anonymous struct; improve macro consistency
2026-01-08 19:15:35 +00:00
14a1ef30ee
mie: parse: add mie_file_span to record character span locations within files
2026-01-08 19:07:19 +00:00
344626f207
mie: type: move all function pointers from mie_type to mie_dialect_type
2026-01-08 19:00:13 +00:00
f4d374288f
mie: id: add an interface for building a mie_id value across multiple steps
2026-01-08 18:56:45 +00:00
789bd1309f
mie: name: implement parent-child maps and recursive name searches
2026-01-08 18:53:56 +00:00
5b06934e85
mie: ctx: add int, string, and index value caches
2026-01-04 18:58:04 +00:00
9d80d94244
mie: add index dialect
2026-01-04 18:57:38 +00:00
3c2ca0f70e
mie: builtin: add string type
2026-01-04 18:57:13 +00:00
aad2cad0a8
mie: add structure to represent primitive values
2026-01-04 18:56:43 +00:00
8b3093411a
mie: arith: add support for int and float values
2026-01-04 18:56:03 +00:00
7c7e5e7af0
mie: add more dialect definition macros
2026-01-04 18:54:06 +00:00
9126edfd57
mie: ctx: implement generic (non-parametised) type initialisation
2026-01-04 18:42:12 +00:00
3c9506256d
mie: arith: implement int value cache data structure
2026-01-04 18:36:33 +00:00
add09d4958
mie: add data structures to represent type-instances
...
unlike values, type-instances represent specialisations of parametised types.
they behave like concrete implementations of C++ template types.
for example: arith.int represents an integer type of unspecified bit-width.
a type-instance of this type would be arith.int<32> (or i32 for short) which
has a defined width of 32 bits.
2026-01-04 14:10:52 +00:00
7b6ce3bf6e
mie: add dialect data structures, and some builtin dialects
2026-01-04 14:10:43 +00:00
79ab1c175b
mie: add IR data structures
2026-01-04 14:10:13 +00:00
0dce84cb7f
mie: add macros for defining dialect and dialect types/ops
2026-01-04 14:09:55 +00:00
2e22898fc8
mie: ctx: implementing registering dialects and type-instances
2026-01-04 14:09:31 +00:00
86005451cb
mie: parse: implement more IR-parsing functions
2026-01-04 14:08:57 +00:00
21bcbb7edc
mie: add a namespace/uuid-based map data structure
...
rather than a traditional dictionary or hashmap, this data structure supports a one-to-one
mapping between a UUID and a value. this is an intrusive data structure like mie_name_map
(a value struct must include an instance of mie_id), but this one does not support name collisions.
mie_id_map generates and issues UUIDs based on a name provided by the caller. All UUIDs are v5,
meaning they are generated using a SHA1 hash of a namespace UUID (specified when the mie_id_map
is initialised), and a unique name provided by the caller.
mie_id can also be used standalone to generate, store, and stringify UUIDs.
2026-01-04 14:03:22 +00:00
915cf836f2
mie: add macros for defining and using resizable vectors
2026-01-04 14:02:14 +00:00
f9a2cf3b8e
mie: remove all legacy ir and select code
2025-12-21 13:51:26 +00:00
6573360656
mie: start implementing new ir parser
2025-12-21 13:51:07 +00:00
fabbe35483
meta: add readme, licence, and logo
2025-11-16 20:48:54 +00:00
9b2dc1d49c
vim: add support for new extensible syntax
2025-11-16 20:09:20 +00:00
612a6feac2
doc: sample: add examples of new extensible syntax
2025-11-16 20:09:06 +00:00
f0bb29a11a
meta: split into independent repo; add build system, frontend
2025-11-16 20:07:29 +00:00
cfcdcd9cea
mie: select: implement branch operation processing
2025-11-15 22:47:47 +00:00
229d948850
mie: select: implement comparison operation processing
2025-11-15 22:46:54 +00:00
be7d321755
mie: select: track all side-effect-chains in a graph; support combining them all
2025-11-15 22:42:57 +00:00
39f9f6800e
mie: builder: fix incorrect result type for comparison operations
2025-11-15 22:35:24 +00:00
b1bab9ce29
mie: select: add filename parameter to graphviz dump function
2025-11-15 22:34:16 +00:00
5bf893651e
mie: update bluelib api usage
2025-11-06 10:38:50 +00:00
7c1e7e21a9
mie: select: add support for target-specific nodes and lowering operations
2025-09-08 15:42:22 +01:00
225968e94e
mie: target: add result output to ir lowering callbacks
2025-09-08 15:41:50 +01:00
3a8a3b59f0
mie: ir: add helper function to check if a value is a selector
2025-09-08 15:40:33 +01:00
8c13fb88c0
mie: implement simple type comparison
2025-09-08 15:39:55 +01:00
5a56566939
mie: add some more status codes
2025-09-08 15:39:41 +01:00
6b62e81ac0
mie: ir: implement generation and text output of phi instruction
2025-09-08 15:35:35 +01:00
e44af45bc3
mie: add null IR value
2025-09-08 15:33:25 +01:00
71fe8bd5b0
mie: implement instruction selection graph generation for binary ops and load/store
2025-08-29 15:46:52 +01:00
1901a8ae3b
mie: move mie_type_to_string to type.c
2025-08-29 15:46:12 +01:00