@inproceedings{bb9da94f0d5e42af9eb7209f3e1adb62,
title = "Compiler Optimizations for Code Density of Variable Length Instructions",
abstract = "Variable length encoding can considerably decrease code size in VLIW processors by decreasing the amount of bits wasted on encoding No Operation(NOP)s. A processor may have different instruction templates where different execution slots are implicitly NOPs, but all combinations of NOPs may not be supported by the instruction templates. The efficiency of the NOP encoding can be improved by the compiler trying to place NOPs in such way that the usage of implicit NOPs is maximized. Two different methods of optimizing the use of the implicit NOP slots are evaluated: prioritizing function units that have fewer implicit NOPs associated to them, and a post-pass to the instruction scheduler which utilizes the slack of the schedule by rescheduling operations with slack into different instruction words so that the available instruction templates are better utilized. The post-pass optimizer saved an average of 2.5 % and at best of 9.1 % instruction memory, without performance loss. Prioritizing function units gave best case instruction memory savings of 12.7 % but the average savings were only 1.0 % and there was in average 5.7 % slowdown for the program.",
author = "Heikki Kultala and Timo Viitanen and Pekka J{\"a}{\"a}skel{\"a}inen and Janne Helkala and Jarmo Takala",
note = "Contribution: organisation=tie,FACT1=1<br/>Portfolio EDEND: 2014-12-29<br/>Publisher name: IEEE; IEEE Workshop on Signal Processing Systems ; Conference date: 01-01-1900",
year = "2014",
doi = "10.1109/SiPS.2014.6986074",
language = "English",
isbn = "978-14799-6588-5",
series = "IEEE Workshop on Signal Processing Systems",
publisher = "IEEE",
pages = "1--6",
booktitle = "IEEE Workshop on Signal Processing Systems, SiPS 2014, Belfast, UK, October 20-22, 2014",
}