diff --git a/slides.tex b/slides.tex index 969e7cb..456df6a 100644 --- a/slides.tex +++ b/slides.tex @@ -152,7 +152,7 @@ $1 = 84 \vspace{2em} - \only<2>{We only have \reg{rsp} and \reg{rip}.} + \onslide<2>{We only have \reg{rsp} and \reg{rip}.} \end{center} \end{column} @@ -323,15 +323,6 @@ $1 = 84 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Unwinding data validation} -\begin{frame}{Main idea} - \begin{itemize} - \item If we follow \alert{one path of execution}, we can track the - return address location - \item If we read unwinding data \alert{at runtime}, we can \alert{check - the RA consistency} at each step - \end{itemize} -\end{frame} - \newcommand{\tblrowval}[4]{#1 & #2 & \only<2->{#3} & \only<2->{#4} \\} \newcommand{\blknote}[1] {\begin{block}{} @@ -345,7 +336,7 @@ $1 = 84 \end{block}} \newcommand{\tblhl}{\rowcolor{Tan}} -\begin{frame}{Example} +\begin{frame}{Validating an example} \newcommand{\firsttblrows}{ \tblrowval{\hspace{-2ex}<{\bf foo}>:}{}{\textbf{CFA}}{\textbf{ra}} \rowonly<3>{\tblhl{}} \tblrowval{push}{\%r15}{rsp+8}{c-8} @@ -591,7 +582,7 @@ $1 = 84 \begin{itemize} \item \alert{Upon split} (eg. \texttt{X})\alert{:} nothing special, propagate end state of X to children nodes A and B - \item \alert{Upon join} (eg.\texttt{while\_end})\alert{:} check + \item \alert{Upon join} (eg. \texttt{while\_end})\alert{:} check consistency of both input states \begin{itemize} \item If tricky, \texttt{gcc} will have used \reg{rbp}, even @@ -639,11 +630,39 @@ $1 = 84 \end{columns} \end{frame} +\begin{frame}{} + \vfill + \centering + \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title} + \Large\bf + Demo time! + \end{beamercolorbox} + \vfill +\end{frame} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Unwinding data compilation} \subsection{Compilation ahead-of-time} +\begin{frame}{Why compiling?} + \begin{itemize} + \item Remember that \alert{DWARF is slow}! + \item \alert{Bytecode} interpreted \alert{on the fly} to + generate the data tables + \item Done so for \alert{extreme compacity} + \end{itemize} + + \pause{} + \vspace{1em} + + \begin{itemize} + \item Goal: \alert{reasonable time-space trade-off} to speed up DWARF + \item Tables are now \alert{compiled functions} returning the requested + DAWRF row + \end{itemize} +\end{frame} + \begin{frame}{Compilation overview} \begin{itemize} \item Compiled to \alert{C code} @@ -718,13 +737,7 @@ $1 = 84 \begin{frame}{Size optimisation: outlining} \begin{itemize} - \item This \alert{works}, but \alert{takes space}: about \alert{7 times - larger in size} than regular DWARF\@. - - \item DWARF optimisation strategy: \alert{alter previous row}. \\ - Causes slowness: we cannot do that. - - \item Remark: a lot of lines appear often. + \item Most of the rows boil down to \alert{a few common rows}. \begin{itemize} \item[$\leadsto$] \textbf{\emph{outline} them!} \end{itemize}