Method and apparatus for compiling computer programs with interprocedural register allocation
AssigneeHewlett-Packard Company
InventorsDaryl Odnert, Vatsa Santhanam
Life of this patent
Estimating the term…
Loading patent…
AssigneeHewlett-Packard Company
InventorsDaryl Odnert, Vatsa Santhanam
Estimating the term…
Optimization techniques are implemented by means of a program analyzer used in connection with a program compiler to optimize usage of limited register resources in a computer processor. The first optimization technique, called interprocedural global variable promotion allows the global variables of a program to be accessed in common registers across a plurality of procedures. Moreover, a single common register can be used for different global variables in distinct regions of a program call graph. This is realized by identifying subgraphs, of the program call graph, called webs, where the variable is used. The second optimization technique, called spill code motion, involves the identification of regions of the call graph, called clusters, that facilitate the movement of spill instructions to procedures which are executed relatively less often. This decreases the overhead of register saves and restores which must be executed for procedure calls.
A method for optimizing register usage in an executable computer program on a computer processor having a limited plurality of machine registers, said computer program being compiled from a plurality of individual source code files, said method comprising the steps of:
A method for optimizing register usage in an executable computer program on a computer processor having a limited plurality of machine registers, said computer program being compiled from a plurality of individual source code files, said method comprising the steps of:
An apparatus for optimizing register usage in an executable computer program on a computer processor having a limited plurality of machine registers, said computer program being compiled from a plurality of individual source code files, said apparatus comprising:
An apparatus for optimizing register usage in an executable computer program on a computer processor having a limited plurality of machine registers, said computer program being compiled from a plurality of individual source code files, said apparatus comprising:
A method of operating a general purpose data processor having a plurality of machine registers, a sub-set thereof being assigned for use as interprocedural registers, so as to allow more efficient allocation of said procedural registers when said data processor is executing a computer program comprising a plurality of procedures, at least one of said procedures operating on a global variable, said method comprising the steps of:
A method of operating a general purpose data processor having a plurality of machine register, a sub-set thereof being assigned for use as interprocedural registers, so as to allow more efficient allocation of said interprocedural registers when said data processor is executing a computer program comprising a plurality of procedures, at least one of said procedures operating on a global variable, said method comprising the steps of:
A method of operating a general purpose data processor having a plurality of machine register, a sub-set thereof being assigned for use as interprocedural registers, so as to allow more efficient allocation of said interprocedural registers when said data processor is executing a computer program comprising a plurality of procedures, at least one of said procedures operating on a global variable, said method comprising the steps of:
A method of operating a general purpose data processor having a plurality of machine register, a sub-set thereof being assigned for use as interprocedural registers, so as to allow more efficient allocation of said interprocedural registers when said data processor is executing a computer program comprising a plurality of procedures, at least one of said procedures operating on a global variable, said method comprising the steps of:
Dependencies are inferred from the claim text.