Claims Analysis
Total Claims: 13
Claim 1
Independent Claim
180 words
In a computer system, a method for determining instrumentation points in a computer program comprising the steps of: a) creating a control flow graph for the computer program, the control flow graph including a plurality of nodes, each node connected to at least one other node by a directed edge; b) selecting a node of the control flow graph as a starting point for a path; c) beginning with the selected starting point node, following directed edges of the control flow graph in a directed manner to determine which nodes and edges are part of the path, d) after determining which nodes and edges are part of the path, repeating steps b) and c) until every node in the control flow graph is determined to be part of a path, whereby each node is part of only one path, and e) after every node in the control flow graph is determined to be part of a path, selecting as instrumentation points those edges in the control flow graph that are not determined to be part of one of the paths.
Claim 2
Dependent Claim
180 words
In a computer system, a method for determining instrumentation points in a computer program comprising the steps of: a) creating a control flow graph for the computer program, the control flow graph including a plurality of nodes, each node connected to at least one other node by a directed edge; b) selecting a node of the control flow graph as a starting point for a path; c) beginning with the selected starting point node, following directed edges of the control flow graph in a directed manner to determine which nodes and edges are part of the path, d) after determining which nodes and edges are part of the path, repeating steps b) and c) until every node in the control flow graph is determined to be part of a path, whereby each node is part of only one path, and e) after every node in the control flow graph is determined to be part of a path, selecting as instrumentation points those edges in the control flow graph that are not determined to be part of one of the paths.
Claim 3
Dependent Claim
190 words
In a computer system, a method for determining which edges in control flow graph should be instrumented to obtain execution counts for each node in the control flow graph, the control flow graph including a plurality of nodes, each node connected to at least one other node by a directed edge, the method comprising the steps of: a) selecting a node in the control flow graph as a starting point for a thread of execution; b) beginning with the selected node, following the directed edges of the control flow graph in a directed manner to determine which nodes and edges are part of the thread of execution; c) after determining which nodes and edges are part of the thread of execution, repeating steps (a) and (b) until every node in the control flow graph is part of a thread of execution, whereby each node is part of only one thread of execution; and d) after all of the threads of execution in the control flow graph are identified, selecting those edges in the control flow graph that are not part of one of the determined threads of execution for instrumentation.
Claim 4
Dependent Claim
190 words
In a computer system, a method for determining which edges in control flow graph should be instrumented to obtain execution counts for each node in the control flow graph, the control flow graph including a plurality of nodes, each node connected to at least one other node by a directed edge, the method comprising the steps of: a) selecting a node in the control flow graph as a starting point for a thread of execution; b) beginning with the selected node, following the directed edges of the control flow graph in a directed manner to determine which nodes and edges are part of the thread of execution; c) after determining which nodes and edges are part of the thread of execution, repeating steps (a) and (b) until every node in the control flow graph is part of a thread of execution, whereby each node is part of only one thread of execution; and d) after all of the threads of execution in the control flow graph are identified, selecting those edges in the control flow graph that are not part of one of the determined threads of execution for instrumentation.
Claim 5
Dependent Claim
98 words
The method of claim 2 wherein the control flow graph is directed such that each node has an entrance edge and an exit edge, and wherein the step of traversing the control flow graph includes the steps of: after selecting the node in the control flow graph as a starting point for the thread of execution, determining which one of the exit edges should be part of the thread of execution; and selecting a node in the control flow graph that has the determined exit edge as an input edge to be part of the thread of execution.
Claim 6
Dependent Claim
138 words
The method of claim 3 wherein the step of determining which one of the exit edges should be part of the thread of execution includes the steps of: determining how many exit edges are associated with the node; when two exit edges are associated with the node, determining whether either of the exit edges are an entrance edge for a node that is part of the thread of execution; when both exit edges are an entrance edge for a node that is part of the thread of execution, determining that neither exit edge should be part of the thread of execution; and when one exit edge is an entrance edge for a node that is part of the thread of execution, back tracking on the thread of execution until a node is encountered that has two exit edges.
Claim 7
Dependent Claim
196 words
A computer-readable storage device containing instructions for controlling a computer system to determine which edges in control flow graph should be instrumented to obtain execution counts for each node in the control flow graph, the control flow graph including a plurality of nodes, each node connected to at least one other node by a directed edge, by a method comprising the steps of: a) selecting a node in the control flow graph as a starting point for a thread of execution; b) beginning with the selected node, following the directed edges of the control flow graph in a directed manner to determine which nodes and edges are part of the thread of execution; c) after determining which nodes and edges are part of the thread of execution, repeating steps (a) and (b) until every node in the control flow graph is part of a thread of execution, whereby each node is part of only one thread of execution; and d) after all of the threads of execution in the control flow graph are identified, selecting those edges in the control flow graph that are not part of one of the determined threads of execution for instrumentation.
Claim 8
Dependent Claim
196 words
A computer-readable storage device containing instructions for controlling a computer system to determine which edges in control flow graph should be instrumented to obtain execution counts for each node in the control flow graph, the control flow graph including a plurality of nodes, each node connected to at least one other node by a directed edge, by a method comprising the steps of: a) selecting a node in the control flow graph as a starting point for a thread of execution; b) beginning with the selected node, following the directed edges of the control flow graph in a directed manner to determine which nodes and edges are part of the thread of execution; c) after determining which nodes and edges are part of the thread of execution, repeating steps (a) and (b) until every node in the control flow graph is part of a thread of execution, whereby each node is part of only one thread of execution; and d) after all of the threads of execution in the control flow graph are identified, selecting those edges in the control flow graph that are not part of one of the determined threads of execution for instrumentation.
Claim 9
Dependent Claim
99 words
The computer-readable medium of claim 5 wherein the control flow graph is directed such that each node has an entrance edge and an exit edge, and wherein the step of traversing the control flow graph includes the steps of: after selecting the node in the control flow graph as a starting point for the thread of execution, determining which one of the exit edges should be part of the thread of execution; and selecting a node in the control flow graph that has the determined exit edge as an input edge to be part of the thread of execution.
Claim 10
Dependent Claim
139 words
The computer-readable medium of claim 6 wherein the step of determining which one of the exit edges should be part of the thread of execution includes the steps of: determining how many exit edges are associated with the node; when two exit edges are associated with the node, determining whether either of the exit edges are an entrance edge for a node that is part of the thread of execution; when both exit edges are an entrance edge for a node that is part of the thread of execution, determining that neither exit edge should be part of the thread of execution; and when one exit edge is an entrance edge for a node that is part of the thread of execution, back tracking on the thread of execution until a node is encountered that has two exit edges.
Claim 11
Independent Claim
195 words
A method in a computer system for identifying instrumentation points for a computer program, the computer program represented by a control flow graph having nodes and edges, each node representing a basic block of the computer program, each edge representing flow control from one basic block to another basic block, the method comprising: designating a root node of the control flow graph to be visited; and repeating the following until all nodes designated to be visited have already been visited, visiting a node designated to be visited that has not yet been visited; and repeat the following until the node currently being visited has already been visited, when an output edge from the currently visited node that does not point to a node that has already been visited, selecting that output edge; identifying the selected output edge as not to be instrumented; when a non-selected output edge points to a node that has not yet been visited, designating the node pointed to by the non-selected edge as to be visited; and visiting the node pointed to by the selected output edge wherein all edges other than those identified as not to be instrumented are instrumented.
Claim 12
Independent Claim
195 words
A method in a computer system for identifying instrumentation points for a computer program, the computer program represented by a control flow graph having nodes and edges, each node representing a basic block of the computer program, each edge representing flow control from one basic block to another basic block, the method comprising: designating a root node of the control flow graph to be visited; and repeating the following until all nodes designated to be visited have already been visited, visiting a node designated to be visited that has not yet been visited; and repeat the following until the node currently being visited has already been visited, when an output edge from the currently visited node that does not point to a node that has already been visited, selecting that output edge; identifying the selected output edge as not to be instrumented; when a non-selected output edge points to a node that has not yet been visited, designating the node pointed to by the non-selected edge as to be visited; and visiting the node pointed to by the selected output edge wherein all edges other than those identified as not to be instrumented are instrumented.
Claim 13
Dependent Claim
21 words
The method of claim 8 wherein the designating of a node to be visited adds the node to a node list.