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

xz

30492

37173

358834

1.10

xz.tar.gz 📥

nab

31215

37484

739646

1.95

nab.tar.gz 📥

leela

47665

63996

662466

2.01

leela.tar.gz 📥

x264

138702

201034

20259480

48.87

x264.tar.gz 📥

parest

233900

307850

1342540

5.17

parest.tar.gz 📥

imagick

331177

445544

12687034

35.41

imagick.tar.gz 📥

povray

346034

581210

34599413

2.45

povray.tar.gz 📥

cactus

359200

580297

47806209

2.74

cactus.tar.gz 📥

omnetpp

463454

958487

8424500

6.42

omnetpp.tar.gz 📥

perlbench

605864

1114892

297504186

4.64

perlbench.tar.gz 📥

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