Commit Graph

451 Commits

Author SHA1 Message Date
168310033d lang: codegen: implement variable declaration/resolution support in block generator 2025-09-08 16:20:41 +01:00
6844f498c5 lang: codegen: replace codegen_value with a new system for passing different types of values between code generators 2025-09-08 16:17:29 +01:00
7ee2e9dd81 lang: codegen: fix block code generator using unit_codegen_state 2025-09-08 16:10:47 +01:00
e5ea7b1134 lang: codegen: remove old var declaration generator 2025-09-08 16:10:11 +01:00
ee402fb437 lang: move IVY_OP_ASSIGN operator id to be with the other assignment operators 2025-09-08 16:03:45 +01:00
3b5f08b1ea lang: ast: add new ast node type ids 2025-09-08 16:03:39 +01:00
7d1b7c5d68 lang: lex: add new lex token type ids 2025-09-08 16:03:26 +01:00
6e65349d70 lang: ast: fix some source formatting 2025-09-08 16:01:02 +01:00
d95a544ff2 lang: ast: fix parsing of tuple iterator declaration in for-loops 2025-09-08 16:00:42 +01:00
59a85e9c47 lang: ast: fix parsing of unlabelled complex msg args 2025-09-08 16:00:07 +01:00
6dfa0c7e17 lang: ast: add function to signal the end of token input to the parser 2025-09-08 15:58:14 +01:00
3c72527204 lang: ast: fix parsing of inline-if expressions that immediately precede an end keyword 2025-09-08 15:57:04 +01:00
8ab377b3ab lang: ast: implement parsing of true/false/null keyword constants 2025-09-08 15:56:03 +01:00
bf250179da lang: ast: implement parsing of break/continue loop-control statements 2025-09-08 15:55:12 +01:00
84e52b1649 lang: ast: replace var keyword with global
local variables are now created automatically when they are first assigned to.

the global keyword can be used to declare that a name refers to a global variable instead,
at which point, assigning to the name results in the assignment referencing the global variable
instead of allocating a new global variable.
2025-09-08 15:52:29 +01:00
5ea544692b lang: diag: add some new diag codes and messages 2025-09-08 15:48:38 +01:00
ea42f738df asm: implement a mie backend for ivy assembly generation 2025-09-08 15:47:48 +01:00
9f8bdc9365 asm: update references to enum ivy_opcode 2025-09-08 15:47:16 +01:00
4e8b1c15de common: rename instruction opcode enum names to avoid conflict 2025-09-08 15:46:44 +01:00
48fb330f47 common: re-define status codes to be compatible with b_result 2025-09-08 15:43:29 +01:00
eb260fb35c mie: select: add support for target-specific nodes and lowering operations 2025-09-08 15:42:22 +01:00
5ca045fd5b mie: target: add result output to ir lowering callbacks 2025-09-08 15:41:50 +01:00
d6f71b7f4f mie: ir: add helper function to check if a value is a selector 2025-09-08 15:40:33 +01:00
15c7b7470e mie: implement simple type comparison 2025-09-08 15:39:55 +01:00
7bff5c9fca mie: add some more status codes 2025-09-08 15:39:41 +01:00
32a520e210 mie: ir: implement generation and text output of phi instruction 2025-09-08 15:35:35 +01:00
dd0dcc9c0a mie: add null IR value 2025-09-08 15:33:25 +01:00
2ff85a7505 doc: sample: add for and while loop samples 2025-09-08 15:30:44 +01:00
cb63e8d016 doc: sample: remove var keyword 2025-09-08 15:30:24 +01:00
ebfbbd0a1a frontend: compile: create and (optionally) show isel graph for each block 2025-08-29 15:47:42 +01:00
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
1a37898d48 cmake: update FindBluelib module 2025-08-29 15:44:12 +01:00
d532d9cff3 lang: codegen: fix free of mie_ctx that isn't allocated by ivy_codegen 2025-08-16 21:11:46 +01:00
7583252b72 doc: add/update sample files 2025-08-16 21:02:14 +01:00
1a9debd6fb test: update mie_ctx include path 2025-08-16 21:01:49 +01:00
fe2565dfcd frontend: update mie_ctx include path 2025-08-16 21:01:32 +01:00
adb326c795 lang: codegen: fix instr gen duplicating left operand 2025-08-16 21:00:50 +01:00
bda10b1166 lang: codegen: update mie_ctx include path 2025-08-16 21:00:22 +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
2b87068852 test: update mie ir api usage 2025-06-02 11:32:46 +01:00
91a3b7cddc frontend: update mie ir api usage 2025-06-02 11:32:36 +01:00
9f83929600 lang: update mie ir api usage 2025-06-02 11:31:35 +01:00
d01a3b4663 mie: refactor ir api into a separate sub-directory 2025-06-02 11:31:19 +01:00
a3d553019d frontend: disassemble: implement dumping int/uint constpool values 2025-05-16 16:57:14 +01:00
57c352ab88 asm: parse: fix parse_linefeed not writing constpool entries for int/uint values 2025-05-16 16:56:47 +01:00
2b28371cb6 frontend: disassemble: implement dumping the contents of classes 2025-05-15 12:11:11 +01:00