Context-Sensitive Data-Flow#
- Release:
6.1.2
- Date:
Oct 28, 2026
Context-sensitive data-flow graphs for C programs, tracking how values flow
through the program under a calling context (the call_i / ret_i
families), as in “Taming Transitive Redundancy for Context-Free Language Reachability”.
Graph |
Num Nodes |
Num Edges |
Reachable pairs |
Size (MB) |
Download |
30492 |
37173 |
358834 |
1.10 |
||
31215 |
37484 |
739646 |
1.95 |
||
47665 |
63996 |
662466 |
2.01 |
||
138702 |
201034 |
20259480 |
48.87 |
||
233900 |
307850 |
1342540 |
5.17 |
||
331177 |
445544 |
12687034 |
35.41 |
||
346034 |
581210 |
34599413 |
2.45 |
||
359200 |
580297 |
47806209 |
2.74 |
||
463454 |
958487 |
8424500 |
6.42 |
||
605864 |
1114892 |
297504186 |
4.64 |
Canonical grammars#
Productions with index \(i\) are duplicated for each call site in the analyzed program. The start nonterminal is \(A\).
\[\begin{split}A \, \rightarrow \, A \, A \mid a \mid \varepsilon \, \\
A \, \rightarrow \, call_i \, A \, ret_i \, \\\end{split}\]
RSM (stored as aa.rsm in each archive):
start: A
[box A]
start: 0
final: 0
0 --a--> 0
0 --call_i--> p_i
p_i --A--> q_i
q_i --ret_i--> 0