Commit Graph

44 Commits

Author SHA1 Message Date
Enrico Lumetti a33bf77407 Instruction selection: basic bril->AArch64Var conversion 2022-08-15 01:56:24 +02:00
Enrico Lumetti 18ebacb00b Revamp tests 2022-08-13 23:47:05 +02:00
Enrico Lumetti 1a0eeea38b Fix two-operands subtraction 2022-08-12 23:03:55 +02:00
Enrico Lumetti a376f31d4a Convert cvar-to-bril tests to rackunit 2022-08-11 00:27:58 +02:00
Enrico Lumetti 9063858c78 Test subtraction 2022-08-10 23:48:23 +02:00
Enrico Lumetti 0fd4666235 Add utility to print bril from a CVar program 2022-08-10 23:45:43 +02:00
Enrico Lumetti 0aeb312f14 Move more tests to rackunit 2022-08-10 23:44:42 +02:00
Enrico Lumetti cadcd25dbd Fix comment 2022-08-10 23:44:20 +02:00
Enrico Lumetti b80f8768a8 Convert test-cvar.rkt tests to rackunit, test for subtraction 2022-08-10 23:33:51 +02:00
Enrico Lumetti e4d469ea95 Fix rvar subtraction, convert tests to rackunit 2022-08-10 23:33:20 +02:00
Enrico Lumetti 14d6b476bd Fix subtraction, convert tests to rackunit 2022-08-10 23:28:09 +02:00
Enrico Lumetti a4dd0ded8f Convert test-rint to rackunit 2022-08-05 16:25:57 +02:00
Enrico Lumetti f7a20171ec Remove old CVar -> asm path 2022-05-08 17:30:37 +02:00
Enrico Lumetti 3a252a6879 Add CVar to bril translation 2022-05-01 22:56:35 +02:00
Enrico Lumetti e3636d0b05 Introduce different remove-complex-opera* pass
This pass only allows arguments to be variables.
The resulting language is:

let-expr := (Let symbol <simple-expr> <expr>)
simple-expr: (Int num) | (Var symbol) | (Prim op (list-of-symbols))
expr := let-expr | simple-expr
top-level := let-expr

Notably, every top level expression is assigned to a (temporary) variable.
This subset of CVar is particularly easy to translate into bril IR.
2022-05-01 22:46:36 +02:00
Enrico Lumetti 3851d496ed Rewrite explicate-control 2022-05-01 16:09:35 +02:00
Enrico Lumetti 0929ef05f9 Add CVar language and interpreter 2022-05-01 16:02:34 +02:00
Enrico Lumetti 5b1f580ed8 Convert remove-complex-opera* to new data structures 2022-04-30 18:01:54 +02:00
Enrico Lumetti 04c8ab0297 Port uniquify to new structures 2021-11-14 12:20:08 +01:00
Enrico Lumetti 7b8ea0b6f4 Port c2 to rvar 2021-10-21 13:15:37 +02:00
Enrico Lumetti bad45de00a Convert c1 to new EoC data structures
Don't port partial evaluator for the moment
2021-10-05 15:12:14 +02:00
Enrico Lumetti 5487761f54 Experiments with aarch64 stack 2021-05-06 16:53:18 +02:00
Enrico Lumetti 595f8a9db4 Add select-instructions pass 2021-05-05 20:55:32 +02:00
Enrico Lumetti ced273944b Add conclusion and rename _main to start 2021-05-05 20:55:19 +02:00
Enrico Lumetti 44a453a062 Avoid having (read) as an atom in Cvar language 2021-05-05 20:55:00 +02:00
Enrico Lumetti ec8e75232e Fix link in README 2021-05-05 01:01:02 +02:00
Enrico Lumetti 70295d0dcf Rename scm to rkt 2021-05-05 00:46:51 +02:00
Enrico Lumetti 69f969bb71 Add aarch64 execution infrastructure 2021-05-05 00:36:32 +02:00
Enrico Lumetti ad82c64d4d Improve test-util 2021-05-05 00:36:03 +02:00
Enrico Lumetti df520e99ca Fix grammar produced by explicate-control 2021-05-01 00:41:08 +02:00
Enrico Lumetti 85dbf65800 Add test-uncover-locals 2021-05-01 00:38:17 +02:00
Enrico Lumetti 4c67b0f18d Remove trailing space and (- x x) matching 2021-05-01 00:11:54 +02:00
Enrico Lumetti 866af9c2b5 Implement and test explicate-control 2021-05-01 00:08:46 +02:00
Enrico Lumetti febb63c240 Fix bug in rco-arg and update tests 2021-04-30 23:05:14 +02:00
Enrico Lumetti d52c9eb875 Return to simpler implementation 2021-04-30 20:20:07 +02:00
Enrico Lumetti 8c1294a56e Maybe unnecessary 2021-04-30 19:55:59 +02:00
Enrico Lumetti c1c29c0782 Make remove-complex-opera more sophisticate (maybe more useful?) 2021-04-30 15:46:45 +02:00
Enrico Lumetti f1c4cb627b Add remove-complex-opera* implementation 2021-04-27 16:20:51 +02:00
Enrico Lumetti 6e12178605 Fix subtraction 2021-04-27 16:20:38 +02:00
Enrico Lumetti 95cec82371 Add uniquify implementation 2021-04-26 19:04:50 +02:00
Enrico Lumetti e6c4b50adf Reorganize tests 2021-04-26 19:04:20 +02:00
Enrico Lumetti 28f43d4282 Add R1 language interpretation 2020-06-11 02:53:57 +02:00
Enrico Lumetti 346fd55489 License 2020-05-28 11:35:01 +02:00
Enrico Lumetti b8db439685 First commit 2020-05-28 11:34:01 +02:00