ABSTRACT
Code specialization is a way to obtain significant improvement in the performance of an application. It works by exposing values of different parameters in source code. The availability of these specialized values enables the compilers to generate better optimized code. Although most of the efficient source code implementations contain specialized code to benefit from these optimizations, the real impact of specialization may however vary depending upon the value of the specializing parameter.
In this paper, we suggest the specialization of code to acquire an iterative approach. For some specialized code, we search for a better version of code by re-specializing the code, followed by a low-level code analysis. The specialized versions fulfilling the required criteria are then transformed to generate another equivalent version of the original specialized code.
The approach has been tested on Itanium-II architecture using icc compiler. The results show significant improvement in the performance of different behchmarks.
- M. Ahmad, H.-P. Charles, and D. Barthou. Reducing code size explosion through low-overhead specialization. In 11th Annual Workshop INTERACT-11, Phoenix, 2007.Google Scholar
- M. Barreteau, F. Bodin, P. Brinkhaus, Z. Chamski et al. Oceans: Optimizing compilers for embedded applications. In Proceeding of Euro-Par98, 1998. Google ScholarDigital Library
- F. Bodin, T. Kisuk, P. M. W. Knijnenburg et al. Iterative compilation in a non-linear optimisation space. In Workshop on Prole 14 and Feedback-Directed Compilation, France, 1998.Google Scholar
- C. Consel, L. Hornof, R. Marlet et al. Tempo: specializing systems applications and beyond. ACM Computing Surveys, 30(3es), 1998. Google ScholarDigital Library
- M. Frigo and S. G. Johnson. FFTW: An adaptive software architecture for the FFT. In Intl. Conf. on Acoustics, Speech, and Signal Processing, WA, 1998.Google ScholarCross Ref
- B. Grant, M. Mock, M. Philipose, C. Chambers, and S. J. Eggers. Dyc: An expressive annotation-directed dynamic compiler for c. Tech. report, Univ. of Washington, 1999.Google Scholar
- http://ffmpeg.sourceforge.net. Ffmpeg, Apr. 2006.Google Scholar
- M. Leone and R. K. Dybvig. Dynamo: A staged compiler architecture for dynamic program optimization. Technical report, Indiana Univ., 1997.Google Scholar
- M. Ahmad and H. P. Charles. Improving multimedia applications through specialization of DCT/IDCT kernels. IEEE Intl. conf. on Signal Processing and Communications(ICSPC07), 2007.Google Scholar
- M. Poletto, W. C. Hsieh, D. R. Engler, and F. M. Kaashoek. 'c and tcc: A language and compiler for dynamic code generation. ACM TOPLAS, 1998. Google ScholarDigital Library
- B. R. Rau. Iterative modulo scheduling: An algorithm for software pipelining loops. In 27th Intl. Symposium on Microarchitecture, 1994. Google ScholarDigital Library
- S. Triantafyllis, M. Vachharajani, N. Vachharajani, and D. August. Compiler optimization space exploration. In 'CGO-03, March 2003. Google ScholarDigital Library
- R. C. Whaley and J. Dongarra. Automatically Tuned Linear Algebra Software. Technical Report UT-CS-97-366, Univ. of Tennessee, December 1997. Google ScholarDigital Library
- H. Zhou. Code size efficiency in global scheduling for ilp processors, 2002.Google Scholar
Index Terms
- Optimizing code through iterative specialization
Recommendations
Improving performance through deep value profiling and specialization with code transformation
Specialization of code is used to improve the performance of the applications. However, specialization based on ineffective profiles deteriorates the performance. Existing value profiling algorithms are not yet able to address the issue of code size ...
Feedback-directed specialization of code
Based on feedback information, a large number of optimizations can be performed by the compiler. This information actually indicates the changing behavior of the applications and can be used to specialize code accordingly. Code specialization is a way ...
Optimising the fit of stack overflow code snippets into existing code
GECCO '20: Proceedings of the 2020 Genetic and Evolutionary Computation Conference CompanionSoftware developers often reuse code from online sources such as Stack Overflow within their projects. However, the process of searching for code snippets and integrating them within existing source code can be tedious. In order to improve efficiency ...
Comments