Nonresident and Endangered Variables: The Effects of Code Generation Optimizations on Symbolic Debugging

Abstract

Instruction scheduling and register allocation/assignment 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 allocation/assignment on symbolic debugging and present approaches that a debugger can take.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 1992
Accession Number
ADA263149

Entities

People

  • Ali-reza Adl-tabatabai

Organizations

  • Carnegie Institute of Technology

Tags

Communities of Interest

  • Advanced Electronics

DTIC Thesaurus Topics

  • Algorithms
  • Compilers
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Demographic Cohorts
  • Generators
  • Information Science
  • Instructions
  • Language
  • Models
  • Object Code
  • Optimization
  • Recovery
  • Side Effects

Fields of Study

  • Computer science

Readers

  • Parallel and Distributed Computing.
  • Team-Based Human-Centered Cognitive Task Decision Making and Information Performance.