Few amends on the slides
This commit is contained in:
parent
b6197a7d7c
commit
ede4714a01
1 changed files with 32 additions and 19 deletions
51
slides.tex
51
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}
|
||||
|
|
Loading…
Reference in a new issue