[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,41 +8,48 @@ digraph smartcastOnLambda_kt {
0 [label="Enter function test" style="filled" fillcolor=red];
subgraph cluster_1 {
color=blue
2 [label="Enter when"];
2 [label="Enter block"];
subgraph cluster_2 {
color=blue
4 [label="Enter when branch condition "];
5 [label="Access variable R|<local>/func|"];
6 [label="Const: Null(null)"];
7 [label="Operator !="];
8 [label="Exit when branch condition"];
3 [label="Enter when"];
subgraph cluster_3 {
color=blue
5 [label="Enter when branch condition "];
6 [label="Access variable R|<local>/func|"];
7 [label="Const: Null(null)"];
8 [label="Operator !="];
9 [label="Exit when branch condition"];
}
15 [label="Synthetic else branch"];
10 [label="Enter when branch result"];
subgraph cluster_4 {
color=blue
11 [label="Enter block"];
12 [label="Function call: R|<local>/func|.R|FakeOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()"];
13 [label="Exit block"];
}
14 [label="Exit when branch result"];
4 [label="Exit when"];
}
14 [label="Synthetic else branch"];
9 [label="Enter when branch result"];
subgraph cluster_3 {
color=blue
10 [label="Enter block"];
11 [label="Function call: R|<local>/func|.R|FakeOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()"];
12 [label="Exit block"];
}
13 [label="Exit when branch result"];
3 [label="Exit when"];
16 [label="Exit block"];
}
1 [label="Exit function test" style="filled" fillcolor=red];
}
0 -> {2};
2 -> {4};
3 -> {1};
4 -> {5};
2 -> {3};
3 -> {5};
4 -> {16};
5 -> {6};
6 -> {7};
7 -> {8};
8 -> {9 14};
9 -> {10};
8 -> {9};
9 -> {10 15};
10 -> {11};
11 -> {12};
12 -> {13};
13 -> {3};
14 -> {3};
13 -> {14};
14 -> {4};
15 -> {4};
16 -> {1};
}