Data-flow method of analyzing definitions and uses of L values in programs
US6370685B1 · kind B1 · utility
Assignee
Inventor
Key dates
| Filing date | Jan 6, 1999 |
| Grant date | Apr 9, 2002 |
| Priority date | — |
| Expiry date | Jan 6, 2019 |
Classification
- Technology area (CPC G)Physics
- CPC primaryG06F8/433
- WIPO fieldComputer technology
- WIPO sectorElectrical engineering
Abstract
A method for analyzing and optimizing programs that contain pointers or aggregates or both, such as found in the languages C, C++, FORTRAN-90, Ada, and Java is disclosed. The program is represented as a control flow graph. The method applies to storage locations (lvalues) computed by instructions in a program. The data flow analysis distinguishes when a definition might reach a use, and if so, whether the expression defining the address of the defined lvalue may have changed. The method ignores changes to the addressing expression where a definition does not reach. The lattice values and functions employed by the analysis are compactly represented as packed bit vectors, and operated upon in a parallel bitwise fashion. Despite the generality of definitions that define lvalues specified by expressions, the present invention computes the reachability of the definitions with a single data-flow framework that requires only one fixed-point solution per data-flow problem.
Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.