Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
50 most recent check-ins that include changes to files matching 'bs/llr/*'
|
2020-12-27
| ||
| 14:40 | Renamed "ir" to "eir" (expression intermediate representation) and "llr" to "cir" (code intermediate representation) for clarity. check-in: 7d2def7b75 user: achavasse tags: trunk | |
|
2020-12-26
| ||
| 14:59 | Build fix check-in: c8058eaaf9 user: achavasse tags: trunk | |
|
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) check-in: 8ddd71f9b2 user: achavasse tags: trunk | |
|
2020-06-13
| ||
| 13:15 | Rewrote the reference unification rules. check-in: ba97c17dee user: achavasse tags: trunk | |
|
2020-06-05
| ||
| 18:57 | Verifier: loops: instead of tracking and havocing modified variables during loops, track modified addresses, so that modifying only some fields of a tuple will not result in forgetting everything about the other fields. check-in: 54ef60956e user: achavasse tags: trunk | |
|
2020-05-23
| ||
| 12:58 |
| |
|
2020-05-19
| ||
| 15:03 | The TemporaryAddress address calculation mode now carries around the initializer value, in case the temporary doesn't already exist. This allows a reference to a temporary to be completely self contained in its value, rather than requiring a separate setup instruction to be emited in the cfg. check-in: 934090c5a8 user: achavasse tags: trunk | |
|
2020-05-03
| ||
| 15:32 | Simplified the llr address representation. check-in: 0b4eb97a44 user: achavasse tags: trunk | |
|
2020-04-22
| ||
| 23:27 | Removed llr::SetVar, now using the more generic llr::Store instead. check-in: 036092faf1 user: achavasse tags: trunk | |
|
2020-04-15
| ||
| 06:36 | Removed llr::GetVar, now using the more generic llr::Load instead. check-in: 20c242dc4f user: achavasse tags: trunk | |
|
2020-04-11
| ||
| 21:01 |
| |
|
2020-03-07
| ||
| 16:36 | More work and fixes on references. Reading a tuple member using the . operator (which returns a constant reference) is now working. check-in: 1c33db7499 user: achavasse tags: trunk | |
|
2020-02-27
| ||
| 22:15 | Implemented the dot operator for tuples. check-in: 2f953408d9 user: achavasse tags: trunk | |
|
2020-02-23
| ||
| 23:57 | llr: added the load and store instructions. check-in: f34a90f312 user: achavasse tags: trunk | |
|
2020-02-22
| ||
| 21:22 | llr: added the GEP instruction. check-in: 1f1bc22ffc user: achavasse tags: trunk | |
|
2019-11-19
| ||
| 20:49 | Store a location in loop headers, and use it to provide more context when diagnosing loop verification failures. check-in: 5f20eec65e user: achavasse tags: trunk | |
| 20:20 | cfg: fix the way the variable ids modified by each loop are stored to avoid duplicate entries. check-in: 1c3ff200aa user: achavasse tags: trunk | |
| 00:04 | cfg: now that we got rid of this crazy system where CFGs could "call" other CFGs that weren't really functions, removed that clumsy cfg index that was needed to identify temporaries everywhere. check-in: 238df77134 user: achavasse tags: trunk | |
|
2019-11-18
| ||
| 22:42 | Removed the "inline CFG" llr instruction and related support code. check-in: 5329f83e33 user: achavasse tags: trunk | |
| 22:09 | Refactor the logic and/or operator to directly append new basic blocks into the current CFG, rather than using a special llr instruction that embeds a nested CFG, whose implementation creates a lot of complexity everywhere. check-in: 70717f6b76 user: achavasse tags: trunk | |
|
2019-11-17
| ||
| 18:20 |
| |
|
2019-11-16
| ||
| 16:27 |
| |
|
2019-10-30
| ||
| 22:08 | Verifier: more work on loop verification. check-in: c91249ffc7 user: achavasse tags: trunk | |
|
2019-10-27
| ||
| 21:31 | Verifier: split func.cpp into multiple files to make navigation easier. check-in: f606dd6e5d user: achavasse tags: trunk | |
|
2019-10-22
| ||
| 22:11 | Verifier: traverse basic blocks in breadth first order and make sure that the current block's predecessors are processed first, so that we don't rely anymore on the order in which they are created by the statements. check-in: d7e2fcc24f user: achavasse tags: trunk | |
|
2019-10-16
| ||
| 23:08 | llr: detect and store relevant informations about loops in the CFG to be able to unroll them in the verifier. check-in: b1f107d1e7 user: achavasse tags: trunk | |
|
2019-10-15
| ||
| 00:04 | llr: implemented a helper function to compute dominators. check-in: cfc94e192c user: achavasse tags: trunk | |
|
2019-10-08
| ||
| 21:55 |
| |
| 18:02 | Added the "placeholder" llr pseudo instruction. check-in: cc9ce06e64 user: achavasse tags: trunk | |
|
2019-10-05
| ||
| 13:58 | Implemented the conversion of GetVar/SetVar/GetTemporary/SetTemporary to z3 expressions. check-in: 3ae3c0b3ad user: achavasse tags: trunk | |
| 11:55 | z3 builder: handle variables. check-in: 83476a562e user: achavasse tags: trunk | |
|
2019-10-03
| ||
| 19:58 | FuncValidator: model the execution flow in z3 by generating boolean expressions describing when each basic block is executed. check-in: 6c8e8075ff user: achavasse tags: trunk | |
|
2019-09-29
| ||
| 22:30 |
| |
| 20:30 | Added a specific llr instruction for 'not' for the sake of constructing z3 expressions. check-in: 2628782ef2 user: achavasse tags: trunk | |
|
2019-09-26
| ||
| 00:27 | Static analysis: check that function verification statements are satisfiable and emit relevant error messages if they aren't. check-in: 7f14d60722 user: achavasse tags: trunk | |
|
2019-09-22
| ||
| 14:37 | Project renaming. check-in: af650a9e95 user: achavasse tags: trunk | |
|
2019-09-09
| ||
| 16:00 | llr: added the assert verification instruction. check-in: 3e6bd22335 user: achavasse tags: trunk | |
|
2019-08-25
| ||
| 01:54 |
| |
|
2019-08-24
| ||
| 19:33 | More cleanup around which builtin functions should be intrinsics/eager/non eager. check-in: fece958df9 user: achavasse tags: trunk | |
|
2019-08-22
| ||
| 13:23 | You have failed me for the last time, CMake. check-in: e38aee1ca0 user: achavasse tags: trunk | |
|
2019-08-20
| ||
| 23:42 |
| |
|
2019-08-18
| ||
| 18:52 |
| |
| 15:35 | llr: added the break and continue terminators. check-in: b16e7c5933 user: achavasse tags: trunk | |
| 14:51 |
| |
|
2019-08-15
| ||
| 01:27 |
| |
|
2019-08-14
| ||
| 02:30 |
| |
|
2019-08-08
| ||
| 16:53 |
| |
|
2019-08-07
| ||
| 19:10 | llr, execute, codegen: implemented the SetVar instruction. check-in: a7d4b38ca5 user: achavasse tags: trunk | |
| 17:29 | llr, execute, codegen: implemented the AllocVar and GetVar instructions. check-in: b0b8db5e09 user: achavasse tags: trunk | |
| 16:07 | execute: removed the old local var functions in frame, and reimplemented them using the new temporary system. Function args are now also handled through this. check-in: 391fc3dedd user: achavasse tags: trunk | |