File tree 2 files changed +22
-1
lines changed
2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -18,7 +18,17 @@ This is obsolete.
18
18
19
19
\subsection analyses-flow-insensitive-analysis Flow-insensitive analysis (flow_insensitive_analysist)
20
20
21
- To be documented.
21
+ Framework for flow-insensitive analyses. Maintains a single global abstract
22
+ value which instructions are invited to transform in turn. Unsound (terminates
23
+ too early) if
24
+ (a) there are two or more instructions that incrementally reach a fixed point,
25
+ for example by walking a chain of pointers and updating a points-to set, but
26
+ (b) those instructions are separated by instructions that don't update the
27
+ abstract value (for example, SKIP instructions). Therefore, not recommended for
28
+ new code.
29
+
30
+ Only current user in-tree is \ref value_set_analysis_fit and its close
31
+ relatives, \ref value_set_analysis_fivrt and \ref value_set_analysis_fivrnst
22
32
23
33
\section analyses-specific-analyses Specific analyses:
24
34
Original file line number Diff line number Diff line change 9
9
10
10
// / \file
11
11
// / Flow Insensitive Static Analysis
12
+ // /
13
+ // / A framework for flow-insensitive analyses. Maintains a single global
14
+ // / abstract value (an instance of \ref flow_insensitive_abstract_domain_baset,
15
+ // / "the domain,") which instructions are invited to transform in turn.
16
+ // /
17
+ // / Note this is unsound if used naively, because it follows the control-flow
18
+ // / graph and terminates when an instruction makes no change to the domain and
19
+ // / that instruction's successors have already been visited. Therefore a domain
20
+ // / that relies upon every reachable instruction being re-visited upon the
21
+ // / domain being updated must ensure that itself, for example by maintaining
22
+ // / a map from locations to the latest version of the domain witnessed.
12
23
13
24
#ifndef CPROVER_ANALYSES_FLOW_INSENSITIVE_ANALYSIS_H
14
25
#define CPROVER_ANALYSES_FLOW_INSENSITIVE_ANALYSIS_H
You can’t perform that action at this time.
0 commit comments