Nonresident and Endangered Variables: The Effects of Code Generation Optimizations on Symbolic Debugging
CARNEGIE INST OF TECH PITTSBURGH PA DEPT OF COMPUTER SCIENCE
Pagination or Media Count:
Instruction scheduling and register allocationassignment are two optimizations that are commonly used in the code generation phase of modern compilers. These optimizations are important for processors with exposed instruction-level parallelism and large register files. These optimizations, however, impact the task of the symbolic debugger which attempts to present to the user a source-level view of program execution. The debuggers for most systems today usually punt the issue of optimized code, either by turning optimizations off whenever the user asks for source level debugging, or by not detecting the effects of optimizations on the source-level state. To not mislead the user, the debugger must provide feedback of the effects of optimizations. In this paper, we investigate the effects of instruction scheduling and global register allocationassignment on symbolic debugging and present approaches that a debugger can take.
- Computer Programming and Software
- Computer Systems Management and Standards