this is for holding javascript data
dcdelia
over 8 years ago
Commit id: 0f8c6292eb5963f403df7590febe22100392364c
deletions | additions
diff --git a/eval-new-approach.tex b/eval-new-approach.tex
index 0886f2a..53c6d3c 100644
--- a/eval-new-approach.tex
+++ b/eval-new-approach.tex
...
Using this map and the one stored during the lowering of \fIIR, the optimizer constructs a state mapping between \fIR\ and \fOptIR. In particular, for each value in \fOptIR\ live at the continuation block we determine whether:
%\begin{enumerate}[label={(\alph*)}, noitemsep, partopsep=0.5ex, topsep=0.5ex]
\begin{itemize}[noitemsep, partopsep=0.5ex, topsep=0.5ex]
\item
we can assign to it a live
{\tt llvm::Value*} from \fIR\ value passed at the OSR point
can be used directly,
\item or a compensation code is required to set its value.
\end{itemize}
%\end{enumerate}
\fi
\noindent
In fact, Notice that since the type inference engine yields more accurate results for \fOptIIR\ compared to \fIIR, the IIR compiler can in turn generate efficient specialized IR code for representing and manipulating IIR variables, and compensation code is typically required to unbox or downcast some of the live values passed at the OSR point.
\ifdefined \fullver
Compensation code might also be required to materialize an IR object for an IIR variable that were previously accessed through get/set methods from the environment. %TODO
\fi