Title :
Compiler optimization and its impact on development of real-time systems
Author :
Tucker, Kevin ; Solomon, Eli ; Littlejohn, Kenneth
Author_Institution :
DDC-I Inc., Phoenix, AZ, USA
fDate :
31 Oct-7 Nov 1998
Abstract :
Real-time systems are increasing in size and complexity. Software developers seek to maximize the performance, as well as minimize the memory requirements in order to meet the constraints of these systems. Traditionally, software developers have overcome these constraints by using an optimizing compiler. However, optimization carries a hidden price. Many Commercial-Off-The-Shelf (COTS) debuggers are unable to work effectively with optimized applications, because the one-to-one mapping of source to object code is often disturbed by optimization. While optimizing, a compiler is free to reorder or interleave the code for statements, so long as the semantics of the program are preserved. This causes two major problems for a debugger. First, selecting a representative instruction to be used when setting a breakpoint on a source-level statement becomes difficult. Second, at a given breakpoint, the value of a variable may differ from what it would be in the non-optimized version. This condition is known as non-currency. Each of these problems becomes a serious issue if a debugger is used to debug the deliverable code or to perform verification testing. This paper presents an in-depth study of the effects of loop-invariant optimization on debugging user applications. The paper will show how to significantly improve the performance of the debugger, with respect to breakpoints and non-current variables, when operating on code affected by this optimization. A summary of the research done, including specific implementation issues and lessons learned while enhancing the DDC-I SPARCStation Solaris native Ada compiler system, is presented
Keywords :
optimising compilers; program debugging; real-time systems; DDC-I SPARCStation Solaris; compiler optimization; debugging user applications; hoisted statement; loop-invariant optimization; memory requirements; native Ada compiler system; real-time systems development; setting breakpoints; specific implementation issues; system constraints; Application software; Debugging; Force sensors; Laboratories; Optimizing compilers; Program processors; Real time systems; Sensor systems; Software performance; Software systems;
Conference_Titel :
Digital Avionics Systems Conference, 1998. Proceedings., 17th DASC. The AIAA/IEEE/SAE
Conference_Location :
Bellevue, WA
Print_ISBN :
0-7803-5086-3
DOI :
10.1109/DASC.1998.741479