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.
Program Display Configuration
Mon 31 Oct
Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Viennachange