| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2019-03-07 | Also remove impossible if-branches | Thomas Bauereiss | |
| 2019-03-07 | Fix bug in a mono rewrite helper function | Thomas Bauereiss | |
| 2019-03-07 | C: Make instrs_graph return just control flow graph | Alasdair Armstrong | |
| Previously instrs_graph would return the control-flow graph, as well as some data-flow by including reads and writes to variables represented as a node type in the graph (G_id). However, this was not particularly useful, and since the graph isn't in SSA form (so identifiers are non-unique) potentially inaccurate too. This simplifies the code so instrs_graph just returns control flow dependencies, which in turn simplifies the instr_reads and instr_writes functions. | |||
| 2019-03-07 | Coq: apply a little brute force in some boolean goals | Brian Campbell | |
| 2019-03-07 | Add a rewrite to remove impossible cases on integer literals | Brian Campbell | |
| (e.g., for the dual 32/64 bit RISC-V model) Apply this rewrite in Coq backend. | |||
| 2019-03-07 | Simplify handling of referenced variables in constant propagation | Brian Campbell | |
| 2019-03-07 | Git-ignore z3 caches | Brian Campbell | |
| 2019-03-07 | Extract constant propagation and related functions from monomorphisation. | Brian Campbell | |
| This shouldn't change any functionality. | |||
| 2019-03-06 | Add an -ir option to print the intermediate representation of a file | Alasdair Armstrong | |
| 2019-03-06 | Improve AST slicing | Alasdair Armstrong | |
| 2019-03-06 | Add option to slice out printing and tracing functions when generating C | Alasdair Armstrong | |
| Make instruction dependency graph use graph.ml Expose incremental graph building functions for performance in graph.mli | |||
| 2019-03-05 | Fix missing case in specialization | Alasdair | |
| 2019-03-05 | More optimizations and improvments for C generation | Alasdair Armstrong | |
| Add some comments in constant_fold.ml | |||
| 2019-03-05 | Add missing comma in armV8.sail | Alasdair Armstrong | |
| 2019-03-05 | Add forgotten recursive function test | Brian Campbell | |
| 2019-03-05 | Add Unallocated to the gen files | Ben Simner | |
| Adds the Unallocated sail ast node to be tracked by all the transformation files, to track the change made to sail1. | |||
| 2019-03-05 | Coq: firstorder is better at the boolean goals | Brian Campbell | |
| 2019-03-05 | Coq: use setoid rewriting to apply under an existential binder | Brian Campbell | |
| 2019-03-05 | Coq: use more local type information when constructing tuples | Brian Campbell | |
| 2019-03-05 | Coq: some debugging messages | Brian Campbell | |
| 2019-03-05 | Coq: output type-level Int definitions | Brian Campbell | |
| 2019-03-05 | Coq 8.9 compatibility fix | Brian Campbell | |
| 2019-03-05 | Additional optimizations for C compilation | Alasdair | |
| 2019-03-04 | Fix aarch64_small test XML for jenkins | Alasdair Armstrong | |
| Rename rewrite_split_fun_constr_pats to rewrite_split_fun_ctor_pats as constr is commonly used as an abbreviation for constraint rather than constructor, and add a more descriptive comment. | |||
| 2019-03-04 | Add test for building handwritten ARM to lem for Jenkins | Alasdair Armstrong | |
| 2019-03-04 | Fix execute splitting to work when constructors have constraints. | Alasdair Armstrong | |
| Previously any constraints on constructors were just outright dropped when splitting the execute function in Lem generation. Now we get the constraints and type signature for each execute clause from the type given by Env.get_union_constructor, rather than by inferring the type of the pattern in each function clause. Currently this can still fail in the case where we have union U('x: Int), C1('x) = { ctor: {'y. C2('x, 'y), T('x, 'y)} } and val execute : forall 'z, C3('z). U('z) -> unit when C3 implies C1, and the body of an excute clause relies on the fact that C3 is stronger than C1, as each split function execute_ctor is only guaranteed to be constrained by some subset of C1. This seems unlikely to happen in practice though. Also fix a bug when binding P as int('T) against int('T) and similar cases, where the new type variable would cause the old type variable to become shadowed, but the constraint that the bound type variable and the old type variable are equal would not take this into account. | |||
| 2019-03-04 | Merge branch 'sail2' of https://github.com/rems-project/sail into sail2 | Christopher Pulte | |
| 2019-03-04 | check in missing regfp2.sail | Christopher Pulte | |
| 2019-03-04 | Do not store type synonyms as functions in the environment | Alasdair Armstrong | |
| 2019-03-04 | cleanup | Christopher Pulte | |
| 2019-03-04 | Merge branch 'sail2' of https://github.com/rems-project/sail into sail2 | Christopher Pulte | |
| 2019-03-04 | last bit of sail1 to sail2 porting | Christopher Pulte | |
| 2019-03-04 | Add location to warning in pattern completeness check | Alasdair Armstrong | |
| 2019-03-04 | more sail1-to-sail2 porting | Christopher Pulte | |
| 2019-03-04 | more porting of armv8 from sail1 to sail2 | Christopher Pulte | |
| 2019-03-04 | more | Christopher Pulte | |
| 2019-03-02 | more | Christopher Pulte | |
| 2019-03-02 | more | Christopher Pulte | |
| 2019-03-02 | Merge branch 'sail2' of https://github.com/rems-project/sail into sail2 | Christopher Pulte | |
| 2019-03-02 | more | Christopher Pulte | |
| 2019-03-01 | WIP: Start working on being able to slice single instructions out of specs | Alasdair Armstrong | |
| 2019-03-01 | Add some tricky test cases for quantified Sail AST types | Alasdair Armstrong | |
| Fixes some bugs found by doing this | |||
| 2019-03-01 | Coq: some library compatibility changes | Brian Campbell | |
| 2019-03-01 | Add a test case for previous commit | Alasdair Armstrong | |
| Also make unifying int against int('n) work as expected for constructor applications. | |||
| 2019-03-01 | Merge branch 'sail2' of https://github.com/rems-project/sail into sail2 | Christopher Pulte | |
| 2019-03-01 | Fix bug with naturals in quantified constructors | Alasdair Armstrong | |
| 2019-03-01 | Merge branch 'sail2' of https://github.com/rems-project/sail into sail2 | Christopher Pulte | |
| 2019-03-01 | Make Sail more flexible with existentials in union types | Alasdair Armstrong | |
| Issues came up with Christophers translation of hand-written ARM into Sail2 where we were being overly pedantic about the exact position of existential quantifiers in constructors with multiple arguments. This commit generalises unify_typ and type_coercion_unify to be more flexible and support this. Should think at some point if unify_typ can be generalised further. This fix should fix the decode side of things, but may be some issues with the executes that still need looking into when existentials and multiple argument constructors are mixed. | |||
| 2019-03-01 | Fill in some edge cases in monomorphisation | Brian Campbell | |
| 2019-03-01 | more progress | Christopher Pulte | |
