Goose  History of bs/cir/helpers.cpp of 7d2def7b7561cbe9

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of file bs/cir/helpers.cpp at check-in 7d2def7b7561cbe9

2024-10-01
22:43
Commiting the current WIP for archival purpose before focusing on the inane rewrite in rust file: [d73bb3bc51] check-in: [ce99bb3280] user: achavasse branch: cir-ssa-refactor, size: 2770
2024-09-15
20:24
Add clang format settings, reformat everything file: [4498be21ef] check-in: [0db147f117] user: achavasse branch: cir-ssa-refactor, size: 2341
2024-09-13
21:05
Drop in the most apocalyptic changes: new CIR instruction structure, new sequence builder, new compile time address representation, do almost just the bare minimum to compile again. A few simple things are still working somehow file: [4c74345591] check-in: [57d4d0c79e] user: achavasse branch: cir-ssa-refactor, size: 2399
2024-08-31
14:05
Refactor Instruction to be just a variant instead of a class containing a variant and a clownshoes bunch of constructors file: [69fa6e8e1b] check-in: [8ffbc35112] user: achavasse branch: cir-ssa-refactor, size: 2040
2024-02-09
18:05
Lowering: completely reworked all lowering to happen in the same two unified extension points upstream of all three CIR consumers file: [684e531e5f] check-in: [1793989d05] user: zlodo branch: trunk, size: 2787
2023-08-02
21:46
Implemented forall statement file: [f9bbe30869] check-in: [32f94cd2e1] user: zlodo branch: trunk, size: 1604
2022-05-26
11:31
Re-enabled codegen and related tests, and adapted it to the now stack-based CIR language file: [b8a55673d6] check-in: [dd5c48041c] user: zlodo branch: cir-stack-language, size: 1596
2022-05-23
09:04
Added a CIR instruction to push a constant on the stack file: [f4aead7d15] check-in: [0d0130b939] user: zlodo branch: cir-stack-language, size: 1377
08:44
  • CIR instructions are now stored in lists
  • Execute: handle the stack
  • Converted some instructions to use the stack
file: [613899c2ef] check-in: [0d5427d49b] user: zlodo branch: cir-stack-language, size: 1419
2021-01-03
15:44
cir: load, store and select store their base addresses directly as cir instructiions, rather than wrapped into eir values, which is useless there. file: [57f26a8591] check-in: [4cc7a833f8] user: achavasse branch: trunk, size: 403
2021-01-02
18:24
Yet one more reference/address refactor: each calculation step (getting temp addr, getting var addr, selecting a member) is now a separate cir instruction. We need this level of generalization to be able to obtain addresses from anywhere, including variables and function parameters. file: [f0364095fc] check-in: [26c691ecb9] user: achavasse branch: trunk, size: 577
2020-12-27
14:40
Renamed and modified bs/llr/helpers.cpp → bs/cir/helpers.cpp. Renamed "ir" to "eir" (expression intermediate representation) and "llr" to "cir" (code intermediate representation) for clarity. file: [a4c91addd1] check-in: [7d2def7b75] user: achavasse branch: trunk, size: 659
2020-12-18
01:29
References refactor: references are now values all the way to the llr, where a new "CalcAddress" instruction represents a conversion from a logical address (location + path) into an actual runtime or compilation time address. This is in preparation to allow references to be stored in variables or passed as parameters. (It just took 4.5 months to finish this... Refactoring just sucks) file: [c39a3720e3] check-in: [8ddd71f9b2] user: achavasse branch: trunk, size: 656
2020-07-18
16:25
Computed values now carry lists of instructions around, instead of expression trees. Also absolutely nothing works anymore.

Update: closing this branch as I will finally not pursue this. file: [3fe283bf09] check-in: [7a7e54ac04] user: achavasse branch: llr-stack-language, size: 824

2019-09-22
14:37
Project renaming. file: [0cf572be67] check-in: [af650a9e95] user: achavasse branch: trunk, size: 401
2019-08-01
22:49
Implemented the logic or operator. Not functional yet due to an architectural flaw. file: [786048f507] check-in: [d939807dfa] user: achavasse branch: trunk, size: 1157
20:25
  • CFGs keep track of the number of temporaries that they use
  • Temporaries indices are updated when appending a CFG to another, to avoid collisions
  • Phi now stores its result into a new temporary, instead of returning it directly (Phi has to be at the beginning of a basic block so we can't attach it directly to a value)
file: [e7464b7a31] check-in: [59b1c58c70] user: achavasse branch: trunk, size: 1033
2019-03-02
21:01
Function calls are now eagerly evaluated during parsing. file: [4677647f45] check-in: [8a8e76084e] user: achavasse branch: trunk, size: 403
12:33
Added: llr: added predicates to quickly test if an llr element is suitable for compilation time execution, or for eager evaluation. file: [182887e03a] check-in: [d2c4e27b15] user: achavasse branch: trunk, size: 222