Patent ID: 6173443
Filing Date: 2001-01-09
Classification: G06F

Abstract:
A computer implemented method of reducing execution time of a computer program which includes a loop, said loop including a loop body portion in which repeated calculations occur, a loop entry portion situated prior to said loop body portion and a loop exit portion situated after said loop body portion wherein calculations which access a plurality of data value storage means included within at least one data array are performed in said loop, each of said data value storage means addressed by an index value, said method including the steps of:assigning each one of said plurality of data value storage means to a respective one of a plurality of registers;creating at least one computer program instruction which loads data from a memory to ones of said plurality of registers corresponding to other than a specified data value storage means of said plurality of data value storage means addressed by a largest index value, said at least one computer program instruction created for computer execution prior to loop entry;creating a computer program data loading instruction which loads data from the memory to said register of said plurality of registers corresponding to said data value storage means addressed by the largest index value, said further computer program instruction created for computer execution within the loop body;creating a computer program data transfer instruction within the loop body, which transfers the contents of one of said plurality of registers corresponding to one of said plurality of data value storage means to another one of said plurality of registers corresponding to another one of said plurality of data value storage means; andcreating at least one computer program memory storage instruction if it is necessary to store contents of said data value storage means in the memory, wherein said at least one computer program memory storage instruction is created so that data in the data value storage means having the smallest index value is stored in the memory during the loop body, and data in all other of said data value storage means are stored in the memory after the loop return.