Thu 18 Jul 2019 14:20 - 14:45 at Epernay - Session #2 Chair(s): Daryl Maier

We present an automatic binary profiling and optimisation framework to perform binary instrumentation and optimisations such as exploiting thread-level, data level, and memory-level parallelism for application binaries. A static binary analyser first examines an executable and determines the instrumentation or modification operations required, encoding them as a series of rewrite rules that a dynamic binary modifier uses to perform transformations. Rewrite rules can be lifted to a domain-specific language (DSL) so that developers can write high-level binary optimisation plugins in this framework.

In this talk, we demonstrate the performance by performing automatic parallelisation, vectorisation and software prefetching on a selection of application binaries. We also discuss our on-going work on DSL and new plugins in security and error-robustness applications.