| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2020-04-21 | Take kid synonyms into account when propagating constants | Thomas Bauereiss | |
| For example, in let datasize = e in ... the typechecker will generate a kid '_datasize if e has an existential type (with one kid), and in let 'datasize = e in ... the typechecker will bind both 'datasize and '_datasize. If we substitute one as part of constant propagation, this patch will make constant propagation also substitute the other. | |||
| 2020-04-21 | Mono: Check for non-constant calls to make_the_value | Thomas Bauereiss | |
| ... and try to resolve them using constant propagation. | |||
| 2019-11-22 | Add tests for monomorphisation improvement in eb0e17f2 | Brian Campbell | |
| 2019-11-07 | Make the world a slightly more sane and consistent place | Alasdair Armstrong | |
| 2019-11-04 | Some almost-forgotten mono tests | Brian Campbell | |
| 2019-08-29 | Clean up some mono tests | Brian Campbell | |
| 2019-07-16 | Get monomorphisation tests working with separate bitvectors | Alasdair Armstrong | |
| 2019-06-20 | Handle more uses of mutable variables during monomorphisation cast insertion | Brian Campbell | |
| In particular, bitvector subrange updates work with this version. | |||
| 2019-06-19 | Monomorphisation improvements for aarch64_small | Brian Campbell | |
| - additional rewrites (signed extend of subrange@zeros, subrange assignment, variants with casts) - drop # from new top-level type variables (e.g., n_times_8) so that the rewriter knows that they're safe to include in casts - add casts in else-branches when only one possible value for a size is left - add casts when assertions force a size to be a particular value - don't use types to detect set constraints in analysis because we won't know which part of the assertion should be replaced - also use non-top-level type variables when simplifying sizes in analysis (useful when it can from pattern matching on an ast) - cope with repeated int('n) in a pattern match (!) | |||
| 2019-05-06 | Handle type variables generated while inferring applications in monomorphisation | Brian Campbell | |
| Also handle any type variables from assignments and degrade gracefully during constant propagation when unification is not possible. | |||
| 2019-04-26 | More constructor monomorphisation support | Brian Campbell | |
| - handle multiple bitvector length variables - more fine-grained unnecessary cast insertion checks - add tuple matching support to constant propagation (for the test) | |||
| 2019-04-25 | Get basic constructor monomorphisation working again | Brian Campbell | |
| - updates for type checking changes - handle a little more pattern matching in constant propagation - fix bug where false positive warnings were produced - ensure bitvectors in tuples are always monomorphised (to catch the case where the bitvectors only appear alone with a constant size) | |||
| 2019-04-25 | Update prelude in mono tests | Brian Campbell | |
| 2019-03-15 | Fix tests | Thomas Bauereiss | |
| 2019-02-08 | Updates for asl_parser | Alasdair Armstrong | |
| Tweak colours of monomorphistion test output | |||
| 2019-02-07 | Add a symbol for new implicit arguments for backwards compatability | Alasdair Armstrong | |
| Fix monomorphisation tests | |||
| 2019-02-02 | Merge remote-tracking branch 'origin/sail2' into asl_flow2 | Alasdair | |
| 2019-01-31 | Monomorphisation: improve cast insertion and nexp rewriting on variants | Brian Campbell | |
| It now pushes casts into lets and constructor applications, and so supports the case needed for RISC-V. | |||
| 2019-01-31 | Support case splitting on variables as well as sizeof in cast introduction | Brian Campbell | |
| 2018-12-20 | Fix monomorpisation tests with typechecker changes | Alasdair Armstrong | |
| Add an extra argument for Type_check.prove for the location of the prove call (as prove __POS__) to help debug SMT related issues | |||
| 2018-12-03 | Fix = / == in a couple of monomorphisation tests | Brian Campbell | |
| 2018-08-07 | Lem: print more bitvector types | Brian Campbell | |
| Especially for return expressions, which fixes a test case | |||
| 2018-07-24 | Move monomorphisation after mapping rewrites | Brian Campbell | |
| Fixes monomorphisation on files using mappings. Also extended constant propagation to handle pattern matches on bitvector expressions (because an earlier rewrite replaces the literals). Also moved L_undef rewriting because monomorphisation can handle them but not the replacement functions. | |||
| 2018-06-18 | Mono test script update | Brian Campbell | |
| (still need to sort out some string stuff, though) | |||
| 2018-05-22 | Fix one part of cast introduction, leave another for later | Brian Campbell | |
| 2018-04-18 | Update mono test script | Brian Campbell | |
| 2018-04-18 | Move Lem shl_int, shr_int implementations from aarch64_extras to sail lib | Brian Campbell | |
| (note that they're already declared in lib/arith.sail) | |||
| 2018-04-17 | Enable mono builtins test, tweak test output | Brian Campbell | |
| 2018-04-11 | Fix test prelude | Brian Campbell | |
| 2018-04-06 | Test now passes | Brian Campbell | |
| 2018-04-04 | Instantiate type properly when introducing mono casts | Brian Campbell | |
| (also reorder the phases a little) | |||
| 2018-04-04 | Add bitvector casts to funcl bodies when necessary | Brian Campbell | |
| 2018-03-14 | Update mono tests | Brian Campbell | |
| 2018-03-14 | Remove unnecessary size_itself_int uses in guards (for Lem) | Brian Campbell | |
| Doesn't remove them from function bodies because that can produce more work for the sizeof rewriting. | |||
| 2018-03-13 | Add test for mutual recursion and monomorphisation | Brian Campbell | |
| 2018-03-13 | Support a few more set constraints in mono | Brian Campbell | |
| 2018-03-13 | Merge funcls for Lem output, making it suitable for testing with OCaml | Brian Campbell | |
| 2018-03-13 | A couple of mono test tweaks | Brian Campbell | |
| 2018-03-09 | Sort mono test cases, add missing files | Brian Campbell | |
| 2018-02-23 | Make mono test harness nicer | Brian Campbell | |
| 2018-02-23 | Change monomorphisation tests to proper output | Brian Campbell | |
| 2018-02-23 | Update more monomorphisation tests | Brian Campbell | |
| 2018-02-22 | Curtail at more false assertions | Brian Campbell | |
| (plus some adjustments for the test case) | |||
| 2018-02-22 | Start resurrecting monomorphisation tests | Brian Campbell | |
| 2018-02-08 | Add (most of) the bitvector cast insertion transformation | Brian Campbell | |
| to help Lem go from a general type `bits('n)` to a specific type `bits(16)` at a case split, and the other way around for a returned value. Doesn't handle function clause patterns yet | |||
| 2018-01-31 | Find buried set constraints in asserts | Brian Campbell | |
| 2018-01-25 | Use set asserts as case splits in monomorphisation | Brian Campbell | |
| 2018-01-15 | Support non-trivial literal patterns | Brian Campbell | |
| Previously we only did top-level literal pattern to guard conversion, this does it throughout any pattern | |||
| 2018-01-10 | Fix control dependencies in monomorphisation analysis | Brian Campbell | |
| 2017-12-07 | Support monomorphisation with set constrained integers | Brian Campbell | |
| Also, to support this, constant propagation for integer multiply, fix substitution of concrete values for nvars, size parameters in single argument functions, fix kind for itself, add eq_atom to prelude | |||
