Wed 18 Nov 2020 23:40 - 00:00 at SPLASH-I - W-3 Chair(s): Alex Potanin, Yuting Wang
Academia has spent much effort into making context-sensitive
{\em analyses} practical, with great profit.
However, the implementation of context-sensitive {\em optimizations}, in
contrast to analyses, is still not practical, due to code-size explosion.
This growth happens because current technology requires the cloning of full
paths in the Calling Context Tree.
In this paper, we present a solution to this problem.
We combine finite state machines and dynamic dispatching to allow fully
context-sensitive specialization while cloning only functions that are
effectively optimized.
This technique makes it possible to apply very liberal optimizations, such as
context-sensitive constant propagation, in large programs—something that
could not have been easily done before.
We demonstrate the viability of our idea by formalizing it in Prolog, and
implementing it in LLVM.
As a proof of concept, we have used our state machines to implement
context-sensitive constant propagation in LLVM.
The binaries produced by traditional full cloning are 2.63 times larger than
the binaries that we generate with our state machines.
When applied on Mozilla Firefox, our optimization increases binary size from 7.2MB to 9.2MB.
Full cloning, in contrast, yields a binary of 34MB.
Wed 18 NovDisplayed time zone: Central Time (US & Canada) change
11:00 - 12:20 | W-3OOPSLA at SPLASH-I +12h Chair(s): Eelco Visser Delft University of Technology, Dan Barowy Williams College | ||
11:00 20mTalk | Build Scripts with Perfect Dependencies OOPSLA Link to publication DOI Media Attached | ||
11:20 20mTalk | Random Testing for C and C++ Compilers with YARPGen OOPSLA Vsevolod Livinskii University of Utah, Dmitry Babokin Intel Corporation, John Regehr University of Utah Link to publication DOI Media Attached | ||
11:40 20mTalk | Dynamic Dispatch of Context-Sensitive Optimizations OOPSLA Gabriel Poesia Stanford University, Fernando Magno Quintão Pereira Federal University of Minas Gerais Link to publication DOI Pre-print Media Attached | ||
12:00 20mTalk | Automated Policy Synthesis for System Call Sandboxing OOPSLA Shankara Pailoor University of Texas at Austin, Xinyu Wang University of Michigan, Hovav Shacham University of Texas at Austin, Işıl Dillig University of Texas at Austin Link to publication DOI Media Attached |
23:00 - 00:20 | W-3OOPSLA at SPLASH-I Chair(s): Alex Potanin Victoria University of Wellington, Yuting Wang Shanghai Jiao Tong University | ||
23:00 20mTalk | Build Scripts with Perfect Dependencies OOPSLA Link to publication DOI Media Attached | ||
23:20 20mTalk | Random Testing for C and C++ Compilers with YARPGen OOPSLA Vsevolod Livinskii University of Utah, Dmitry Babokin Intel Corporation, John Regehr University of Utah Link to publication DOI Media Attached | ||
23:40 20mTalk | Dynamic Dispatch of Context-Sensitive Optimizations OOPSLA Gabriel Poesia Stanford University, Fernando Magno Quintão Pereira Federal University of Minas Gerais Link to publication DOI Pre-print Media Attached | ||
00:00 20mTalk | Automated Policy Synthesis for System Call Sandboxing OOPSLA Shankara Pailoor University of Texas at Austin, Xinyu Wang University of Michigan, Hovav Shacham University of Texas at Austin, Işıl Dillig University of Texas at Austin Link to publication DOI Media Attached |