[FIR] Introduce new algorithm for building CFG for declarations

This commit is contained in:
Dmitriy Novozhilov
2020-06-05 15:47:57 +03:00
parent 950bbfe3a5
commit 87859b0faa
95 changed files with 16070 additions and 13199 deletions
@@ -8,53 +8,74 @@ digraph emptyWhen_kt {
0 [label="Enter function test_1" style="filled" fillcolor=red];
subgraph cluster_1 {
color=blue
2 [label="Enter when"];
4 [label="Synthetic else branch"];
3 [label="Exit when"];
2 [label="Enter block"];
subgraph cluster_2 {
color=blue
3 [label="Enter when"];
5 [label="Synthetic else branch"];
4 [label="Exit when"];
}
6 [label="Exit block"];
}
1 [label="Exit function test_1" style="filled" fillcolor=red];
}
0 -> {2};
2 -> {4};
3 -> {1};
4 -> {3};
2 -> {3};
3 -> {5};
4 -> {6};
5 -> {4};
6 -> {1};
subgraph cluster_2 {
subgraph cluster_3 {
color=red
5 [label="Enter function test_2" style="filled" fillcolor=red];
subgraph cluster_3 {
7 [label="Enter function test_2" style="filled" fillcolor=red];
subgraph cluster_4 {
color=blue
7 [label="Enter when"];
9 [label="Access variable R|<local>/x|"];
10 [label="Synthetic else branch"];
8 [label="Exit when"];
9 [label="Enter block"];
subgraph cluster_5 {
color=blue
10 [label="Enter when"];
12 [label="Access variable R|<local>/x|"];
13 [label="Synthetic else branch"];
11 [label="Exit when"];
}
14 [label="Exit block"];
}
6 [label="Exit function test_2" style="filled" fillcolor=red];
8 [label="Exit function test_2" style="filled" fillcolor=red];
}
5 -> {7};
7 -> {9};
8 -> {6};
9 -> {10};
10 -> {8};
10 -> {12};
11 -> {14};
12 -> {13};
13 -> {11};
14 -> {8};
subgraph cluster_4 {
subgraph cluster_6 {
color=red
11 [label="Enter function test_3" style="filled" fillcolor=red];
subgraph cluster_5 {
15 [label="Enter function test_3" style="filled" fillcolor=red];
subgraph cluster_7 {
color=blue
13 [label="Enter when"];
15 [label="Access variable R|<local>/x|"];
16 [label="Variable declaration: lval y: R|kotlin/Int|"];
17 [label="Synthetic else branch"];
14 [label="Exit when"];
17 [label="Enter block"];
subgraph cluster_8 {
color=blue
18 [label="Enter when"];
20 [label="Access variable R|<local>/x|"];
21 [label="Variable declaration: lval y: R|kotlin/Int|"];
22 [label="Synthetic else branch"];
19 [label="Exit when"];
}
23 [label="Exit block"];
}
12 [label="Exit function test_3" style="filled" fillcolor=red];
16 [label="Exit function test_3" style="filled" fillcolor=red];
}
11 -> {13};
13 -> {15};
14 -> {12};
15 -> {16};
16 -> {17};
17 -> {14};
15 -> {17};
17 -> {18};
18 -> {20};
19 -> {23};
20 -> {21};
21 -> {22};
22 -> {19};
23 -> {16};
}