System-Wide Elimination of Unreferenced Code and Data in Dynamically Linked Programs
Vladislav Ivanishin, Evgeny Kudryashov, A. Monakov, Dmitry Melnik, Jehyung Lee · 2017
Embedded devices may be significantly constrained in main memory, storage and CPU loads they can accommodate. The smaller the program, the faster it is loaded into memory. The smaller the system image, the cheaper can be production of the device. There are two ways to approach system image minification. The first way is to carefully write software adding no unnecessary parts from the start. The second way is to use existing software with unnecessary parts removed. In this work we implement the latter approach. Our work is concerned with eliminating unused code and data from dynamically linked programs; for statically linked programs, simple linker analysis is sufficient and has already been implemented.