Claims Analysis
Total Claims: 27
Claim 1
Independent Claim
124 words
A complete executed method for solving interprocedural problems on incomplete call graphs, comprising the steps of: (a) constructing a call graph having one or more nodes and one or more edges connecting said nodes, wherein each said node corresponds to a procedure in a computer program and each said edge corresponds to a procedure call; (b) updating said call graph with initial edge and node summary annotation information needed to solve a given interprocedural problem; (c) cloning said nodes having an unknown incoming edge, thereby creating one or more clones; (d) updating said call graph to reflect the creation of said clones created in step (c), thereby creating a purified call graph; and (e) solving said given interprocedural problem on said purified call graph.
Claim 2
Dependent Claim
124 words
A complete executed method for solving interprocedural problems on incomplete call graphs, comprising the steps of: (a) constructing a call graph having one or more nodes and one or more edges connecting said nodes, wherein each said node corresponds to a procedure in a computer program and each said edge corresponds to a procedure call; (b) updating said call graph with initial edge and node summary annotation information needed to solve a given interprocedural problem; (c) cloning said nodes having an unknown incoming edge, thereby creating one or more clones; (d) updating said call graph to reflect the creation of said clones created in step (c), thereby creating a purified call graph; and (e) solving said given interprocedural problem on said purified call graph.
Claim 3
Dependent Claim
63 words
The complete executed method of claim 1, further comprising: (f) creating a real clone for each clone created in step (c); (g) optimizing said real clone, thereby said real clone contains an optimized version of a procedure that solves said given interprocedural problem; and (h) updating procedure calls of said purified call graph to call said real clone, thereby creating updated procedure calls.
Claim 4
Dependent Claim
21 words
The complete executed method of claim 2, further comprising: (i) cleaning up said updated procedure calls of said purified call graph.
Claim 5
Dependent Claim
14 words
The complete executed method of claim 3, further comprising: (j) removing unnecessary real clones.
Claim 6
Dependent Claim
15 words
The complete executed method of claim 1, wherein said given interprocedural problem is constant propagation.
Claim 7
Dependent Claim
36 words
The complete executed method of claim 5, further comprising: (k) solving interprocedural alias analysis by determining whether a procedure can modify a parameter value; wherein step (k) is executed after step (a) and before step (b).
Claim 8
Dependent Claim
96 words
The complete executed method of claim 6, wherein step (b) comprises: (b.1) replacing a "formal -- mod" annotation that corresponds to a parameter value of a procedure with a "formal" annotation, if it is determined in step (k) that said procedure corresponding to said "formal -- mod" annotation cannot modify said parameter value; and (b.2) replacing said "formal -- mod" annotation that corresponds to a parameter value of a procedure with a "symbolic" annotation, if it is determined in step (k) that said procedure corresponding to said "formal -- mod" annotation can modify said parameter value.
Claim 9
Dependent Claim
25 words
The complete executed method of claim 5, wherein step (d) comprises: (d.1) redrawing unknown incoming edges of said call graph to point to said clones.
Claim 10
Dependent Claim
132 words
A computer system for solving interprocedural problems on incomplete call graphs, comprising: constructing means for constructing a call graph having one or more nodes and one or more edges connecting said nodes, wherein each said node corresponds to a procedure in a computer program and each said edge corresponds to a procedure call; first updating means for updating said call graph with initial edge and node summary annotation information needed to solve a given interprocedural problem; cloning means for cloning said nodes having an unknown incoming edge, thereby creating one or more clones; second updating means for updating said call graph to reflect the creation of said clones created by said cloning means, thereby creating a purified call graph; and solving means for solving said\given interprocedural problem on said purified call graph.
Claim 11
Dependent Claim
132 words
A computer system for solving interprocedural problems on incomplete call graphs, comprising: constructing means for constructing a call graph having one or more nodes and one or more edges connecting said nodes, wherein each said node corresponds to a procedure in a computer program and each said edge corresponds to a procedure call; first updating means for updating said call graph with initial edge and node summary annotation information needed to solve a given interprocedural problem; cloning means for cloning said nodes having an unknown incoming edge, thereby creating one or more clones; second updating means for updating said call graph to reflect the creation of said clones created by said cloning means, thereby creating a purified call graph; and solving means for solving said\given interprocedural problem on said purified call graph.
Claim 12
Dependent Claim
70 words
The computer system of claim 9, further comprising: creating means for creating a real clone for each clone created by said cloning means; optimizing means for optimizing said real clone, thereby said real clone contains an optimized version of a procedure that solves said given interprocedural problem; and third updating means for updating procedure calls of said purified call graph to call said real clone, thereby creating updated procedure calls.
Claim 13
Dependent Claim
22 words
The computer system of claim 10, further comprising: cleaning means for cleaning up said updated procedure calls of said purified call graph.
Claim 14
Dependent Claim
15 words
The computer system of claim 11, further comprising: removing means for removing unnecessary real clones.
Claim 15
Dependent Claim
14 words
The computer system of claim 9, wherein said given interprocedural problem is constant propagation.
Claim 16
Dependent Claim
43 words
The computer system of claim 13, further comprising: second solving means for solving interprocedural alias analysis by determining whether a procedure can modify a parameter value; wherein said second solving means is executed after said constructing means and before said first updating means.
Claim 17
Dependent Claim
107 words
The computer system of claim 14, wherein said first updating means comprises: first replacing means for replacing a "formal -- mod" annotation that corresponds to a parameter value of a procedure with a "formal" annotation, if it is determined by said second solving means that said procedure corresponding to said "formal -- mod" annotation cannot modify said parameter value; and second replacing means for replacing said "formal -- mod" annotation that corresponds to a parameter value of a procedure with a "symbolic" annotation, if it is determined by said second solving means that said procedure corresponding to said "formal -- mod" annotation can modify said parameter value.
Claim 18
Dependent Claim
28 words
The computer system of claim 13, wherein said second updating means comprises: redrawing means for redrawing unknown incoming edges of said call graph to point to said clones.
Claim 19
Dependent Claim
182 words
A computer program product for use with a computer system, comprising: a computer usable medium having a computer readable program code means embodied in said medium for enabling a processor to solve interprocedural problems on incomplete call graphs, said computer program product having: first program readable program code means for constructing a call graph having one or more nodes and one or more edges connecting said nodes, wherein each said node corresponds to a procedure in a computer program and each said edge corresponds to a procedure call; second program readable program code means for updating said call graph with initial edge and node summary annotation information needed to solve a given interprocedural problem; third program readable program code means for cloning said nodes having an unknown incoming edge, thereby creating one or more clones; fourth program readable program code means for updating said call graph to reflect the creation of said clones created by said cloning means, thereby creating a purified call graph; and fifth program readable program code means for solving said given interprocedural problem on said purified call graph.
Claim 20
Dependent Claim
182 words
A computer program product for use with a computer system, comprising: a computer usable medium having a computer readable program code means embodied in said medium for enabling a processor to solve interprocedural problems on incomplete call graphs, said computer program product having: first program readable program code means for constructing a call graph having one or more nodes and one or more edges connecting said nodes, wherein each said node corresponds to a procedure in a computer program and each said edge corresponds to a procedure call; second program readable program code means for updating said call graph with initial edge and node summary annotation information needed to solve a given interprocedural problem; third program readable program code means for cloning said nodes having an unknown incoming edge, thereby creating one or more clones; fourth program readable program code means for updating said call graph to reflect the creation of said clones created by said cloning means, thereby creating a purified call graph; and fifth program readable program code means for solving said given interprocedural problem on said purified call graph.
Claim 21
Dependent Claim
86 words
The computer program product of claim 17, further comprising: sixth program readable program code means for creating a real clone for each clone created by said third program readable program code means; seventh program readable program code means for optimizing said real clone, thereby said real clone contains an optimized version of a procedure that solves said given interprocedural problem; and eighth program readable program code means for updating procedure calls of said purified call graph to call said real clone, thereby creating updated procedure calls.
Claim 22
Dependent Claim
27 words
The computer program product of claim 18, further comprising: ninth program readable program code means for cleaning up said updated procedure calls of said purified call graph.
Claim 23
Dependent Claim
20 words
The computer program product of claim 19, further comprising: tenth program readable program code means for removing unnecessary real clones.
Claim 24
Dependent Claim
15 words
The computer program product of claim 17, wherein said given interprocedural problem is constant propagation.
Claim 25
Dependent Claim
57 words
The computer program product of claim 21, further comprising: eleventh program readable program code means for solving interprocedural alias analysis by determining whether a procedure can modify a parameter value; wherein said eleventh program readable program code means is executed after said first program readable program code means and before said second program readable program code means.
Claim 26
Dependent Claim
117 words
The computer program product of claim 22, wherein said second program readable program code means comprises: first replacing means for replacing a "formal -- mod" annotation that corresponds to a parameter value of a procedure with a "formal" annotation, if it is determined by said eleventh program readable program code means that said procedure corresponding to said "formal -- mod" annotation cannot modify said parameter value; and second replacing means for replacing said "formal -- mod" annotation that corresponds to a parameter value of a procedure with a "symbolic" annotation, if it is determined by said eleventh program readable program code means that said procedure corresponding to said "formal -- mod" annotation can modify said parameter value.
Claim 27
Dependent Claim
32 words
The computer program product of claim 21, wherein said fourth program readable program code means comprises: redrawing means for redrawing unknown incoming edges of said call graph to point to said clones.