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
49d21de894
frontend: disassemble: implement dumping ident, atom, and null constpool values
2025-05-15 12:10:58 +01:00
a76525e11f
asm: parse: use specified indices when writing constpool values
2025-05-15 12:09:39 +01:00
2845c29c5f
asm: assembler: constpool value indices are now used and enforced
...
constpool values must be defined in ascending sequence, each index must be greater than the last.
any gaps in the sequence will automatically be filled with null values.
2025-05-15 12:08:34 +01:00
95f58615e0
asm: reader: implement reading ident and atom constpool values
2025-05-15 12:06:04 +01:00
9229e90723
frontend: disassemble: adjust section dump output format
2025-05-14 16:29:31 +01:00
8998ef0232
frontend: assemble: assembler requires output file to be open read/write
2025-05-14 16:29:09 +01:00
3980c9a21f
asm: parse: implement label reference generation
2025-05-14 16:28:37 +01:00
a35ae51b2f
asm: assembler: implement label creation and resolution
2025-05-14 16:28:30 +01:00
6399022cb3
frontend: disassemble: add a range of switches to control what information is provided
2025-05-13 13:24:43 +01:00
197ba14a4d
asm: reader: implement constpool reader interface
2025-05-13 13:23:59 +01:00