Patent · US Expired

Method of analyzing definitions and uses in programs with pointers and aggregates in an optimizing compiler

US5790866A · kind A · utility

25Cited by
3References
13Claims
0Family size

Assignee

Inventor

Key dates

Filing dateFeb 13, 1995
Grant dateAug 4, 1998
Priority date
Expiry dateFeb 13, 2015

Classification

  • Technology area (CPC G)Physics
  • CPC primaryG06F8/4435
  • WIPO fieldComputer technology
  • WIPO sectorElectrical engineering

Abstract

A method for analyzing and optimizing programs that contain pointers and/or aggregates, such as found in the languages C, C++, FORTRAN-90, and Ada. The method applies to storage locations (lvalues) and values (rvalues) computed by expressions. Data-flow analysis is performed on two levels. The bottom level determines when an rvalue computed at one point in a program is the same if recomputed at a later point in the program. The top level computes reaching definitions, based upon information provided by the bottom level. Each destination lvalue may be designated by an arbitrary rvalue (pointer-expression). Splitting of data-flow analysis into two levels allows computation of reaching definitions that involve assignments to lvalues with designating rvalues that are arbitrary expressions. Furthermore, for aggregate lvalues, which themselves may contain components that are pointers to other aggregates, data-flow analysis is done on a component-by-component basis. Data-flow analysis is then used to forward-substitute definitions and remove "dead" assignments.

Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.