Method and system for wrapper routine optimization
First Claim
1. A method of generating wrapper routine assembly code instructions for executing routines specified by a high level programming language, said routines normally requiring windowed register allocation, said method comprising the steps of:
- (a) identifying a routine that is eligible for having wrapper routine assembly code instructions generated therefor;
(b) classifying the eligible routine identified in step (a) into one of a plurality of types of wrapper routines, wherein said step (b) of classifying includes the step (i) of determining whether the eligible routine incorporates tail routine calls only, where tail routine calls are routine calls which occur just prior to the routine exit; and
(c) generating wrapper routine assembly code instructions for the eligible routine identified in step (a) and in accordance with the type of wrapper routine classified in step (b), where execution of the wrapper routine assembly code instructions does not require use of a register window.
2 Assignments
0 Petitions
Accused Products
Abstract
Program routines normally requiring windowed register allocation using conventional assembly code generation in a compiler are examined for eligibility for a wrapper routine optimization procedure in which wrapper routine assembly code instructions are generated in response to the application of high level programming language instructions specifying routines. If not eligible, the compiler generates assembly code instructions in a conventional way, allocating windowed registers to each routine. If the routine is eligible for wrapper routine optimization, the routine is further examined to determine whether the routine includes tail routine calls only or calls within the body of the routine. If the former, the routine is examined to determine whether local stack usage is required. For a routine having tail routine calls only and a requirement of local stack usage, wrapper routine assembly code instructions of a first type are generated. If the routine includes tail calls only and no requirement for local storage, wrapper routine assembly code instructions of a second type are generated. If the routine incorporates one or more calls within the body thereof, the routine is further examined to determine whether a live register is required over any of the calls. If so, wrapper routine assembly code instructions of a third type are generated. If the routine incorporates calls within the body thereof and a live register is not required over any call, wrapper routine assembly code instructions of a fourth type are generated.
28 Citations
15 Claims
-
1. A method of generating wrapper routine assembly code instructions for executing routines specified by a high level programming language, said routines normally requiring windowed register allocation, said method comprising the steps of:
-
(a) identifying a routine that is eligible for having wrapper routine assembly code instructions generated therefor; (b) classifying the eligible routine identified in step (a) into one of a plurality of types of wrapper routines, wherein said step (b) of classifying includes the step (i) of determining whether the eligible routine incorporates tail routine calls only, where tail routine calls are routine calls which occur just prior to the routine exit; and (c) generating wrapper routine assembly code instructions for the eligible routine identified in step (a) and in accordance with the type of wrapper routine classified in step (b), where execution of the wrapper routine assembly code instructions does not require use of a register window. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer system having a compiler for generating wrapper routine assembly code instructions for executing routines in said computer system, said routines specified by a high level programming language and normally requiring allocation of windowed registers, said compiler comprising:
-
a first procedure for identifying a routine that is eligible for having wrapper routine assembly code instructions generated therefor; a second procedure for classifying the eligible routine identified in the first procedure into one of a plurality of types of wrapper routines, wherein said second procedure includes a procedure for determining whether the eligible routine incorporates tail routine calls only, where tail routine calls are routine calls which occur just prior to the routine exit; and a third procedure for generating wrapper routine assembly code instructions for the eligible routine identified in step (a) and in accordance with the type of wrapper routine classified by the second procedure, where execution of the wrapper routine assembly code instructions does not require use of a register window. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer program product including:
a computer usable medium having computer readable code embodied therein for generating wrapper routine assembly code instructions for executing routines in a computer system, said routines specified by a high level programming language and normally requiring allocation of windowed registers, the computer program product comprising; a first set of computer readable program code devices configured to cause a computer to effect identification of a routine that is eligible for having wrapper routine assembly code instructions generated therefor; a second set of computer readable program code devices configured to cause a computer to effect classification of the eligible routine identified by the first set of computer readable program code devices into one of a plurality of types of wrapper routines, wherein said second set of computer readable program code devices is configured to cause a computer to effect a determination whether the eligible routine incorporates tail routine calls only, where tail routine calls are routine calls which occur just prior to the routine exit; and a third set of computer readable program code devices configured to cause a computer to effect the generation of wrapper routine assembly code instructions for the eligible routine identified by the first set of computer readable program code devices and in accordance with the type of wrapper routine classified by said second set of computer readable program code devices, where execution of the wrapper routine assembly code instructions does not require use of a register window. - View Dependent Claims (12, 13, 14, 15)
Specification