kernel#
Info#
Full Name |
kernel_after_inline |
Version |
4.0.0 |
Direct download (.csv + .md) |
|
Origin |
CSV File Structure#
Column Number |
Column Type |
Column Description |
---|---|---|
1 |
int |
The tail of the edge |
2 |
int |
The head of the edge |
3 |
str |
The label of the edge |
Graph Statistics#
Num Nodes |
Num Edges |
---|---|
11254434 |
9484213 |
Edges Statistics#
Edge Label |
Num Edge Label |
---|---|
d |
7502955 |
a |
1981258 |
Canonical grammars#
Note
In order to get the original graph you must apply function cfpq_data.change_edges
with mapping={"a": "A", "d": "D"}
to this graph. In this case these grammars must be updated.
Grammars for the alias analysis of C programs introduced in "Demand-driven alias analysis for C". Template for these grammars is described on the C Alias page.
\[\begin{split}S \, \rightarrow \, \overline{d} \, V \, d \, \\
V \, \rightarrow \, V_1 \, V_2 \, V_3 \, \\
V_1 \, \rightarrow \, \varepsilon \, \\
V_1 \, \rightarrow \, V_2 \, \overline{a} \, V_1 \, \\
V_2 \, \rightarrow \, \varepsilon \, \\
V_2 \, \rightarrow \, S \, \\
V_3 \, \rightarrow \, \varepsilon \, \\
V_3 \, \rightarrow \, a \, V_2 \, V_3 \, \\\end{split}\]
S -> d_r V d
V -> V1 V2 V3
V1 -> epsilon
V1 -> V2 a_r V1
V2 -> epsilon
V2 -> S
V3 -> epsilon
V3 -> a V2 V3
\[\begin{split}S \, \rightarrow \, \overline{d} \, V \, d \, \\
V \, \rightarrow \, ((S \mid \varepsilon) \, \overline{a})^{*} \, (S \mid \varepsilon) \, (a \, (S \mid \varepsilon))^{*} \, \\\end{split}\]
S -> d_r V d
V -> ((S|epsilon) a_r)* (S|epsilon) (a (S|epsilon))*