Patent ID: 8024718

Claim:
A method of optimizing address expressions within source-level code, wherein the source-level code describes the functionality of an application to be executed on a digital device, the method comprising: inputting a first source-level code that describes the functionality of the application, the first source-level code comprising address computation code and a plurality of arrays with address expressions in at least one programming loop construct, wherein the address computation code or one of the address expressions has nonlinear operations; and transforming the first source-level code into a second source-level code that describes substantially the same functionality as the first source-level code, wherein the second source-level code has fewer nonlinear operations to be executed than the first source-level code, and wherein the second source level code has the same number of loop constructs as the first source-level code, wherein the digital device comprises at least one programmable instruction set processor and wherein transforming the first source-level code into a second source-level code comprises: executing a first code transformation comprising algebraic code transformations and common subexpression elimination code transformations, after executing the first code transformation, executing a second code transformation comprising code hoisting, and after executing the second code transformation, executing a third code transformation comprising induction analysis.