×

Data flow analysis of transactional processes

  • US 7,210,135 B2
  • Filed: 08/26/2003
  • Issued: 04/24/2007
  • Est. Priority Date: 08/26/2003
  • Status: Expired due to Fees
First Claim
Patent Images

1. A computer-implemented method of compiling computer code, comprising:

  • creating a flowgraph according to abstract computer instructions, wherein the flowgraph has a plurality of basic blocks and at least one data object, and wherein the abstract instructions are translated from a parse tree formed from computer code;

    assigning a depth-first order to the plurality of basic blocks;

    determining a dominance relationship between the plurality of basic blocks;

    determining whether any loops are present within the flowgraph and, if any loops are present, identifying the loops;

    determining a usage of the at least one data object;

    determining a creation point, destruction point and lock point for the at least one data object according to the usage, identified loops, dominance relationship and depth-first order of the plurality of basic blocks; and

    inserting instructions into the computer code to create the at least one data object at the creation point, to destroy the at least one data object at the destruction point and to lock the at least one data object at the lock point; and

    wherein determining a creation point further comprises;

    identifying a first use of the at least one data object and identifying a first basic block in which the first use occurs from the plurality of basic blocks, wherein the first use of the at least one data object is the original creation point;

    identifying a use of the at least one data object subsequent to the first use and identifying a second basic block in which the subsequent use occurs from the plurality of basic blocks;

    calculating an intersection of the pre-dominators of the first basic block with the pre-dominators of the second basic block;

    determining whether the intersection contains the first basic block; and

    choosing, if the intersection does not contain the first basic block, a new creation point from the intersection.

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