Commit Graph

247 Commits

Author SHA1 Message Date
Andrew Morris
ca01d8169d Remove empty lines before labels 2023-07-03 11:12:19 +10:00
Andrew Morris
d89103de79 Optimize after removing unused labels 2023-07-03 10:48:57 +10:00
Andrew Morris
b7d5101bf4 Remove unused labels 2023-07-03 10:45:20 +10:00
Andrew Morris
29835bf732 Replace negate+jmpif with jmpif_not 2023-07-03 09:56:00 +10:00
Andrew Morris
d217f60967 Add jmpif_not instruction 2023-07-03 09:33:47 +10:00
Andrew Morris
adce30305f jmpif true label -> jmp label 2023-07-02 09:55:38 +10:00
Andrew Morris
571c5760a4 Allow sub instructions to be simplified to mov 2023-07-02 09:20:59 +10:00
Andrew Morris
74ed734847 Fix missed substitution bug 2023-07-02 08:59:49 +10:00
Andrew Morris
edecfeeb1f Do some repeated optimization 2023-07-01 17:57:18 +10:00
Andrew Morris
0f9c10f07c Run simplify twice 2023-07-01 17:56:46 +10:00
Andrew Morris
ff8defcf9f Simplify eg op+ 1 2 %dst to mov 3 %dst 2023-07-01 17:44:47 +10:00
Andrew Morris
42c314eccf Put constants in Kal 2023-07-01 17:29:47 +10:00
Andrew Morris
dada0cb779 Extract constants later so that simplify has more information 2023-07-01 17:12:41 +10:00
Andrew Morris
530c025864 Basic subscripting for Kal 2023-07-01 16:33:11 +10:00
Andrew Morris
98441e8070 Make name consistent 2023-07-01 16:04:23 +10:00
Andrew Morris
c91c86ecd6 Kal (refactor) 2023-07-01 16:01:28 +10:00
Andrew Morris
e3f611cf59 Simplify and improve handle_releases_impl 2023-07-01 10:03:32 +10:00
Andrew Morris
4a79be29d1 Release after throw 2023-07-01 08:56:29 +10:00
Andrew Morris
f985698724 Release registers upon return 2023-07-01 08:24:42 +10:00
Andrew Morris
52f42334b3 Imply release on assignment 2023-06-30 18:33:33 +10:00
Andrew Morris
264b8dee40 remove_noops 2023-06-30 17:19:28 +10:00
Andrew Morris
25ba1d97eb remove_meta_lines 2023-06-30 14:36:55 +10:00
Andrew Morris
6ee59518cf Take registers and remove unused movs 2023-06-30 14:12:27 +10:00
Andrew Morris
3720a2b563 Fix non-deterministic assembly ordering 2023-06-30 13:12:20 +10:00
Andrew Morris
9453b69f9e Simplify simplify_line 2023-06-30 12:52:36 +10:00
Andrew Morris
2c6faa0289 Simplify instruction_needs_mutable_this 2023-06-30 12:39:30 +10:00
Andrew Morris
3e5aea5ba3 visit_registers_mut_rev 2023-06-30 12:19:36 +10:00
Andrew Morris
f20cbc9a36 Use register for this argument of Apply, SubCall, ThisSubCall 2023-06-30 11:47:18 +10:00
Andrew Morris
98c7839d68 Use single impl 2023-06-30 10:57:43 +10:00
Andrew Morris
d668433339 Move Instruction to its own file 2023-06-30 10:57:05 +10:00
Andrew Morris
3d5dada476 move (release ..) to after usage 2023-06-30 10:47:13 +10:00
Andrew Morris
da94fcb947 Add release pseudo-instruction 2023-06-30 10:04:08 +10:00
Andrew Morris
4005510bf2 Remove .take() from compiler first pass 2023-06-30 09:47:31 +10:00
Andrew Morris
ae4c0a5be2 Don't extract empty arrays and objects 2023-06-30 09:36:36 +10:00
Andrew Morris
ebf4ca9ae4 Fix bugs 2023-06-29 19:26:42 +10:00
Andrew Morris
842ad083b5 wip 2023-06-29 18:39:02 +10:00
Andrew Morris
bbb0a9ffaf Split into simplify and apply 2023-06-29 16:22:20 +10:00
Andrew Morris
76bc24f4fb Comment instead of empty 2023-06-29 16:09:08 +10:00
Andrew Morris
4d7e9a2e5c Remove redundant require_mutable_this 2023-06-29 16:01:19 +10:00
Andrew Morris
76995eaf2d Split out optimization dir 2023-06-29 15:22:06 +10:00
Andrew Morris
f5fa17ed25 Fix pointer ordering, extract constant arrays and objects 2023-06-29 15:03:21 +10:00
Andrew Morris
b315f07903 Extract optimize.rs 2023-06-29 12:03:43 +10:00
Andrew Morris
4642f22344 Make todos more descriptive 2023-06-28 15:59:17 +10:00
Andrew Morris
b798304070 Implement cond expressions 2023-06-28 15:49:44 +10:00
Andrew Morris
e49b1ff3da Implement yield* instruction 2023-06-27 14:38:42 +10:00
Andrew Morris
fb7f925bfb Use module constants in richards.ts 2023-06-23 16:11:22 +10:00
Andrew Morris
50369d18f3 Partial support for module constants 2023-06-23 15:41:16 +10:00
Andrew Morris
9135181634 Mark most module statements as not supported 2023-06-23 14:17:10 +10:00
Andrew Morris
a03aecedac Add static eval for literals 2023-06-23 14:10:37 +10:00
Andrew Morris
c880dda7c9 Extract string constants 2023-06-23 13:48:58 +10:00