Claims Analysis
Total Claims: 10
Claim 1
Independent Claim
120 words
A method for optimizing the compiling of a program having multi-way branch statements, said method comprising the steps of: (a) selecting a multi-way branch statement from said multi-way branch statements; (b) examining said selected multi-way branch statement to determine the relative costs for each of a plurality of instruction sequences to implement said multi-way branch statement; (c) comparing the relative cost for executing each of said plurality of instruction sequences: (d) selecting one of said instruction sequences from said plurality of instruction sequences that carries the least cost; (e) implementing said selected least-cost instruction sequence in the compiled version of said program; and (f) repeating said steps (a) through (e) for each of said multi-way branch statements in said program.
Claim 2
Independent Claim
120 words
A method for optimizing the compiling of a program having multi-way branch statements, said method comprising the steps of: (a) selecting a multi-way branch statement from said multi-way branch statements; (b) examining said selected multi-way branch statement to determine the relative costs for each of a plurality of instruction sequences to implement said multi-way branch statement; (c) comparing the relative cost for executing each of said plurality of instruction sequences: (d) selecting one of said instruction sequences from said plurality of instruction sequences that carries the least cost; (e) implementing said selected least-cost instruction sequence in the compiled version of said program; and (f) repeating said steps (a) through (e) for each of said multi-way branch statements in said program.
Claim 3
Dependent Claim
25 words
A method as claimed in claim 1, in which said plurality of instruction sequences comprises range test, jump table, compare-and-branch, arithmetic progression and address translation.
Claim 4
Dependent Claim
20 words
A method as claimed in claim 1 wherein said costs include code of machine time required to execute said program.
Claim 5
Dependent Claim
29 words
A method as claimed in claim 1, further comprising setting a plurality of selection values according to parameters determined by a source text of said program to be compiled.
Claim 6
Dependent Claim
42 words
A method as claimed in claim 1, in which said step of comparing the relative cost is made by inserting values in a costing heuristic, and further comprising setting said values in said costing heuristic according to the architecture of said computer.
Claim 7
Dependent Claim
31 words
A method as claimed in claim 1 further comprising the steps of: establishing a costing heuristic; and clustering constants into sets from which said costing heuristic selects said lowest-cost instruction sequence.
Claim 8
Dependent Claim
107 words
An improved compiler for optimizing a program to be executed by a computer, said compiler comprising: (a) means for selecting a multi-way branch statement; (b) means for examining said multi-way branch statement to determine and compare the relative costs of executing each of a plurality of selection methods to determine which branch is to be taken by said program, where said plurality of selection methods comprise a jump table, range test, compare-and-branch, arithmetic progression and address translation; (c) means for selecting the least-cost selection method; and (d) means for implementing an instruction sequence corresponding to said selected least-cost selection method in the compiled version of said program.
Claim 9
Dependent Claim
107 words
An improved compiler for optimizing a program to be executed by a computer, said compiler comprising: (a) means for selecting a multi-way branch statement; (b) means for examining said multi-way branch statement to determine and compare the relative costs of executing each of a plurality of selection methods to determine which branch is to be taken by said program, where said plurality of selection methods comprise a jump table, range test, compare-and-branch, arithmetic progression and address translation; (c) means for selecting the least-cost selection method; and (d) means for implementing an instruction sequence corresponding to said selected least-cost selection method in the compiled version of said program.
Claim 10
Dependent Claim
22 words
An improved compiler as claimed in claim 7, in which said costs include cost of machine time required to execute said program.