wash
8b3093411a
mie: arith: add support for int and float values
2026-01-04 18:56:03 +00:00
wash
7c7e5e7af0
mie: add more dialect definition macros
2026-01-04 18:54:06 +00:00
wash
9126edfd57
mie: ctx: implement generic (non-parametised) type initialisation
2026-01-04 18:42:12 +00:00
wash
3c9506256d
mie: arith: implement int value cache data structure
2026-01-04 18:36:33 +00:00
wash
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
wash
7b6ce3bf6e
mie: add dialect data structures, and some builtin dialects
2026-01-04 14:10:43 +00:00
wash
79ab1c175b
mie: add IR data structures
2026-01-04 14:10:13 +00:00
wash
0dce84cb7f
mie: add macros for defining dialect and dialect types/ops
2026-01-04 14:09:55 +00:00
wash
2e22898fc8
mie: ctx: implementing registering dialects and type-instances
2026-01-04 14:09:31 +00:00
wash
86005451cb
mie: parse: implement more IR-parsing functions
2026-01-04 14:08:57 +00:00
wash
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
wash
915cf836f2
mie: add macros for defining and using resizable vectors
2026-01-04 14:02:14 +00:00
wash
f9a2cf3b8e
mie: remove all legacy ir and select code
2025-12-21 13:51:26 +00:00
wash
6573360656
mie: start implementing new ir parser
2025-12-21 13:51:07 +00:00
wash
fabbe35483
meta: add readme, licence, and logo
2025-11-16 20:48:54 +00:00
wash
9b2dc1d49c
vim: add support for new extensible syntax
2025-11-16 20:09:20 +00:00
wash
612a6feac2
doc: sample: add examples of new extensible syntax
2025-11-16 20:09:06 +00:00
wash
f0bb29a11a
meta: split into independent repo; add build system, frontend
2025-11-16 20:07:29 +00:00
wash
cfcdcd9cea
mie: select: implement branch operation processing
2025-11-15 22:47:47 +00:00
wash
229d948850
mie: select: implement comparison operation processing
2025-11-15 22:46:54 +00:00
wash
be7d321755
mie: select: track all side-effect-chains in a graph; support combining them all
2025-11-15 22:42:57 +00:00
wash
39f9f6800e
mie: builder: fix incorrect result type for comparison operations
2025-11-15 22:35:24 +00:00
wash
b1bab9ce29
mie: select: add filename parameter to graphviz dump function
2025-11-15 22:34:16 +00:00
wash
5bf893651e
mie: update bluelib api usage
2025-11-06 10:38:50 +00:00
wash
7c1e7e21a9
mie: select: add support for target-specific nodes and lowering operations
2025-09-08 15:42:22 +01:00
wash
225968e94e
mie: target: add result output to ir lowering callbacks
2025-09-08 15:41:50 +01:00
wash
3a8a3b59f0
mie: ir: add helper function to check if a value is a selector
2025-09-08 15:40:33 +01:00
wash
8c13fb88c0
mie: implement simple type comparison
2025-09-08 15:39:55 +01:00
wash
5a56566939
mie: add some more status codes
2025-09-08 15:39:41 +01:00
wash
6b62e81ac0
mie: ir: implement generation and text output of phi instruction
2025-09-08 15:35:35 +01:00
wash
e44af45bc3
mie: add null IR value
2025-09-08 15:33:25 +01:00
wash
71fe8bd5b0
mie: implement instruction selection graph generation for binary ops and load/store
2025-08-29 15:46:52 +01:00
wash
1901a8ae3b
mie: move mie_type_to_string to type.c
2025-08-29 15:46:12 +01:00
wash
7191de80ae
mie: add a stub instruction selection system
2025-08-16 20:57:43 +01:00
wash
3931a1e980
mie: add status codes
2025-08-16 20:56:40 +01:00
wash
d8f4f319e9
mie: name: add a mie_name destructor that removes it from its parent name map
2025-08-16 20:54:05 +01:00
wash
44e242615b
mie: move mie_ctx out of the ir subsystem
2025-08-16 20:53:40 +01:00
wash
9ad4b91eaf
mie: refactor ir api into a separate sub-directory
2025-06-02 11:31:19 +01:00
wash
7aaef1f870
mie.vim: add comparison and branch instruction highlighting
2025-04-28 15:51:53 +01:00
wash
2469967d23
mie: implement comparison and branch instruction generation
2025-04-28 15:41:31 +01:00
wash
fe2a2e0b2c
mie: ctx is now used to query the type of a value
...
this allows value get_type callbacks to use mie_ctx to obtain mie_type pointers,
rather than having to define their own static versions of the type structs.
2025-04-28 15:40:32 +01:00
wash
8a70eef607
mie: convert: text-write write_operand_func now treats func references as pointers
2025-04-24 09:24:15 +01:00
wash
f821a19b93
mie: convert: implement record text conversion
2025-04-23 15:44:17 +01:00
wash
9ef8122767
mie: implemented array value type; restructure const value structures
...
there are now separate structs for all const types (int, string, etc),
rather than a single mie_const union.
2025-04-23 15:42:58 +01:00
wash
7582fba76c
mie: add comma separtor between func arg text output
2025-04-22 21:32:12 +01:00
wash
a54cc8b7ca
mie: add strict-naming support to mie_name_map
...
in strict mode, the hint is taken as the required name. if a value already
exists with the given name, the operation fails.
2025-04-22 15:21:30 +01:00
wash
bdf3115b07
mie: convert: add support for converting more value types
2025-04-22 15:20:43 +01:00
wash
a9606864cd
mie: func name and args are now specified separately from func creation
...
func args are added manually using mie_func_add_arg, while the func's name
is specified when the func is added to a module, to allow the module to generate
a unique name.
2025-04-21 21:10:27 +01:00
wash
9ee4921a5e
mie: convert: add spacing between function definitions
2025-04-21 21:10:14 +01:00
wash
94e0322571
mie: implement caching and emitting string data
2025-04-17 22:55:17 +01:00