Inventors:
Bhaskar Janakiraman - Sunnyvale CA
Assignee:
Hewlett-Packard Co. - Palo Alto CA
International Classification:
G06F 9445
Abstract:
A method and apparatus for improving the process of software development by a fast coalescing compiler optimizer tool that operates with one compiler pass. The present invention is a software development tool for optimization that analyzes one or more instructions, and when the instruction is a copy instruction the tool analyzes the source variable and the target variable of the copy instruction for opportunities to coalesce the source variable and the target variable. The present invention tailors its processing to advantageously enable user-level debugging when debugging is required. The present invention coalesces a target variable of a copy instruction and a source variable of the copy instruction; when the target variable of a copy instruction does not interfere with the source variable of the copy instruction, and the only use of the source variable in the program is in the copy instruction, and the source variable has one or more definitions and all the definitions in the program precede the copy instruction and are in a common basic block. The present invention coalesces a source variable of a copy instruction with a target variable of the copy instruction when the target variable has a single definition that is defined in the copy instruction, and the definition of the target variable precedes all uses in the program of the variable, and all uses of the variable are in the same basic block, and the source of the copy instruction and the target of the copy instruction do not interfere.