diff options
author | Yann Herklotz <git@yannherklotz.com> | 2021-08-09 12:23:28 +0200 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2021-08-09 12:23:28 +0200 |
commit | a7e5f60e759bcb83769341154c17166ecfad723e (patch) | |
tree | e553371b4e3859229fab3067fbef6ffc074b75bb /algorithm.tex | |
parent | dc23a3e2a53cb56e0bde73a3d0ae7206ab13bafd (diff) | |
download | oopsla21_fvhls-a7e5f60e759bcb83769341154c17166ecfad723e.tar.gz oopsla21_fvhls-a7e5f60e759bcb83769341154c17166ecfad723e.zip |
Add approximate size of passes in Figure 1
Diffstat (limited to 'algorithm.tex')
-rw-r--r-- | algorithm.tex | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/algorithm.tex b/algorithm.tex index 1e3eae6..c71b54c 100644 --- a/algorithm.tex +++ b/algorithm.tex @@ -32,22 +32,28 @@ The .NET framework has been used as a basis for other HLS tools, such as Kiwi~\c %\resizebox{0.85\textwidth}{!}{ \begin{tikzpicture} [language/.style={fill=white,rounded corners=3pt,minimum height=7mm}, - continuation/.style={}] - \fill[compcert,rounded corners=3pt] (-1,-0.5) rectangle (10,2); - \fill[formalhls,rounded corners=3pt] (-1,-1) rectangle (10,-2); + continuation/.style={}, + linecount/.style={rounded corners=3pt,dashed}] + \fill[compcert,rounded corners=3pt] (-1,-0.5) rectangle (11.4,2); + \fill[formalhls,rounded corners=3pt] (-1,-1) rectangle (11.4,-2); + \draw[linecount] (-0.95,-0.45) rectangle (3.6,1); + \draw[linecount] (4,-0.45) rectangle (7.5,1); \node[language] at (-0.3,0) (clight) {Clight}; \node[continuation] at (1,0) (conta) {$\cdots$}; \node[language] at (2.7,0) (cminor) {CminorSel}; \node[language] at (4.7,0) (rtl) {3AC}; \node[language] at (6.2,0) (ltl) {LTL}; - \node[language,anchor=west] at (8.4,0) (aarch) {aarch64}; - \node[language,anchor=west] at (8.4,0.8) (x86) {x86}; + \node[language,anchor=west] at (8.4,0) (aarch) {aarch64 \small ($\sim$ 12 kloc)}; + \node[language,anchor=west] at (8.4,0.8) (x86) {x86 \small ($\sim$ 14 kloc)}; \node[continuation,anchor=west] at (8.4,1.4) (backs) {$\cdots$}; \node[continuation] at (7.3,0) (contb) {$\cdots$}; \node[language] at (4.7,-1.5) (htl) {HTL}; \node[language] at (6.7,-1.5) (verilog) {Verilog}; \node at (0,1.5) {\bf\compcert{}}; \node at (0,-1.5) {\bf\vericert{}}; + \node[anchor=west] at (-0.9,0.7) {\small $\sim$ 27 kloc}; + \node[anchor=west] at (4.1,0.7) {\small $\sim$ 46 kloc}; + \node[anchor=west] at (2,-1.5) {\small $\sim$ 17 kloc}; \node[align=center] at (3.5,-2.4) {\footnotesize RAM\\[-0.5em]\footnotesize insertion}; \draw[->,thick] (clight) -- (conta); \draw[->,thick] (conta) -- (cminor); @@ -55,13 +61,13 @@ The .NET framework has been used as a basis for other HLS tools, such as Kiwi~\c \draw[->,thick] (rtl) -- (ltl); \draw[->,thick] (ltl) -- (contb); \draw[->,thick] (contb) -- (aarch); - \draw[->,thick] (contb) to [out=0,in=210] (x86); - \draw[->,thick] (contb) to [out=0,in=200] (backs); + \draw[->,thick] (contb) to [out=0,in=200] (x86.west); + \draw[->,thick] (contb) to [out=0,in=190] (backs.west); \draw[->,thick] (rtl) -- (htl); \draw[->,thick] (htl) -- (verilog); \draw[->,thick] (htl.west) to [out=180,in=150] (4,-2.2) to [out=330,in=270] (htl.south); \end{tikzpicture}%} - \caption{\vericert{} as a Verilog back end to \compcert{}. + \caption{\vericert{} as a Verilog back end to \compcert{}. For scale, the approximate lines of code (kloc) are shown for \vericert{}, as well as for the front end and back end of \compcert{}, including any comments and whitespace. %\JW{Did we ought to add CompCert's other back ends to the diagram? X86 etc? Otherwise it might look like we have a very out-of-date view of CompCert.}% }% \label{fig:rtlbranch} |