Faster Run-time Specialized Code using Data Specialization
Abstract
Run-time specialization is a technique that optimizes a program based on run-time information. In this context, specialization time must be constrained, limiting the possibility to further optimize the specialized code. We present a low-cost methodology for improving the code generated by a run-time specializer. This result is acheived by combining run-time specialization with another form of automatic specialization, data specializat- ion. We show how to use our approach to implement compaction of run-time specialized code in the framework of the Tempo specializer for C programs. We find that the compaction optimization can improve the performance of the specialized code by up to a factor of 4, while adding only about 10% to the cost of run-time specialization on most of our examples.