| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2019-06-05 | Coq: exploit arithmetic solver for some mixed integer/bool problems. | Brian Campbell | |
| 2019-06-05 | Coq: generalize proof terms before main solver | Brian Campbell | |
| Ensures that dependencies in proofs don't affect rewriting. | |||
| 2019-06-04 | Coq: more constraint solving | Brian Campbell | |
| - make the exists, iff solver handle more cases - avoid exposing omega to goals with local definitions involving proofs | |||
| 2019-06-03 | Coq: experiment with another boolean iff solving method | Brian Campbell | |
| 2019-05-30 | Set interpreter builtin for truncateLSB. | Robert Norton | |
| 2019-05-29 | Coq: more solver improvements | Brian Campbell | |
| - don't clear boolean local definitions - we need those now - some boolean disjunction fixes | |||
| 2019-05-29 | Coq: need a proof for _shr32 | Brian Campbell | |
| 2019-05-28 | Coq: more constraint solving | Brian Campbell | |
| - add division lemma - deal with some awkward \/ constraints from asl_parser - try simple integer comparison proofs before omega (which can blow up on trivial properties in large contexts) | |||
| 2019-05-24 | Coq: switch to computable versions of BBV shifts | Brian Campbell | |
| 2019-05-23 | Coq: solve some division constraints | Brian Campbell | |
| 2019-05-23 | Coq: define the names from the Sail real library | Brian Campbell | |
| 2019-05-23 | Fix bug in slice_mask | Thomas Bauereiss | |
| 2019-05-22 | Coq: tweak disjunctions tactic with subst to support more constraints | Brian Campbell | |
| 2019-05-21 | Coq: remove premature unfolding of local definitions | Brian Campbell | |
| 2019-05-20 | Coq: fix property extraction bug, solve some constraints involving sets | Brian Campbell | |
| 2019-05-19 | Coq: add signed bitvector to integer function that doesn't need >0 constraint | Brian Campbell | |
| 2019-05-19 | Coq: proper definitions for some undefined value functions | Brian Campbell | |
| That is, undefined_bitvector, undefined_unit, internal_pick. | |||
| 2019-05-17 | SMT: Finish adding all memory builtins from lib/regfp.sail | Alasdair Armstrong | |
| 2019-05-15 | Coq: constraint solving for aarch64 | Brian Campbell | |
| Also split out main solver tactic to make debugging a little easier. | |||
| 2019-05-14 | Various bugfixes | Alasdair Armstrong | |
| Since we have __deref to desugar *x in this file (as it's the one file everything includes) we might as well add a __bitfield_deref here too, for the bitfield setters. Make sure undefined_nat can be used in C Both -memo_z3 and -no_memo_z3 were listed as default options, now only -no_memo_z3 is listed as the default. | |||
| 2019-05-14 | Merge branch 'smt_experiments' into sail2 | Alasdair Armstrong | |
| 2019-05-14 | Add feature that allows functions to require type variables are constant | Alasdair Armstrong | |
| can now write e.g. forall (constant 'n : Int) rather than forall ('n: Int) which requires 'n to be a constant integer value whenever the function is called. I added this to the 'addrsize variable on memory reads/writes to absolutely guarantee in the SMT generation that we don't have to worry about the address being a variable length bitvector. | |||
| 2019-05-13 | Merge branch 'sail2' into smt_experiments | Alasdair | |
| 2019-05-13 | Parse dereferences in orderinary expressions | Alasdair | |
| 2019-05-13 | fix typo in excl_res extern | Jon French | |
| 2019-05-10 | SMT: Experiment with symbolic memory reads and writes | Alasdair Armstrong | |
| 2019-05-09 | SMT: Make path conditionals more precise | Alasdair Armstrong | |
| Previously path conditionals for a node were defined as the path conditional of the immediate dominator (+ a guard for explicit guard nodes after conditional branches), whereas now they are the path conditional of the immediate dominator plus an expression encapsulating all the guards between the immediate dominator and the node. This is needed as the previous method was incorrect for certain control flow graphs. This slows down the generated SMT massively, because it causes the path conditionals to become huge when the immediate dominator is far away from the node in question. It also changes computing path conditionals from O(n) to O(n^2) which is not ideal as our inlined graphs can become massive. Need to figure out a better way to generate minimal path conditionals between the immediate dominator and the node. I upped the timeout for the SMT tests from 20s to 300s each but this may still cause a failure in Jenkins because that machine is slow. | |||
| 2019-05-08 | Remove generated TeX file | Thomas Bauereiss | |
| 2019-05-07 | Merge branch 'sail2' into smt_experiments | Alasdair Armstrong | |
| 2019-05-07 | Patch up a couple of Isabelle proofs due to memory interface changes | Brian Campbell | |
| 2019-05-05 | C: Add option to compile using __int128 rather than GMP | Alasdair | |
| Only requires a very small change to c_backend.ml. Most of this commit is duplication of the builtins and runtime in lib/int128. But the actual differences in those files is also fairly minor could be handled by some simple ifdefs for the integer builtins. | |||
| 2019-05-03 | Jib: Optimize set_slice for ARM v8.5 | Alasdair Armstrong | |
| 2019-05-03 | Jib: Fix optimizations for SMT IR changes | Alasdair Armstrong | |
| Fixes C backend optimizations that were disabled due to changes in the IR while working on the SMT generation. Also add a -Oaarch64_fast option that optimizes any integer within a struct to be an int64_t, which is safe for the ARM v8.5 spec and improves performance significantly (reduces Linux boot times by 4-5 minutes). Eventually this should probably be a directive that can be attached to any arbitrary struct/type. Fixes the -c_specialize option for ARM v8.5. However this only gives a very small performance improvment for a very large increase in compilation time however. | |||
| 2019-04-27 | Merge branch 'sail2' into smt_experiments | Alasdair | |
| 2019-04-26 | Fix some broken interpreter tests | Alasdair Armstrong | |
| 2019-04-25 | Update coq read_mem/write_mem. | Prashanth Mundkur | |
| 2019-04-25 | More read/write function updates | Brian Campbell | |
| 2019-04-24 | SMT: Make sure we clear overflow checks between generating properties | Alasdair Armstrong | |
| 2019-04-19 | Coq: more robust handling of unknown constraints | Brian Campbell | |
| 2019-04-18 | Parameterise memory read/write primitives by address length | Jon French | |
| 2019-04-17 | Add interpreter annots to vector_dec. | Prashanth Mundkur | |
| 2019-04-17 | now without memory leaks | Jon French | |
| 2019-04-17 | add unimplemented C platform definitions for platform_read_mem etc | Jon French | |
| 2019-04-17 | SMT: Unroll simple foreach loops | Alasdair Armstrong | |
| 2019-04-16 | Coq: make bools_of_int (and hence get_slice_int) compute well | Brian Campbell | |
| 2019-04-16 | Coq: set_slice typo | Brian Campbell | |
| 2019-04-16 | Coq: tdiv builtins | Brian Campbell | |
| 2019-04-16 | Coq: add specialised shifts | Brian Campbell | |
| 2019-04-15 | Merge branch 'sail2' of github.com:rems-project/sail into sail2 | Jon French | |
| 2019-04-15 | Merge branch 'sail2' into rmem_interpreter | Jon French | |
