Claims Analysis
Total Claims: 34
Claim 1
Independent Claim
147 words
A method of optimizing executable code for operation in a plurality of different operating environments or modes, the method comprising the steps of: A. executing the code with predetermined input conditions from one of the plurality of operating environments or modes; B. monitoring the execution of the code to identify non-branching code blocks which execute more than a predetermined number of times and to identify non-branching code blocks which execute less than a predetermined number of times; C. combining the non-branching code blocks which execute more than a predetermined number of times to form a program segment and combining the identified non-branching code blocks which execute less than a predetermined number of times to form a general purpose program segment which is common to all program segments; D. repeating steps A through C for each operating environment and mode; and E. optimizing each of the program segments.
Claim 2
Independent Claim
147 words
A method of optimizing executable code for operation in a plurality of different operating environments or modes, the method comprising the steps of: A. executing the code with predetermined input conditions from one of the plurality of operating environments or modes; B. monitoring the execution of the code to identify non-branching code blocks which execute more than a predetermined number of times and to identify non-branching code blocks which execute less than a predetermined number of times; C. combining the non-branching code blocks which execute more than a predetermined number of times to form a program segment and combining the identified non-branching code blocks which execute less than a predetermined number of times to form a general purpose program segment which is common to all program segments; D. repeating steps A through C for each operating environment and mode; and E. optimizing each of the program segments.
Claim 3
Dependent Claim
43 words
The method of claim 1 wherein step B comprises the steps of: B1. identifying non-branching code blocks within the code; and B2. identifying the executional sequence of the code to identify the code blocks which execute in the one operating environment or mode.
Claim 4
Dependent Claim
43 words
The method of claim 1 wherein step A comprises the step of: A1. storing runtime information generated by the code during execution; and wherein step E comprises the step of: E1. using the stored runtime information to optimize each of the code segments.
Claim 5
Dependent Claim
33 words
The method of claim 1 wherein step A comprises the step of: A2. storing a plurality of input conditions for each of the plurality of operating environments and modes in a profile file.
Claim 6
Dependent Claim
199 words
Apparatus operable in a computer system for optimizing executable code for operation in a plurality of different operating environments or modes, the apparatus comprising: means responsive to predetermined input conditions from one of the plurality of operating environments or modes for executing the code; apparatus in the computer system for monitoring the execution of the code to identify first non-branching code blocks which execute more than a predetermined number of times and for identifying second non-branching code blocks which execute less than a predetermined number of times and for storing identification information; means responsive to the first code block identification information for combining the identified first code blocks to form a program segment and responsive to the second code block identification information for combining the second code blocks to form a general purpose program segment which is common to all program segments; means controlled by the computer system for changing the operating environment or mode and for controlling the executing means to reexecute the code to generate a program segment for each operating environment and mode; and means operable after a program segment has been generated for each operating environment and mode for optimizing each of the program segments.
Claim 7
Dependent Claim
199 words
Apparatus operable in a computer system for optimizing executable code for operation in a plurality of different operating environments or modes, the apparatus comprising: means responsive to predetermined input conditions from one of the plurality of operating environments or modes for executing the code; apparatus in the computer system for monitoring the execution of the code to identify first non-branching code blocks which execute more than a predetermined number of times and for identifying second non-branching code blocks which execute less than a predetermined number of times and for storing identification information; means responsive to the first code block identification information for combining the identified first code blocks to form a program segment and responsive to the second code block identification information for combining the second code blocks to form a general purpose program segment which is common to all program segments; means controlled by the computer system for changing the operating environment or mode and for controlling the executing means to reexecute the code to generate a program segment for each operating environment and mode; and means operable after a program segment has been generated for each operating environment and mode for optimizing each of the program segments.
Claim 8
Dependent Claim
53 words
The apparatus of claim 5 wherein the monitoring apparatus comprises: means responsive to the code for identifying non-branching code blocks within the code; and means responsive to the identification of branching and non-branching code blocks for identifying the execution sequence of the code blocks which execute in the one operating environment or mode.
Claim 9
Dependent Claim
47 words
The apparatus of claim 5 wherein the execution means comprises: means responsive to the execution of the code for storing runtime information generated by the code during execution; and wherein the optimization means comprises: means responsive to stored runtime information for optimizing each of the code segments.
Claim 10
Dependent Claim
32 words
The apparatus of claim 5 wherein the execution means comprises: means for storing a plurality of input conditions for each of the plurality of operating environments and modes in a profile file.
Claim 11
Independent Claim
173 words
A method of optimizing executable code for a plurality of different operating environments or modes, the code comprising a plurality of non-branching code blocks and having an entry point for each of the plurality of different operating environments or modes, the method comprising the steps of: A. identifying the code blocks reachable from each of the entry points; B. executing the executable code with the input conditions from each of the plurality of operating environments and modes; C. monitoring the execution of the code for each of the input conditions to identify which of the code blocks identified in step A was executed and the number of times each of the identified code blocks was executed; D. partitioning the code into a plurality of program segments, each of the plurality of program segments corresponding to one of the plurality of operating environments or modes and containing code blocks which were executed at least a predetermined number of times during execution of the code; and E. optimizing each of the plurality of program segments.
Claim 12
Independent Claim
173 words
A method of optimizing executable code for a plurality of different operating environments or modes, the code comprising a plurality of non-branching code blocks and having an entry point for each of the plurality of different operating environments or modes, the method comprising the steps of: A. identifying the code blocks reachable from each of the entry points; B. executing the executable code with the input conditions from each of the plurality of operating environments and modes; C. monitoring the execution of the code for each of the input conditions to identify which of the code blocks identified in step A was executed and the number of times each of the identified code blocks was executed; D. partitioning the code into a plurality of program segments, each of the plurality of program segments corresponding to one of the plurality of operating environments or modes and containing code blocks which were executed at least a predetermined number of times during execution of the code; and E. optimizing each of the plurality of program segments.
Claim 13
Dependent Claim
70 words
The method of claim 9 wherein step D comprises the step of: D1. comparing the number of times a selected code block was executed during code execution to a predetermined threshold value; and D2. placing a copy of the selected code block into a program segment associated with a particular operating environment or mode when the number of times the selected code block was executed exceeds the predetermined threshold value.
Claim 14
Dependent Claim
20 words
The method of claim 9 wherein step E comprises the step of: E1. eliminating common sub-expressions in each program segment.
Claim 15
Dependent Claim
23 words
The method of claim 9 wherein step E further comprises the step of: E2. performing a redundant store elimination on each program segment.
Claim 16
Dependent Claim
23 words
The method of claim 9 wherein step E further comprises the step of: E3. performing a redundant load elimination on each program segment.
Claim 17
Dependent Claim
47 words
The method of claim 9 wherein step B comprises the step of: B1. generating a plurality of profile data structures, each of the plurality of profile data structures containing a plurality of input conditions for each operational environment or mode for which the code will be optimized.
Claim 18
Dependent Claim
45 words
The method of claim 9 wherein step B further comprises the step of: B2. storing runtime information generated by the code during execution; and wherein step E further comprises the step of: E4. using the stored runtime information to optimize each of the code segments.
Claim 19
Dependent Claim
65 words
The method of claim 9 wherein step C comprises the step of: C1. monitoring the execution of the code to identify non-branching code blocks which execute less than a predetermined number of times; and wherein step D further comprises the step of: D3. combining the code blocks identified in step C1 to form a general purpose program segment which is common to all program segments.
Claim 20
Dependent Claim
230 words
A computer program product comprising: a computer usable medium having computer readable program code means embodied thereon for optimizing executable code for a plurality of different operating environments or modes, the code having a plurality of non-branching code blocks and having an entry point for each of the plurality of different operating environments or modes, the computer usable medium comprising: program code means, responsive to said entry points, for identifying the code blocks reachable from each of the entry points; program code means for executing the executable code with input conditions from each of the plurality of operating environments and modes; program code means, responsive to the execution of the code, for monitoring the execution of the code for each of the input conditions and for generating runtime information which identifies which of the identified code blocks was executed and the number of times each of the identified code blocks was executed; program code means, responsive to said runtime information, for partitioning the code into a plurality of program segments, each of the plurality of program segments corresponding to one of the plurality of operating environments or modes and containing first code blocks which were executed at least a predetermined number of times during execution of the code; and program code means, responsive to the completion of execution of the code, for optimizing each of the plurality of program segments.
Claim 21
Dependent Claim
230 words
A computer program product comprising: a computer usable medium having computer readable program code means embodied thereon for optimizing executable code for a plurality of different operating environments or modes, the code having a plurality of non-branching code blocks and having an entry point for each of the plurality of different operating environments or modes, the computer usable medium comprising: program code means, responsive to said entry points, for identifying the code blocks reachable from each of the entry points; program code means for executing the executable code with input conditions from each of the plurality of operating environments and modes; program code means, responsive to the execution of the code, for monitoring the execution of the code for each of the input conditions and for generating runtime information which identifies which of the identified code blocks was executed and the number of times each of the identified code blocks was executed; program code means, responsive to said runtime information, for partitioning the code into a plurality of program segments, each of the plurality of program segments corresponding to one of the plurality of operating environments or modes and containing first code blocks which were executed at least a predetermined number of times during execution of the code; and program code means, responsive to the completion of execution of the code, for optimizing each of the plurality of program segments.
Claim 22
Dependent Claim
85 words
The computer program product of claim 17 wherein the program code means for partitioning comprises: program code means, responsive to execution of the code, for comparing the number of times a selected code block was executed during code execution to a predetermined threshold value; and program code means for placing a copy of the selected code block into a program segment associated with a particular operating environment or mode when the number of times the selected code block was executed exceeds the predetermined threshold value.
Claim 23
Dependent Claim
28 words
The computer program product of claim 17 wherein the program code means for optimizing program segments comprises: program code means for eliminating common sub-expressions in each program segment.
Claim 24
Dependent Claim
30 words
The computer program product of claim 17 wherein the program code means for optimizing program segments comprises: program code means for performing a redundant store elimination on each program segment.
Claim 25
Dependent Claim
30 words
The computer program product of claim 17 wherein the program code means for optimizing program segments comprises: program code means for performing a redundant load elimination on each program segment.
Claim 26
Dependent Claim
56 words
The computer program product of claim 17 wherein the program code means for executing the executable code comprises: program code means for generating a plurality of profile data structures, each of the plurality of profile data structures containing a plurality of input conditions for each operational environment or mode for which the code will be optimized.
Claim 27
Dependent Claim
74 words
The computer program product of claim 17 wherein the program code means for executing the executable code comprises: program code means responsive to the execution of the code for storing runtime information generated by the code during execution; and wherein the program code means for optimizing further comprises: program code means, responsive to a completion of the execution of the code, for using the stored runtime information to optimize each of the code segments.
Claim 28
Dependent Claim
73 words
The program code means of claim 17 wherein the program code means for monitoring comprises: program code means for monitoring the execution of the code to identify second non-branching code blocks which execute less than a predetermined number of times; and wherein the program code means for partitioning further comprises: program code means for combining the second code blocks to form a general purpose program segment which is common to all program segments.
Claim 29
Dependent Claim
236 words
A computer system comprising: a central processing unit; a memory; an application program containing executable code stored in the memory and operable on the central processing unit in a plurality of different operating environments or modes, the code comprising a plurality of non-branching code blocks and having an entry point for each of the plurality of different operating environments or modes; means controlled by the application program and responsive to the entry points for identifying the code blocks reachable from each of the entry points; means for executing the executable code on the central processing unit with the input conditions from each of the plurality of operating environments and modes; a profiler responsive to the execution of the code for monitoring the execution of the code for each of the input conditions and for generating runtime information which identifies which of the identified code blocks was executed and the number of times each of the identified code blocks was executed; a compiler responsive to the runtime information for partitioning the code into a plurality of program segments, each of the plurality of program segments corresponding to one of the plurality of operating environments or modes and containing first code blocks which were executed at least a predetermined number of times during execution of the code; and an optimizer responsive to the completion of execution of the code for optimizing each of the plurality of program segments.
Claim 30
Dependent Claim
236 words
A computer system comprising: a central processing unit; a memory; an application program containing executable code stored in the memory and operable on the central processing unit in a plurality of different operating environments or modes, the code comprising a plurality of non-branching code blocks and having an entry point for each of the plurality of different operating environments or modes; means controlled by the application program and responsive to the entry points for identifying the code blocks reachable from each of the entry points; means for executing the executable code on the central processing unit with the input conditions from each of the plurality of operating environments and modes; a profiler responsive to the execution of the code for monitoring the execution of the code for each of the input conditions and for generating runtime information which identifies which of the identified code blocks was executed and the number of times each of the identified code blocks was executed; a compiler responsive to the runtime information for partitioning the code into a plurality of program segments, each of the plurality of program segments corresponding to one of the plurality of operating environments or modes and containing first code blocks which were executed at least a predetermined number of times during execution of the code; and an optimizer responsive to the completion of execution of the code for optimizing each of the plurality of program segments.
Claim 31
Dependent Claim
219 words
A computer program product, comprising: a computer usable medium having computer readable program code means embodied in said medium for optimizing executable code for a plurality of different operating environments or modes, the executable code comprising a plurality of non-branching code blocks and having an entry point for each of the plurality of different operating environments or modes, the computer program product comprising: first program code means for identifying the code blocks reachable from each of the entry points; second program code means for causing a computer to execute the executable code with predetermined input conditions from each of the plurality of operating environments and modes; third program code means for monitoring the execution of the code for each of the input conditions to determine which of the identified code blocks was executed and the number of times each of the identified code blocks was executed; fourth program code means for causing partitioning the executable code into a plurality of program segments, each of the plurality of program segments corresponding to one of the plurality of operating environments and modes, each of the plurality of program segments containing code blocks which were executed at least a predetermined number of times during execution of the code; and fifth program code means for optimizing each of the plurality of program segments.
Claim 32
Dependent Claim
219 words
A computer program product, comprising: a computer usable medium having computer readable program code means embodied in said medium for optimizing executable code for a plurality of different operating environments or modes, the executable code comprising a plurality of non-branching code blocks and having an entry point for each of the plurality of different operating environments or modes, the computer program product comprising: first program code means for identifying the code blocks reachable from each of the entry points; second program code means for causing a computer to execute the executable code with predetermined input conditions from each of the plurality of operating environments and modes; third program code means for monitoring the execution of the code for each of the input conditions to determine which of the identified code blocks was executed and the number of times each of the identified code blocks was executed; fourth program code means for causing partitioning the executable code into a plurality of program segments, each of the plurality of program segments corresponding to one of the plurality of operating environments and modes, each of the plurality of program segments containing code blocks which were executed at least a predetermined number of times during execution of the code; and fifth program code means for optimizing each of the plurality of program segments.
Claim 33
Dependent Claim
90 words
The computer program product as defined in claim 26 wherein the fourth program code means comprises: program code means, responsive to execution of the code, for comparing the number of times a selected code block was executed during code execution to a predetermined threshold value; and program code means for causing the computer to place a copy of the selected code block into a program segment associated with a particular operating environment and mode when the number of times the selected code block was executed exceeds the predetermined threshold value.
Claim 34
Dependent Claim
25 words
The computer program product of claim 26 wherein the fifth program code means includes program code means for eliminating common sub-expressions in each program segment.