The compiler as a validation and evaluation tool

Gerolf F. Hoflehner, Daniel M. Lavery, David C. Sehr
2004 Electronical Notes in Theoretical Computer Science  
Like a processor executes flawlessly at different frequencies, a compiler should produce correct results at any optimization level. The Intel r Itanium r processor family with its new features, like the register stack engine and control-and data speculation, provides new and unique challenges for ported software and compiler technology. This paper describes validation and evaluation techniques that can be employed in compilation tools and can help to get a cleaner port of an application, a more
more » ... robust compilation system and even insights into performance tuning opportunities. Using Itanium as a specific example, the paper explains why the register stack engine (RSE), the large register file, or control-and data speculation can potentially expose bugs in poorly written or compiled software. It then demonstrates validation and evaluation techniques to find or expose these bugs. An evaluation team can employ them to find, eliminate and evaluate software bugs. A compiler team can use them to make the compiler more stable and robust. A performance analysis team can use them to uncover performance opportunities in an application. We demonstrate our validation and evaluation techniques on code examples and provide run-time data to indicate the cost of some of our methods.
doi:10.1016/s1571-0661(05)82602-7 fatcat:kok5mbphhnhcjc6lby65zxu3pa