SPLASH 2020
Sun 15 - Sat 21 November 2020 Online Conference
Fri 20 Nov 2020 09:40 - 10:00 at OOPSLA/ECOOP - F-2A
Fri 20 Nov 2020 21:40 - 22:00 at OOPSLA/ECOOP - F-2A

Dynamic linking is extremely common in modern software systems, thanks to the flexibility and space savings it offers. However, this flexibility comes at a cost: every library call has an extra layer of indirection, and it’s impossible to perform interprocedural optimizations that involve calls to a dynamic library. The basic problem is that the run-time behavior of the dynamic linker can’t be predicted at compile time, so the compiler can make no assumptions about how external calls will behave.

This paper introduces guided linking, a technique for optimizing dynamically linked software when some information about the dynamic linker’s behavior is known in advance. The developer provides an arbitrary set of programs, libraries, and plugins to our tool, along with constraints that limit the possible dynamic linking behavior of the software. Given a software set and a list of constraints, our tool takes advantage of the constraints to optimize the software for speed and size. For example, the “no dynamic redefinitions” constraint can be applied to a function when the developer knows the function will never be unexpectedly overridden with a different definition at run time; this constraint allows dynamic references between libraries in the set to be resolved to static references, which can then be optimized with standard link-time optimizations. As an additional optimization, we deduplicate identical functions that appear anywhere in the software set.

By applying guided linking to a dynamically linked distribution of Clang and LLVM, and using the constraint that no other software will use the LLVM libraries, we can increase speed by 6% and reduce file size by 11%. If we relax the constraint to allow other software to use the LLVM libraries, we can still increase speed by 5.5% and reduce file size by 3%. If we apply guided linking to the Python interpreter and a set of loadable Python modules, applying the constraint that no other programs or modules will be used, we can increase speed by an average of 6.6%. If we use guided linking to combine 11 different versions of the Boost library, applying minimal constraints, we can reduce the total library size by 57%.

Fri 20 Nov
Times are displayed in time zone: Central Time (US & Canada) change

09:00 - 10:20: F-2AOOPSLA at OOPSLA/ECOOP +12h
09:00 - 09:20
Talk
OOPSLA
Ryan SenanayakeReservoir Labs, Changwan HongMIT, Ziheng WangMassachusetts Institute of Technology, Amalee WilsonStanford University, Stephen ChouMassachusetts Institute of Technology, USA, Shoaib KamilAdobe, Saman AmarasingheMIT, Fredrik KjolstadStanford University
DOI Pre-print
09:20 - 09:40
Talk
OOPSLA
Klara MardirosianKU Leuven, Tom SchrijversKU Leuven, Bruno C. d. S. OliveiraThe University of Hong Kong, Hong Kong, Georgios KarachaliasTweag
09:40 - 10:00
Talk
OOPSLA
Sean BartellUniversity of Illinois at Urbana-Champaign, Will DietzUniversity of Illinois at Urbana-Champaign, Vikram S. AdveUniversity of Illinois at Urbana-Champaign, USA
10:00 - 10:20
Talk
OOPSLA
Xiaohong ChenUniversity of Illinois at Urbana-Champaign, Thai TrinhAdvanced Digital Sciences Center, Illinois at Singapore, Nishant RodriguesUniversity of Illinois Urbana-Champaign, Lucas PeñaUniversity of Illinois at Urbana-Champaign, Grigore RosuUniversity of Illinois at Urbana-Champaign
21:00 - 22:20: F-2AOOPSLA at OOPSLA/ECOOP
21:00 - 21:20
Talk
OOPSLA
Ryan SenanayakeReservoir Labs, Changwan HongMIT, Ziheng WangMassachusetts Institute of Technology, Amalee WilsonStanford University, Stephen ChouMassachusetts Institute of Technology, USA, Shoaib KamilAdobe, Saman AmarasingheMIT, Fredrik KjolstadStanford University
DOI Pre-print
21:20 - 21:40
Talk
OOPSLA
Klara MardirosianKU Leuven, Tom SchrijversKU Leuven, Bruno C. d. S. OliveiraThe University of Hong Kong, Hong Kong, Georgios KarachaliasTweag
21:40 - 22:00
Talk
OOPSLA
Sean BartellUniversity of Illinois at Urbana-Champaign, Will DietzUniversity of Illinois at Urbana-Champaign, Vikram S. AdveUniversity of Illinois at Urbana-Champaign, USA
22:00 - 22:20
Talk
OOPSLA
Xiaohong ChenUniversity of Illinois at Urbana-Champaign, Thai TrinhAdvanced Digital Sciences Center, Illinois at Singapore, Nishant RodriguesUniversity of Illinois Urbana-Champaign, Lucas PeñaUniversity of Illinois at Urbana-Champaign, Grigore RosuUniversity of Illinois at Urbana-Champaign