Regprof is a computer program that analyzes the use of registers by another program that runs on a PowerPC
750 (or equivalent) computer. Regprof is useful for showing how well compilers make use of registers and for obtaining an indication of the susceptibility of application programs to radiation-induced changes in register bits. Regprof goes through the source code of the program in question, analyzing each instruction to determine what registers it uses and whether the instruction loads a register with a value or uses a value already in a register. A register is marked as being in use between the instruction that loads a value into it and the last instruction in which that value is used. Upon completion of this analysis, a histogram table that shows how many registers are in use at each line of the analyzed program is printed. One limitation of this analysis is that it does not take account of program flow and, instead, is performed as though all lines of the analyzed code were executed in sequence. This is adequate for most compiler code, but in some cases, one might obtain a distorted representation of register usage.
This program was written by Paul Springer of Caltech for NASA’s Jet Propulsion Laboratory.
This software is available for commercial licensing. Please contact Don Hart of the California Institute of Technology at (818) 393- 3425. Refer to NPO-30347.
This Brief includes a Technical Support Package (TSP).

Program Analyzes Use of Registers by Another Program
(reference NPO-30347) is currently available for download from the TSP library.
Don't have an account?
Overview
The document presents an overview of Regprof, a software utility designed to analyze register usage in programs running on the PowerPC 750 platform. Developed by Paul L. Springer at the Jet Propulsion Laboratory (JPL) for NASA, Regprof serves two primary purposes: evaluating how effectively compilers utilize registers and assessing the susceptibility of applications to radiation-induced changes in register bits.
Regprof operates by processing output from the GNU Debugger (gdb), specifically using the "disas" command to disassemble code. The program analyzes each instruction in the source code to determine which registers are in use, identifying whether an instruction loads a value into a register or utilizes a value already stored in one. A register is marked as "in use" from the moment it is loaded with a value until the last instruction that uses that value. This analysis culminates in the generation of a histogram table that displays the number of registers in use at each line of the analyzed program.
One notable limitation of Regprof is its approach to program flow; it assumes that all lines of code are executed sequentially, which may not accurately reflect actual register usage in more complex scenarios. Despite this limitation, the tool is valuable for developers and researchers interested in understanding register utilization and the potential impact of single event upsets (SEUs) caused by radiation.
The document also includes a notice regarding the liability of the United States Government and JPL concerning the use of the information contained within. It emphasizes that the mention of specific commercial products or services does not imply endorsement by the government or JPL.
For those interested in commercial licensing of Regprof, the document provides contact information for Don Hart at the California Institute of Technology. The technical support package is part of NASA's ongoing efforts to advance technology and improve the reliability of software used in critical applications, particularly in aerospace and related fields.
In summary, Regprof is a specialized tool for analyzing register usage in PowerPC 750 programs, offering insights into compiler efficiency and the potential effects of radiation on register integrity, while also highlighting the importance of understanding register management in software development.

