Few amends on the slides

This commit is contained in:
Théophile Bastian 2018-11-08 20:35:15 +01:00
parent b6197a7d7c
commit ede4714a01

View file

@ -152,7 +152,7 @@ $1 = 84
\vspace{2em} \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{center}
\end{column} \end{column}
@ -323,15 +323,6 @@ $1 = 84
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Unwinding data validation} \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{\tblrowval}[4]{#1 & #2 & \only<2->{#3} & \only<2->{#4} \\}
\newcommand{\blknote}[1] \newcommand{\blknote}[1]
{\begin{block}{} {\begin{block}{}
@ -345,7 +336,7 @@ $1 = 84
\end{block}} \end{block}}
\newcommand{\tblhl}{\rowcolor{Tan}} \newcommand{\tblhl}{\rowcolor{Tan}}
\begin{frame}{Example} \begin{frame}{Validating an example}
\newcommand{\firsttblrows}{ \newcommand{\firsttblrows}{
\tblrowval{\hspace{-2ex}<{\bf foo}>:}{}{\textbf{CFA}}{\textbf{ra}} \tblrowval{\hspace{-2ex}<{\bf foo}>:}{}{\textbf{CFA}}{\textbf{ra}}
\rowonly<3>{\tblhl{}} \tblrowval{push}{\%r15}{rsp+8}{c-8} \rowonly<3>{\tblhl{}} \tblrowval{push}{\%r15}{rsp+8}{c-8}
@ -591,7 +582,7 @@ $1 = 84
\begin{itemize} \begin{itemize}
\item \alert{Upon split} (eg. \texttt{X})\alert{:} nothing special, \item \alert{Upon split} (eg. \texttt{X})\alert{:} nothing special,
propagate end state of X to children nodes A and B 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 consistency of both input states
\begin{itemize} \begin{itemize}
\item If tricky, \texttt{gcc} will have used \reg{rbp}, even \item If tricky, \texttt{gcc} will have used \reg{rbp}, even
@ -639,11 +630,39 @@ $1 = 84
\end{columns} \end{columns}
\end{frame} \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} \section{Unwinding data compilation}
\subsection{Compilation ahead-of-time} \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{frame}{Compilation overview}
\begin{itemize} \begin{itemize}
\item Compiled to \alert{C code} \item Compiled to \alert{C code}
@ -718,13 +737,7 @@ $1 = 84
\begin{frame}{Size optimisation: outlining} \begin{frame}{Size optimisation: outlining}
\begin{itemize} \begin{itemize}
\item This \alert{works}, but \alert{takes space}: about \alert{7 times \item Most of the rows boil down to \alert{a few common rows}.
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.
\begin{itemize} \begin{itemize}
\item[$\leadsto$] \textbf{\emph{outline} them!} \item[$\leadsto$] \textbf{\emph{outline} them!}
\end{itemize} \end{itemize}