#
b2ddb1f6 |
|
11-Mar-2020 |
Gerwin Klein <gerwin.klein@data61.csiro.au> |
convert license headers to SPDX
|
#
debb3352 |
|
24-Aug-2018 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
More parallel model search in solver. The existing implementation spawned parallel solvers to search for a model, but waited for a single solver to test each result. This implementation makes it all part of a single parallel cycle. Somewhat tested.
|
#
39454154 |
|
06-Aug-2018 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Quiet solver stderr channel. One of my default solvers is a bit noisy on stderr. We can't handle its memory exceptions, so just quiet them.
|
#
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.
|
#
35c01de9 |
|
09-Apr-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
More diagnostic info.
|
#
423c9521 |
|
06-Apr-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Bugfixes.
|
#
e4e3fdad |
|
22-Mar-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Silliest of bugfixes in handling ctz. Need to reverse first, then clz. Not the other way around. Seriously.
|
#
c2b900e5 |
|
10-Mar-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Handle CountTrailingZeroes.
|
#
7822a049 |
|
21-Feb-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Fix solv.close () issue. Problem was, solvers were being counted more than once in the active_solvers list if they were repeatedly started up. This eventually leads to a solver killing itself from time to time. Easily fixed.
|
#
5a233a57 |
|
20-Feb-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Slightly more debugging to track down closes.
|
#
3cff4c88 |
|
07-Feb-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Erm, correct output problems from previous. Diagnostic information was being sent to the main channel, and there was leftover excessive debug tracing. Oops.
|
#
e6ff060e |
|
07-Feb-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Slightly reduce output in previous.
|
#
8aa03b1f |
|
07-Feb-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Bugfix parallel solver closing. Traced down to a foolish 'self.close' when falling back to the slow solver somewhere. Also trace what's happening to the solvers that are cut off.
|
#
9791b5de |
|
06-Feb-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Tweaks to support Yices2.
|
#
a102e0a8 |
|
02-Feb-2017 |
Thomas Sewell <Thomas.Sewell@data61.csiro.au> |
Stronger restrictions again on malformed models.
|
#
67fa917f |
|
01-Feb-2017 |
Thomas Sewell <sew019@tsewell.data61.csiro.au> |
Handle bad solver responses in parallel. Running a flaky Z3 variant here that sometimes crashes and spams the response buffer with things that might or might not parse. Simple solution in parallel, drop that solver, and hope another sorts things out.
|
#
c99395c7 |
|
01-Feb-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Fix c_rodata optimisation idea.
|
#
d5a1440b |
|
24-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Report more on failures, in particular timeouts.
|
#
4799e326 |
|
24-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Bugfix: handle None case for rodata_ptrs.
|
#
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.
|
#
c83833f7 |
|
22-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Try to close parallel solvers on interrupts.
|
#
61c098a9 |
|
17-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Change the way the .rodata section is handled. The new version allows multiple things to be read-only data. This allows handling the .boot.rodata pseudo-section from seL4, for instance.
|
#
8bb8eeb3 |
|
07-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Mention the absence of psutil in timing msgs.
|
#
a8bdc8f2 |
|
05-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Miniscule tweak to timing.
|
#
1fca976c |
|
05-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Better timing messages, especially with psutil.
|
#
2080400c |
|
02-Jan-2017 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Fix solver self-test. Two problems to fix, firstly that model updates led to a problem in the check model wrapper, secondly that the self-test failed trivially because the solver may include a result for the '.rodata_witness' variable in the model, which makes it more complex than expected.
|
#
d648ff9d |
|
29-Dec-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Fix a bug with stack pointers in var analysis. To do loop var analysis on stack slots, we 'virtualise' some nodes to what they would be if stack slots were variables. Along the way, the stack pointers themselves disappear, which is a problem if a stack-relative address has been saved into a register other than the stack pointer. To fix this we insert some redundant lvals in our fake nodes.
|
#
61fe3c26 |
|
22-Dec-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
New model repair strategy. It's a bit smarter. Also, in the parallel phase, it allows the remaining parallel solvers to continue, so there's a chance that a clean model will be generated while a partly erroneous model is being repaired.
|
#
54ab302a |
|
13-Dec-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Much better output for parallel solvers. Previously the verbose mode for spawning parallel solvers was *way* too verbose.
|
#
c86baea2 |
|
05-Sep-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Add definitions for WordReverse. Simple operator that does the obvious thing, puts the bits of a word in the opposite order. Can be used to count zeroes at the other end, which is exactly what GCC does on ARM.
|
#
bb7392e3 |
|
04-Sep-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Support a parallel word8-rep solver.
|
#
8b0b93b2 |
|
17-Aug-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Allow model generation in parallel solvers. This allows the 'slow' solvers to be used in parallel mode to find models, which rather than picking a single best solver to try to use.
|
#
a3503872 |
|
09-Aug-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Report timeouts correctly in parallel. The case where a parallel solver timed out or failed needs to be handled carefully, permitting the other solvers to possibly solve the problem.
|
#
d22aeb5c |
|
08-Aug-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Miscellaneous updates. 1) Support new instruction'* function naming scheme from the graph decompiler which includes instruction addresses in the name of the function. This makes the instruction naming scheme uniform, which is a good thing. 2) Have tokens appear by name in SMT expressions and diagnostic results. 3) Miscellaneous refactor and cleanup
|
#
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.
|
#
63ae0a87 |
|
31-Jul-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Unlink solver input files. They've been cluttering up /tmp/ directories until now. They aren't needed once the solver has opened them, and can be unlinked by default. There are better ways to export them than leaving them lying around on the disk.
|
#
bda121a4 |
|
05-Jul-2016 |
Felix Kam <felix.kam@nicta.com.au> |
fixed another typo
|
#
a21dabe6 |
|
05-Jul-2016 |
Felix Kam <felix.kam@nicta.com.au> |
fixed a typo
|
#
4dca5cd0 |
|
05-Jul-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Implementation of TokenWords: WordArray variant. Indexed by Token rather than by a word type. Should be more convenient to work with for various C ghost data.
|
#
2a73a6f3 |
|
05-Jul-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Initial implementation of Tokens. Token is a new type that encodes strings. The only supported operation is equality. They're actually encoded as unique words at the SMT level, but we avoid committing to that too early.
|
#
749d32fd |
|
09-May-2016 |
Felix Kam <felix.kam@nicta.com.au> |
fixed "import signal" error in solver.py
|
#
da422b7f |
|
08-May-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Support 64-bit loads and stores.
|
#
603f5ae8 |
|
06-Apr-2016 |
Thomas Sewell <thomas.sewell@nicta.com.au> |
Compatibility adjustment. Relevant to some versions of python, apparently.
|
#
827dc5f7 |
|
13-Apr-2016 |
Felix Kam <felix.kam@nicta.com.au> |
Adding graph-to-graph
|
#
4097bef4 |
|
13-Mar-2016 |
Felix Kam <felix.kam@nicta.com.au> |
added a missing import sys
|
#
d79dce84 |
|
12-Jan-2016 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Parallelise more often.
|
#
0c1f1fe1 |
|
17-Dec-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
First steps toward floating point support. This gets mostly just passed through to the relevant SMT logics. Since they're still transitionally supported it's not clear whether to change the QF_ABV logic or not.
|
#
7b2ac644 |
|
15-Dec-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Close parallel solvers on solver inst shutdown.
|
#
bf2f517f |
|
15-Dec-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Bugfix.
|
#
d04c6f95 |
|
15-Dec-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Explain .solverlist strategies.
|
#
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.
|
#
d3b6d777 |
|
10-Dec-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Do setsid on starting up forked solvers.
|
#
ea41c460 |
|
07-Dec-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Add PArrayValid support. Not fully tested yet, but this is the rough shape of support for array size assertions, including dynamic array size assertions.
|
#
7e18d501 |
|
15-Oct-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Add no-C-information mode, tweak solver models.
|
#
f76d32f2 |
|
14-Oct-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Robustness adjustments.
|
#
e741b210 |
|
13-Oct-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Performance tweaks.
|
#
03152808 |
|
30-Aug-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
New toplevel result for solver timeout/error. Until now we've been conflating proof failure caused by solver failure and proof failure caused by logical incorrectness (sat when unsat was required). Hopefully clarified.
|
#
d809be79 |
|
29-Aug-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Better document SMT/.solverlist issues. Raf found a couple of common misunderstandings, so I've been a lot more explicit about which solvers are needed/useful and what to expect.
|
#
e010704b |
|
25-Aug-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Self-test both slow and fast solver.
|
#
86fb4ba3 |
|
25-Aug-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Distinguish quiet and regular test.
|
#
c18cc8b4 |
|
25-Aug-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Add self-test mode for solver.py.
|
#
3d6869e3 |
|
24-Aug-2015 |
Thomas Sewell <Thomas.Sewell@nicta.com.au> |
Import of graph-refine tool.
|