<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\section{Related works}
Throughput prediction tools, however, are not all static.
\gus~\cite{phd:gruber} dynamically predicts the throughput of a whole program
region, instrumenting it to retrieve the exact events occurring through its
execution. This way, \gus{} can more finely detect bottlenecks by
sensitivity analysis, at the cost of a significantly longer run time.

\smallskip

The \bhive{} profiler~\cite{bhive} takes another approach to basic block
throughput measurement: by mapping memory at any address accessed by a basic
block, it can effectively run and measure arbitrary code without context, often
---~but not always, as we discuss later~--- yielding good results.

\smallskip

The \anica{} framework~\cite{anica} also attempts to evaluate throughput
predictors by finding examples on which they are inaccurate. \anica{} starts
with randomly generated assembly snippets, and refines them through a process
derived from abstract interpretation to reach general categories of problems.
</pre></body></html>