Method of replacing lvalues by variables in programs containing nested aggregates in an optimizing compiler
AssigneeKuck & Associates, Inc.
InventorArch D. Robison
Life of this patent
Estimating the term…
Loading patent…
AssigneeKuck & Associates, Inc.
InventorArch D. Robison
Estimating the term…
A method for analyzing and optimizing programs that define and use aggregate data structures. A program to be analyzed and optimized is inspected to find definitions and uses of lvalues, which are regions of memory. The lvalues may be denoted by program variables, pointer expressions, or components of aggregate lvalues. A data-flow solver determines where definitions of lvalues reach uses. A set of "least general unifiers" are computed for the definitions and uses. A replacement variable is created for each least general unifier that is determined to be replaceable. Each reference to an lvalue that corresponds to a replaceable least general unifier is replaced by a reference to the corresponding replacement variable or a component thereof. The method is applicable even in the presence of potential aliasing.
A method operable within an optimizing compiler that during compilation replaces references to general lvalues with variables, the method comprising the steps of:
Dependencies are inferred from the claim text.