Mon 31 Oct 2016 18:42 - 19:00 at PTA - Poster Reception Monday Chair(s): Jeff Huang, Sebastian Erdweg
The use of a standard calling convention throughout a binary can bloat code size and negatively impact power consumption, flash memory costs, and chip size in embedded or otherwise size-critical domains. This is particularly true in “compressed” instruction sets, such as the 16-bit ARM Thumb instruction set, used in virtually all smart phones and in many other smaller-scale embedded devices. Here, we examine the extent of the problem in modern embedded software. We found that between 6-17% of the code in typical binaries represents overhead necessary for implementing the calling convention. Finally, we propose a method of reducing this overhead by assigning calling conventions per-procedure during register allocation, and discuss solutions to scalability problems with this approach.