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
7191de80ae
mie: add a stub instruction selection system
2025-08-16 20:57:43 +01:00
3931a1e980
mie: add status codes
2025-08-16 20:56:40 +01:00
d8f4f319e9
mie: name: add a mie_name destructor that removes it from its parent name map
2025-08-16 20:54:05 +01:00
44e242615b
mie: move mie_ctx out of the ir subsystem
2025-08-16 20:53:40 +01:00
9ad4b91eaf
mie: refactor ir api into a separate sub-directory
2025-06-02 11:31:19 +01:00
7aaef1f870
mie.vim: add comparison and branch instruction highlighting
2025-04-28 15:51:53 +01:00
2469967d23
mie: implement comparison and branch instruction generation
2025-04-28 15:41:31 +01:00
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
8a70eef607
mie: convert: text-write write_operand_func now treats func references as pointers
2025-04-24 09:24:15 +01:00
f821a19b93
mie: convert: implement record text conversion
2025-04-23 15:44:17 +01:00
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
7582fba76c
mie: add comma separtor between func arg text output
2025-04-22 21:32:12 +01:00
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
bdf3115b07
mie: convert: add support for converting more value types
2025-04-22 15:20:43 +01:00
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
9ee4921a5e
mie: convert: add spacing between function definitions
2025-04-21 21:10:14 +01:00
94e0322571
mie: implement caching and emitting string data
2025-04-17 22:55:17 +01:00
26a3299a9c
mie: move mie_ctx to a separate header
2025-04-17 22:25:36 +01:00
f0c72bee81
mie: implement ir generation for message sending
2025-04-17 21:43:02 +01:00
34ec210ab7
mie: implement generating extern global data items
2025-04-17 21:42:41 +01:00
4ccbf0b2fc
mie: builder: add function to get current block
2025-04-16 21:58:22 +01:00
e0ff9a46ea
mie: add selector as a mie_value const type
2025-04-15 11:00:10 +01:00
8eb6277403
mie: add some convenience functions for func, block, and builder
2025-04-14 20:14:44 +01:00
7eae0557af
mie: implement sub/mul/div instruction generation
2025-04-14 20:14:28 +01:00
7d619f7ea7
mie: fix a nullptr deref in mie_ctx cleanup
2025-04-14 20:13:13 +01:00
3a67570403
mie: implement value cleanup
2025-04-13 19:25:23 +01:00
2dca43bf25
mie: start implementing ir memory->text conversion
2025-04-13 18:34:28 +01:00
e2ba8ab620
mie: implement more ir building functionality
2025-04-13 18:34:02 +01:00
fbb547e41b
mie: name_map can now generate unique names when given no hints
2025-04-11 14:12:53 +01:00
7dbd239bb9
mie.vim: replace sym type name with atom
2025-04-11 13:42:10 +01:00
7022b99a64
mie: implement value type initialiser functions
2025-04-11 13:40:54 +01:00
234c4e9062
mie: add name_map to generate unique value names
2025-04-11 13:40:37 +01:00
14b3d007d3
mie.vim: add highlighting for new instructions and keywords
2025-04-10 12:19:13 +01:00
0db5d0dc2a
mie: add lots more mie_value sub-types
2025-04-10 12:18:07 +01:00