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}
|
\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}
|
||||||
|
|
Loading…
Reference in a new issue