This repository was archived by the owner on Apr 7, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdotProdOpt.dot
47 lines (47 loc) · 4.83 KB
/
dotProdOpt.dot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
digraph Program_ {
graph [fontname = "Monaco", fontsize = 12, ranksep = 0.5];
node [shape = box, fontname = "Monaco", fontsize = 11; colorscheme = pastel19];
edge [fontname = "Monaco", fontsize = 11; colorscheme = pastel19];
Jump0[label = <<font color="#ff4411" point-size="8"><sup>q0</sup></font>StartFun.0<br/>i<font color="#00aa11" point-size="8"><sup>U10</sup></font><font color="#3311ff" point-size="8"><sup>r0</sup></font>,acc<font color="#00aa11" point-size="8"><sup>S64</sup></font><font color="#3311ff" point-size="8"><sup>r1</sup></font>>; shape = component];
Jump0 -> Block0;
Jump1[
label = <<font color="#ff4411" point-size="8"><sup>q1</sup></font>Branch.1>;
shape = trapezium; style = rounded;
];
Block0 -> Jump1;
Jump1 -> Block1 [label=<@e>];
Jump1 -> Block2 [label=<!@e>];
Jump2_4[label = <<font color="#ff4411" point-size="8"><sup>q2</sup></font>Return.2_4>; shape = lpromoter];
Block1 -> Jump2_4 [label=<acc>];
Jump2_5_6[label = <<font color="#ff4411" point-size="8"><sup>q6</sup></font>TailCall.2_5_6<br/>dotProdOpt(i1,@m)>; shape = component];
Block2 -> Jump2_5_6;
Block0 [label = "Block0"];
Block1 [label = "Block1"];
Block2 [label = "Block2"];
subgraph cluster_dfg_Block0 {
node [shape = oval];
label = <Block0<br/>(acc<font color="#00aa11" point-size="8"><sup>S64</sup></font><font color="#3311ff" point-size="8"><sup>r1</sup></font>,i<font color="#00aa11" point-size="8"><sup>U10</sup></font><font color="#3311ff" point-size="8"><sup>r0</sup></font><br/>=><br/>acc<font color="#00aa11" point-size="8"><sup>S64</sup></font><font color="#3311ff" point-size="8"><sup>r1</sup></font>,i1<font color="#00aa11" point-size="8"><sup>U10</sup></font><font color="#3311ff" point-size="8"><sup>r2</sup></font>,i<font color="#00aa11" point-size="8"><sup>U10</sup></font><font color="#3311ff" point-size="8"><sup>r0</sup></font>,@e<font color="#00aa11" point-size="8"><sup>U1</sup></font><font color="#3311ff" point-size="8"><sup>r3</sup></font>)>;
1 [label=<<font color="#ff4411" point-size="8"><sup>q1</sup></font>i1<font color="#00aa11" point-size="8"><sup>U10</sup></font><font color="#3311ff" point-size="8"><sup>r2</sup></font>:i+<font color="#3311ff" point-size="8"><sup>Bin0</sup></font>1<font color="#00aa11" point-size="8"><sup>U1</sup></font>>];
3 [label=<<font color="#ff4411" point-size="8"><sup>q1</sup></font>@e<font color="#00aa11" point-size="8"><sup>U1</sup></font><font color="#3311ff" point-size="8"><sup>r3</sup></font>:i==<font color="#3311ff" point-size="8"><sup>Bin1</sup></font>1000<font color="#00aa11" point-size="8"><sup>U10</sup></font>>];
}
subgraph cluster_dfg_Block1 {
node [shape = oval];
label = <Block1<br/>(acc<font color="#00aa11" point-size="8"><sup>S64</sup></font><font color="#3311ff" point-size="8"><sup>r1</sup></font><br/>=><br/>acc<font color="#00aa11" point-size="8"><sup>S64</sup></font><font color="#3311ff" point-size="8"><sup>r1</sup></font>)>;
4 [label=<<font color="#ff4411" point-size="8"><sup>q2</sup></font>nop>];
}
subgraph cluster_dfg_Block2 {
node [shape = oval];
label = <Block2<br/>(i1<font color="#00aa11" point-size="8"><sup>U10</sup></font><font color="#3311ff" point-size="8"><sup>r2</sup></font>,acc<font color="#00aa11" point-size="8"><sup>S64</sup></font><font color="#3311ff" point-size="8"><sup>r1</sup></font>,i<font color="#00aa11" point-size="8"><sup>U10</sup></font><font color="#3311ff" point-size="8"><sup>r0</sup></font><br/>=><br/>i1<font color="#00aa11" point-size="8"><sup>U10</sup></font><font color="#3311ff" point-size="8"><sup>r2</sup></font>,@m<font color="#00aa11" point-size="8"><sup>S64</sup></font><font color="#3311ff" point-size="8"><sup>r1</sup></font>)>;
5 [label=<<font color="#ff4411" point-size="8"><sup>q3</sup></font>req a[i]>];
10 [label=<<font color="#ff4411" point-size="8"><sup>q6</sup></font>@m<font color="#00aa11" point-size="8"><sup>S64</sup></font><font color="#3311ff" point-size="8"><sup>r1</sup></font>:acc+<font color="#3311ff" point-size="8"><sup>Bin3</sup></font>@l>];
6 [label=<<font color="#ff4411" point-size="8"><sup>q4</sup></font>a64<font color="#00aa11" point-size="8"><sup>S64</sup></font><font color="#3311ff" point-size="8"><sup>r3</sup></font>:a[]>];
9 [label=<<font color="#ff4411" point-size="8"><sup>q5</sup></font>@l<font color="#00aa11" point-size="8"><sup>S64</sup></font><font color="#3311ff" point-size="8"><sup>r0</sup></font>:a64*<font color="#3311ff" point-size="8"><sup>Bin2</sup></font>@k>];
7 [label=<<font color="#ff4411" point-size="8"><sup>q3</sup></font>req b[i]>];
8 [label=<<font color="#ff4411" point-size="8"><sup>q4</sup></font>@k<font color="#00aa11" point-size="8"><sup>S27</sup></font><font color="#3311ff" point-size="8"><sup>r0</sup></font>:b[]>];
6 -> 9;
8 -> 9;
9 -> 10;
5 -> 6 [style = solid];
7 -> 8 [style = solid];
}
}