Claims Analysis
Total Claims: 16
Claim 1
Independent Claim
123 words
A data processing machine for compiling a computer program in which a particular operation may be controlled by instructions of different lengths characterised in that the machine is controlled to perform the following operation for each input computer program to be compiled; 1. defining a self contained sequence of instructions, 2. reversing the order of the sequence, 3. for each instructions that may have a different length, in turn determining the maximum register bit positions required to store the significant digits of the output that would result from executing this instruction. 4. marking the instruction to indicate this maximum length 5. replacing in the sequence any instruction found to require less register lengths than originally defined with an instruction of the appropriate definition.
Claim 2
Dependent Claim
123 words
A data processing machine for compiling a computer program in which a particular operation may be controlled by instructions of different lengths characterised in that the machine is controlled to perform the following operation for each input computer program to be compiled; 1. defining a self contained sequence of instructions, 2. reversing the order of the sequence, 3. for each instructions that may have a different length, in turn determining the maximum register bit positions required to store the significant digits of the output that would result from executing this instruction. 4. marking the instruction to indicate this maximum length 5. replacing in the sequence any instruction found to require less register lengths than originally defined with an instruction of the appropriate definition.
Claim 3
Dependent Claim
96 words
A data processing machine for compiling a computer program in which a particular operation may be controlled by instructions of different lengths characterised in that the machine is controlled to perform the following operation for each input computer program to be compiled; 1. examining a sequential instruction stream and determining which bits of the result of each instruction could be significant, based on the context of the instruction in the instruction stream, and 2. generating the most efficient instruction form that computes the correct result in only the bit positions that were determined could be significant.
Claim 4
Dependent Claim
96 words
A data processing machine for compiling a computer program in which a particular operation may be controlled by instructions of different lengths characterised in that the machine is controlled to perform the following operation for each input computer program to be compiled; 1. examining a sequential instruction stream and determining which bits of the result of each instruction could be significant, based on the context of the instruction in the instruction stream, and 2. generating the most efficient instruction form that computes the correct result in only the bit positions that were determined could be significant.
Claim 5
Dependent Claim
134 words
A data processing machine as claimed in claim 2 in which the machine is controlled to 1. examine a linear instruction stream in reverse order and determining for each instruction those bits of the result which must be considered significant (significance value (s.v.)) and marking each input operand to that instruction to the same significance value, 2. propagate upwards in the instruction stream said input operand significance values to any instructions wherein the result of said instruction is an input operand to a subsequent instruction, 3. continue said procedure in reverse order until all of the instructions in the instruction stream have been evaluated and generating the most efficient instruction form for the entire stream for those instructions whose result significance value were changed from an "all bits significant" state by said evaluation procedure.
Claim 6
Dependent Claim
89 words
A data processing machine as claimed in claim 3 wherein real registers are assigned to each instruction and controlled to a (s.v.) memory location relating to each real system register for storing significance value data for operands to be stored in each said register, set each said (s.v.) memory location to a predetermined maximum at the beginning of said procedure, and change the significance value of a particular memory location when the operand to be stored in the related register has a significance value other than that already present.
Claim 7
Dependent Claim
56 words
A data processing machine as claimed in claim 4 further controlled after completion of an evaluation procedure, to access said (s.v.) memory at the assigned locations relating to the result of each instruction and marking said instruction with the significance value stored in said table for use in the "final code generation" phase of the compiler.
Claim 8
Dependent Claim
74 words
A data processing machine as claimed in claim 5 further controlled to determine if the use of a particular register is a "last use" in the instruction stream being evaluated before entering a significance value in the (s.v.) memory location related to said register, substitute the new value for the old value if it is a "last use," and 'OR' the new value with the old value if it is not a "last use".
Claim 9
Dependent Claim
246 words
A code optimizing method operable within an optimizing compiler after the register allocation phase thereof, said method being operable to perform significant bit analysis, the results of said analysis being utilized during the final code generation phase of the compiler operations for generating the most efficient form of computer instruction available for producing the required result said method comprising, establishing a significant bit table in memory being a storage location relating to each working register for target system and means for accessing said table at a location derivable from the register number assignment of the operands of an instruction, examining a linear code stream which is to be optimized, sequentially in reverse order, if an instruction being evaluated is a non-computational "label" obtaining the next instruction, if an instruction is a return or branch instruction setting the significance value of all of the array storage locations to "all significant" and obtaining the next instruction, determining for each computational type instruction, the maximum significance value of its result and specifying this significance value as the required significance values for its two input operands, determining the significance value for a particular result as being no greater than the significance value required for a subsequent operation to which it will become an input, and continuing the evaluation process until all of the instructions in a particular instruction stream have been processed, and marking each instruction with a significance value marker representative of the results of said significant value process.
Claim 10
Dependent Claim
246 words
A code optimizing method operable within an optimizing compiler after the register allocation phase thereof, said method being operable to perform significant bit analysis, the results of said analysis being utilized during the final code generation phase of the compiler operations for generating the most efficient form of computer instruction available for producing the required result said method comprising, establishing a significant bit table in memory being a storage location relating to each working register for target system and means for accessing said table at a location derivable from the register number assignment of the operands of an instruction, examining a linear code stream which is to be optimized, sequentially in reverse order, if an instruction being evaluated is a non-computational "label" obtaining the next instruction, if an instruction is a return or branch instruction setting the significance value of all of the array storage locations to "all significant" and obtaining the next instruction, determining for each computational type instruction, the maximum significance value of its result and specifying this significance value as the required significance values for its two input operands, determining the significance value for a particular result as being no greater than the significance value required for a subsequent operation to which it will become an input, and continuing the evaluation process until all of the instructions in a particular instruction stream have been processed, and marking each instruction with a significance value marker representative of the results of said significant value process.
Claim 11
Dependent Claim
51 words
A method as claimed in claim 7 wherein an 'add' or 'subtract' instruction is obtained and which comprises setting or adding to the significant bits of each input register all the bits at and to the right of the leftmost significant bit of the result register, in said significant bit table.
Claim 12
Dependent Claim
48 words
A method as claimed in claim 7 or claim 8 wherein the computational instruction comprises a "move register" or an "AND, OR, or EXOR" logical operation" including; setting or adding to the significant bits of each input register of the instruction, the significant bits of the result register.
Claim 13
Dependent Claim
31 words
A method as claimed in claim 7, 8 or 9 wherein the computational instruction comprises a "compare registers" operation including; setting the significant bits of each input register as "all significant."
Claim 14
Independent Claim
95 words
A method as claimed in any one of claims 7 to 10 wherein the computational instruction comprises a "store word" operation including; setting or adding a significance value to the significant bit table at the location relating to the register to be stored equal to the field length of a word in the target system and setting or adding a significance value to the significant bit table at locations related to the base and index registers, a value equal to the field length of the base and index fields required by the target system memory.
Claim 15
Independent Claim
94 words
A method as claimed in any one of claims 7 to 11 wherein the computational instruction comprises a "store byte" operation including; setting or adding a significance value to the significance bit table at the location relating to the register to be stored equal to the field length of a byte in the target system and setting or adding a significance value to the significant bit table locations related to the base and index registers, a value equal to the field length of the base and index field required by the target system memory.
Claim 16
Independent Claim
56 words
A method as claimed in any one of claims 7 to 12 wherein the computational instruction comprises an "AND immediate" instruction including; setting or adding to the significance value in the significant bit table at the location relating to the input register, the significance value of the result of the instruction, 'AND'ed' with the "immediate mask."