A stack-based internal representation for GCC
Abstract
Complex embedded systems have always been heterogeneous, and it is unlikely that this situation will change any time soon. Still, the huge non-recurring engineering cost of silicon products tends to make more parts of embedded systems programmable. Our research proposes to address this complexity through processor virtualization. We decided to rely on the CLI format, and we developed a GCC back-end for it. Even though we were able to generate reasonable code, we noticed that we were lacking some important optimizations that exploit the evaluation stack of the virtual machine. Since GCC internals do not provide any support for stack-based instruction set, we introduced our own. We review the limitations of our previous prototype, and we present the data structures of our internal representation, as well as its API. We also describe a number of optimizations that this representation enabled. To exemplify its convenience, we report the code size improvements we obtained with little effort.
Domains
Other [cs.OH]
Origin : Files produced by the author(s)