diff options
author | Teddy <ted.sybil@gmail.com> | 2014-05-18 10:33:26 +0800 |
---|---|---|
committer | Teddy <ted.sybil@gmail.com> | 2014-05-18 10:33:26 +0800 |
commit | d84e0dac79287b481a833cce3353c0d59fa7b9a1 (patch) | |
tree | cdeca5e7d64d4fcb828851a9480b924f7ee4f74d /cibic.tex | |
parent | 4d74edbe7e76d17984eacb5d3df4d26d857d45b1 (diff) |
report: workflow
Diffstat (limited to 'cibic.tex')
-rw-r--r-- | cibic.tex | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -584,6 +584,29 @@ a_0[8] = t12 to guide the final translation. Of course, the code above does produce correct result compiled by CIBIC. \end{enumerate} + +\begin{figure}[H] + \centering + \RecustomVerbatimEnvironment{Verbatim}{BVerbatim}{} + \begin{minted}{c} +calc_dominance_frontier(); +/* build SSA */ +insert_phi(vars); +renaming_vars(oprs); +/* optimization on SSA */ +const_propagation(); +subexp_elimination(); +const_propagation(); +strength_reduction(); +deadcode_elimination(); +/* out of SSA */ +mark_insts(); +build_intervals(); +register_alloc(); + \end{minted} + \caption{Workflow of CIBIC IR} +\end{figure} + \subsection{Single Static Assignment Form} CIBIC makes good use of SSA (Single Static Assignment) form. SSA form is a property of an IR, which says that each variable is assigned \textbf{exactly |