Method and system for translating a software implementation with data-dependent conditions to a data flow graph with conditional expressions
AssigneeTexas Instruments Incorporated
InventorNeal M. Gafter
Life of this patent
Estimating the term…
Loading patent…
AssigneeTexas Instruments Incorporated
InventorNeal M. Gafter
Estimating the term…
A method for symbolic evaluation of an algorithm is provided. The algorithm has at least one conditional branching statement dependent on the value of at least one input datum. The method comprises the steps of converting the algorithm into a control flow graph having a plurality of nodes, each node representing at least one of the plurality of statements. The control flow graph further includes a conditional branching node for the data-dependent conditional branching statement. Reverse dominators are then computed for each of the plurality of nodes, from which a meet point node for each conditional branching node is derived. The method further provides for constructing a shadow symbol table housing the variables, and constructing a duplicate shadow symbol table for each possible value of the datum in response the conditional branching node. The method further evaluates each node symbolically in succession according to control flow, and assigns a symbolic value to each the variables in the shadow symbol tables. The conditional branching node is also evaluated by assuming each possible value of the datum for each branch and assigning symbolic values to each of the variables in the shadow symbol table. The nodes contained in each branch are evaluated until the meet point node is reached. The duplicate shadow symbol tables are then merged.
A computer implemented method, the computer including a processor and a memory, for translating a software implementation of an application stored in said memory to a data flow graph in said memory, said software implementation having a plurality of statements manipulating values of a plurality of variables, said plurality of statements including at least one data-dependent conditional branching statement, said at least one data-dependent conditional branching statement depending on the value of at least one input datum, the method comprising the steps of:
A computer implemented system, said computer including a processor and a memory, for translating a software implementation of an application stored in said memory to a data flow graph where said software implementation has at least one conditional branching statement, said conditional branching statement includes a data-dependent condition having a value, and said conditional branching leads to at least two branches which assign different values to a variable depending on the value of the data-dependent condition, comprising:
Dependencies are inferred from the claim text.