Commit Graph

35 Commits

Author SHA1 Message Date
9c1e0958b0 mie: implement instruction selection graph generation for binary ops and load/store 2025-08-29 15:46:52 +01:00
7fdae9f1e0 mie: move mie_type_to_string to type.c 2025-08-29 15:46:12 +01:00
9126638045 mie: add a stub instruction selection system 2025-08-16 20:57:43 +01:00
7ef90750db mie: add status codes 2025-08-16 20:56:40 +01:00
311dd60322 mie: name: add a mie_name destructor that removes it from its parent name map 2025-08-16 20:54:05 +01:00
b4fa90ea7f mie: move mie_ctx out of the ir subsystem 2025-08-16 20:53:40 +01:00
d01a3b4663 mie: refactor ir api into a separate sub-directory 2025-06-02 11:31:19 +01:00
6af9b62b88 mie: implement comparison and branch instruction generation 2025-04-28 15:41:31 +01:00
1431cb7b47 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
9b460a584d mie: convert: text-write write_operand_func now treats func references as pointers 2025-04-24 09:24:15 +01:00
4295b0568b mie: convert: implement record text conversion 2025-04-23 15:44:17 +01:00
ef4b4d2f66 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
2673f29447 mie: add comma separtor between func arg text output 2025-04-22 21:32:12 +01:00
4ffe445572 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
f8c322ef6c mie: convert: add support for converting more value types 2025-04-22 15:20:43 +01:00
8023ea622a 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
8febd270ba mie: convert: add spacing between function definitions 2025-04-21 21:10:14 +01:00
9cce4bf541 mie: implement caching and emitting string data 2025-04-17 22:55:17 +01:00
abb7cfaf0e mie: move mie_ctx to a separate header 2025-04-17 22:25:36 +01:00
8388dfeb79 mie: implement ir generation for message sending 2025-04-17 21:43:02 +01:00
6d8809d325 mie: implement generating extern global data items 2025-04-17 21:42:41 +01:00
95dbedefde mie: builder: add function to get current block 2025-04-16 21:58:22 +01:00
8d462799dd mie: add selector as a mie_value const type 2025-04-15 11:00:10 +01:00
5630132a69 mie: add some convenience functions for func, block, and builder 2025-04-14 20:14:44 +01:00
d4e0df0bda mie: implement sub/mul/div instruction generation 2025-04-14 20:14:28 +01:00
1c8f1447e7 mie: fix a nullptr deref in mie_ctx cleanup 2025-04-14 20:13:13 +01:00
a7233a6cf6 mie: implement value cleanup 2025-04-13 19:25:23 +01:00
edf5b18b32 mie: start implementing ir memory->text conversion 2025-04-13 18:34:28 +01:00
deb1232bf9 mie: implement more ir building functionality 2025-04-13 18:34:02 +01:00
7f0d8b87c5 mie: name_map can now generate unique names when given no hints 2025-04-11 14:12:53 +01:00
377444ef59 mie: implement value type initialiser functions 2025-04-11 13:40:54 +01:00
98d82de47a mie: add name_map to generate unique value names 2025-04-11 13:40:37 +01:00
5cd3eff2ed mie: add lots more mie_value sub-types 2025-04-10 12:18:07 +01:00
e7f6d54fa2 mie: add value type hierarchy definitions
every construct within Mie, such as constants, instructions, functions, and translation units, are sub-types of the generic mie_value struct.

mie_value will facilitate iterating through the IR, as well as converting the IR to/from different formats.
2025-04-03 10:50:41 +01:00
0fee53f194 meta: add stub folder for mie ir builder/optimiser 2025-03-26 22:28:06 +00:00