this is for holding javascript data
Camil Demetrescu edited approach.tex
over 8 years ago
Commit id: ba775103e9d6ff348f8f2aea7e15b601f522e5bd
deletions | additions
diff --git a/approach.tex b/approach.tex
index 4d063a3..e001481 100644
--- a/approach.tex
+++ b/approach.tex
...
Consider the generic OSR scenario shown Figure~\ref{fi:osr-dynamics}. A base function \textsf{f} is executed and it can either terminate normally (dashed lines), or an OSR event may transfer control to a variant \textsf{f'}. The decision of whether an OSR should be fired at a given point \textsf{L} is based on an {\em OSR condition}. A typical example is a guard testing whether a speculative function \textsf{f} has become unsafe and a fallback to a safe version \textsf{f'} is in order. Another example is a profile counter reaching a certain hotness threshold, which indicates that \textsf{f} is taking longer than expected and is worth optimizing.
A classical Classical OSR
implementation approach consists of manipulating the state of the program at machine code level, e.g., by adjusting implementations adjust the stack so that execution can continue in \textsf{f'} with the current frame \cite{}.
This requires manipulating the program at machine code level and is highly ABI- and compiler-dependent. A
substantially simpler
approach approach, which we follow in this paper, consists of creating a new
frame, rather that modifying the current one. This approach was used, e.g., in \cite{}.
The approach we use to support frame every time an OSR
transitions is
to perform fired, essentially regarding an OSR transition as a
function call \cite{}.
%\ref{fi:overview-osr-final}
...