×

Method and apparatus for data flow analysis

  • US 6,226,789 B1
  • Filed: 01/29/1996
  • Issued: 05/01/2001
  • Est. Priority Date: 01/29/1996
  • Status: Expired due to Term
First Claim
Patent Images

1. A method executed in a computer system for performing data flow analysis, the method comprising the steps of:

  • A. performing local data flow analysis upon one or more basic blocks of a routine, each of said basic blocks representing a sequence of one or more instructions with no intervening entry or exit point, said local data flow analysis producing local data flow analysis information for each of said basic blocks describing data access of a state container within each of said basic blocks;

    B. for each of the basic blocks of the routine;

    (i) determining upwardly exposed data references of state containers which are upwardly exposed to definitions of said respective state containers defined in the other said basic blocks, the upwardly exposed data references being dependent upon the definitions of said state containers in said other basic blocks, each state container representing a piece of state information alterable by one or more of said definitions, and (ii) producing, from said determination, local data flow analysis summary information for each state container accessed by the basic block; and

    C. performing, using only the produced local data flow analysis summary information, global data flow analysis comprising the step of;

    determining merge points and adding corresponding merge point definitions to a list of definitions for the routine only when it has been determined from the local data flow analysis summary information that there is, in a first basic block, a data reference of a state container upwardly exposed to a definition, in a second basic block, of said state container, each of said merge points being a joining definition point within said routine for multiple definitions of said state container, wherein said local data flow analysis information includes summary information, and the step of determining merge points and adding merge point definitions of said routine further comprises the steps of creating a list of definitions for said routine using said summary information from said step of performing said local data flow analysis, determining if there is at least one upwardly exposed data reference of a state container using said summary information, and in response to said determining step adding merge point definitions corresponding to said merge points using said list of definitions, including creating one or more basic block state containers, each of said one or more basic block state containers representing an artificial definition of a state container, each of said one or more basic block state containers being associated with a corresponding basic block and an associated state container and describing how said associated state container is accessed in said corresponding basic block, said artificial definition of an associated state container representing merging definitions for said associated state container in which said corresponding basic block contains no local references and definitions of said associated state container.

View all claims
  • 6 Assignments
Timeline View
Assignment View
    ×
    ×