History log of /seL4-l4v-master/graph-refine/debug.py
Revision Date Author Comments
# b2ddb1f6 11-Mar-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

convert license headers to SPDX


# 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?


# 2b6e7cef 09-Jul-2018 Thomas Sewell <Thomas.Sewell@data61.csiro.au>

More debug tricks.


# d9dbd18a 03-Jul-2018 Thomas Sewell <Thomas.Sewell@data61.csiro.au>

Fix symbol printing in debug memory traces.

Looks like it got broken a while back when some formatting
was consolidated.


# 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.


# 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.


# d6ac10ad 06-Mar-2017 Thomas Sewell <Thomas.Sewell@data61.csiro.au>

Debug tweaks.


# 9bc43af8 01-Mar-2017 Thomas Sewell <Thomas.Sewell@data61.csiro.au>

Debug tweak.


# f3127c36 19-Feb-2017 Thomas Sewell <Thomas.Sewell@data61.csiro.au>

Debug tweaks.


# 0941efb8 16-Jan-2017 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Tweak a debug tracing mechanism.


# 4cd3fe2b 09-Jan-2017 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Tweaks, mostly diagnostic.


# 09ad0171 09-Jan-2017 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Two major tweaks to var cycle analysis.

Firstly, var cycle analysis is now generally much better at handling
masking problems, e.g. when a linear variable is repeatedly masked off
or cast up and down, interspersed with other arithmetic.

Secondly, var cycle analysis detects dead paths within loops with some
vague approximation of const-propagation, which in particular allows an
offset value pageBitsForSize (SectionBits) in map_kernel_window to be
recognised as a constant offset.


# fc6a3259 03-Jan-2017 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Debug tweaks.


# c5230a2e 28-Dec-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Tweak debug again.


# a304c17e 27-Dec-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Handle case splits in previous debug wrapper.

OK, returning the case split isn't so useful, it's better to keep
probing instead.


# f9ec6e74 27-Dec-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Add debug wrapper for funcall matching search.

The previous facility can speed up some otherwise lengthy searches
down to a likely match (and a likely inductive failure). The new
debug wrapper makes this easier to do.


# 4a5097f3 23-Dec-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Tweak era matching in debug script.


# 7f77120e 20-Dec-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Improve debug script funcall matching.


# d6810c5a 18-Oct-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Adjust approach to splittables.

Generate splittable information lazily and store in cached_analysis
of problem. Also check for complex loops at a slightly different
point.

Also replace an experimental better split point detector in logic
with another experimental one which also doesn't work perfectly yet.


# 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.


# 2516659f 12-Aug-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Debug & fix some array assertion issues.


# b43b12cd 04-Aug-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Hacky support for 8-bit reads in loops.

The (heuristic) stack variable estimation now sort-of supports reads of 8-bit
words inside loops, by just taking a slice of another word.


# 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.


# 80bbfdd7 29-Mar-2016 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Adjust for API change in check_hyp_group.

Somewhere in the parallelisation change, the change of return type
of this function didn't get propagated.


# 94419c9b 04-Sep-2015 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Debug support: trace mem address symbol names.

This makes some debug traces much easier to read.


# 3d6869e3 24-Aug-2015 Thomas Sewell <Thomas.Sewell@nicta.com.au>

Import of graph-refine tool.