#
b2ddb1f6 |
|
11-Mar-2020 |
Gerwin Klein <gerwin.klein@data61.csiro.au> |
convert license headers to SPDX
|
#
858715f6 |
|
23-Jul-2018 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Integrate future induction. The required checks and search process were added recently. The ProofNode proof script type now has a SingleRevInduct proof kind, which captures the reverse-induction at a single loop point, and the search process emits the relevant proof scripts. This required a minor restructure of the searcher.
|
#
87f29cdb |
|
20-Jul-2018 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Tweaks, setup for next feature.
|
#
4cccd431 |
|
12-Jul-2018 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Adjusted hypothesis kind, Eq assuming PC. This is a fairly big change, I guess. The 'future' proof I need to do requires a hypothesis kind in which an equality is gated by whether the relevant addresses are visited. Perhaps all equalities could be phrased this way anyway?
|
#
ae17ea94 |
|
11-Jul-2018 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Factor out a common substitution pattern.
|
#
bdbcb018 |
|
01-Jul-2018 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Factor out some patterns and more debug code. Adds some new helpers mk_n_implies and smt_num_t to factor out some common use patterns. Also adds yet more debug tracing.
|
#
d5a1440b |
|
24-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Report more on failures, in particular timeouts.
|
#
8ade0aef |
|
24-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Some more inner loop handling sanity. This gets us past the 'check' phase of problem setup for functions with inner loops.
|
#
cc7fc25f |
|
22-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Experiment with side-proving rodata ineqs. The suspicion was that some slow-down seen lately was because the rodata-witness value might now have a disjunction of possible reasons for difference, which might make the solver logic for understanding that function input are valid more obscure. A possible fix for that is to pre-test and pre-assert that the witness must be disjoint from problem pointers on the C side, based just on their PC. That should simplify the SMT logic, one might think.
|
#
4cd3fe2b |
|
09-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Tweaks, mostly diagnostic.
|
#
04199e8f |
|
05-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Take more care with scan_mem_calls. With some asm wrappers and other rare cases, some ASM-side functions fetch/save the stack and others don't. This leads to confusion about the number of calls any memory has participated in. Since this case is rare anyway, just merge the call sets and be pessimistic about which functions have 'really' been called.
|
#
130a9cfe |
|
04-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Trace reasons for skipping funcall pairings.
|
#
717df8de |
|
02-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Fix funcall pair optimisation for ro-functions. The funcall pair optimisation tracks how many function calls have contributed to any given memory variable. Special care is now taken for read-only C functions which don't return an updated memory.
|
#
1d0919e9 |
|
20-Dec-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Minor bugfixes.
|
#
04a60da1 |
|
14-Dec-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
The calls-on-memory optimisation. Track, for each memory object, the number of calls to various functions that have gone into it. Well, a range, min-max. Avoid producing function relations for function call pairs that can't reasonably be related. This may substantially reduce the problem complexity for function calls in loops that get unrolled a fair bit.
|
#
651e3d0e |
|
04-Sep-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Search performance improvements. Tweaking now, less tracing, more caching, more caution in using the necessary linear sequence alignment, and a cache to avoid repeatedly testing similar weakly aligned splits.
|
#
bd491304 |
|
31-Aug-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Tweak handling of reachability. Move reachability cache to problem (from rep_graph), use in check to insist on discovering (0) loop bounds slightly less often.
|
#
3ba7950c |
|
31-Aug-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Add 'strncmp' optimisation to search algorithm. The search algorithm performed poorly in functions such as strncmp where the only values changing in the loop are linear sequences. (The approach is to relate these linear sequences to the initial values rather than any matching values in the other loop.) The optimisation is to first scan for any memory access addresses or function call arguments that form linear progressions, and try to match them. In particular, if doing so requires a case split, it's a fast way to find it. In general we also narrow down to a smaller collection of possible loop matching sequences.
|
#
ef35cb9b |
|
21-Aug-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Adjust handling of unusual restrs in rep_graph.
|
#
a010a214 |
|
19-Aug-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Address minor issues in previous.
|
#
6cfd82a3 |
|
19-Aug-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
More use of parallel model generation.
|
#
2516659f |
|
12-Aug-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Debug & fix some array assertion issues.
|
#
4a687109 |
|
02-Aug-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
New feature: instruction specs. Adds bodies for instruction'mcr* and asm_instruction'mcr* etc functions. Handles mcr and mrc forms already. These bodies just map to impl'mcr_ functions, but the mapping eliminates irrelevant complexity (some synonyms and also the details of which register holds args/rets). Works for a couple of functions.
|
#
5cb52d39 |
|
06-Jun-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Improve some diagnostics.
|
#
d79dce84 |
|
12-Jan-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Parallelise more often.
|
#
14e59514 |
|
15-Dec-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Better parallel implementation of hyp testing.
|
#
a1b47e38 |
|
10-Dec-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
WIP: test_hyp_imps via parallel strategies.
|
#
fa63ef22 |
|
10-Dec-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Make solver-set configurable per Solver instance.
|
#
e741b210 |
|
13-Oct-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Performance tweaks.
|
#
be8155ec |
|
08-Oct-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Bugfixes.
|
#
11039ac4 |
|
01-Oct-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Simplify search_bound, bugfixes.
|
#
3d6869e3 |
|
24-Aug-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Import of graph-refine tool.
|