Claims Analysis
Total Claims: 31
Claim 1
Independent Claim
129 words
A computer-based system for solving monotone information propagation problems during the optimization of computer code, comprising: optimizer means for optimizing a source program represented by a data flow framework that includes a flow graph, wherein said optimizer means comprises: (a) first constructing means for constructing a sparse evaluation graph and a sparse map, wherein said sparse map maps edges from the flow graph to nodes in said sparse evaluation graph; (b) evaluator means connected to said first constructing means for evaluating said sparse evaluation graph in relation to said data flow framework in order to determine a partial solution to a monotone information propagation problem; and (c) combiner means for applying said sparse map to said partial solution to obtain an extended solution to said monotone information propagation problem.
Claim 2
Dependent Claim
129 words
A computer-based system for solving monotone information propagation problems during the optimization of computer code, comprising: optimizer means for optimizing a source program represented by a data flow framework that includes a flow graph, wherein said optimizer means comprises: (a) first constructing means for constructing a sparse evaluation graph and a sparse map, wherein said sparse map maps edges from the flow graph to nodes in said sparse evaluation graph; (b) evaluator means connected to said first constructing means for evaluating said sparse evaluation graph in relation to said data flow framework in order to determine a partial solution to a monotone information propagation problem; and (c) combiner means for applying said sparse map to said partial solution to obtain an extended solution to said monotone information propagation problem.
Claim 3
Dependent Claim
14 words
The computer-based system of claim 1, wherein said extended solution is a complete solution.
Claim 4
Dependent Claim
28 words
The computer-based system of claim 1, further comprising compiler means for transforming said source program into optimized form, wherein said optimizer means is part of said compiler means.
Claim 5
Dependent Claim
68 words
The computer-based system of claim 1, wherein said first constructing means comprises: (1) means for determining nodes for said sparse evaluation graph; and (2) an edge generator, comprising: (A) generating means for generating edges for said sparse evaluation graph; and (B) mapping means for mapping edges from a flow graph contained in said data flow framework to nodes in said sparse evaluation graph to form said sparse map.
Claim 6
Dependent Claim
33 words
The computer-based system of claim 4, wherein said generating means for generating edges further includes means for providing two different optimizations related to constant transference to eliminate edges from said sparse evaluation graph.
Claim 7
Dependent Claim
29 words
The computer-based system of claim 1, wherein said optimizer means further comprises second construction means for constructing a dominator tree and a dominance frontier from said data flow framework.
Claim 8
Dependent Claim
16 words
The computer-based system of claim 1, wherein said evaluator means iteratively evaluates said sparse evaluation graph.
Claim 9
Dependent Claim
17 words
The computer-based system of claim 1, wherein said evaluator means evaluates said sparse evaluation graph by elimination.
Claim 10
Dependent Claim
26 words
The computer-based system of claim 1, wherein said optimizer means further comprises means for reversing a control flow graph for input into said first constructing means.
Claim 11
Dependent Claim
20 words
The computer-based system of claim 1, further comprising means for analyzing said source program for liveness using said extended solution.
Claim 12
Dependent Claim
21 words
The computer-based system of claim 1, further comprising means for analyzing said source program for reaching definitions using said extended solution.
Claim 13
Dependent Claim
21 words
The computer-based system of claim 1, further comprising means for analyzing said source program for reaching uses using said extended solution.
Claim 14
Dependent Claim
21 words
The computer-based system of claim 1, further comprising means for analyzing said source program for constant propagation using said extended solution.
Claim 15
Dependent Claim
151 words
A computer-based method for solving monotone information propagation problems during the optimization of source code, comprising the steps of: (1) entering source code into an optimizer, said source code represented by a data flow framework, said data flow framework includes a flow graph; (2) defining a dominator tree from said flow graph, and defining a dominance frontier from said dominator tree and said flow graph; (3) constructing a sparse evaluation graph and a sparse map from said data flow framework, said dominator tree, and said dominance frontier, wherein said sparse map maps edges from said flow graph to nodes in said sparse evaluation graph; (4) evaluating said sparse evaluation graph with respect to said data flow framework, in order to determine a partial solution to a monotone information propagation problem; and (5) applying said sparse map to said partial solution to obtain an extended solution to said monotone information propagation problem.
Claim 16
Dependent Claim
151 words
A computer-based method for solving monotone information propagation problems during the optimization of source code, comprising the steps of: (1) entering source code into an optimizer, said source code represented by a data flow framework, said data flow framework includes a flow graph; (2) defining a dominator tree from said flow graph, and defining a dominance frontier from said dominator tree and said flow graph; (3) constructing a sparse evaluation graph and a sparse map from said data flow framework, said dominator tree, and said dominance frontier, wherein said sparse map maps edges from said flow graph to nodes in said sparse evaluation graph; (4) evaluating said sparse evaluation graph with respect to said data flow framework, in order to determine a partial solution to a monotone information propagation problem; and (5) applying said sparse map to said partial solution to obtain an extended solution to said monotone information propagation problem.
Claim 17
Dependent Claim
138 words
The computer-based method of claim 14, wherein said step of constructing said sparse evaluation graph comprises the steps of: (1) determining a set of sparse evaluation graph nodes, comprising the steps of: (i) defining a set of Active Nodes by forming a set that includes a starting root node along with all nodes that do not have an identity transfer function; (ii) defining a set of Meet Nodes by taking the iterated dominance frontier of said active nodes; and (iii) combining said set of Active Nodes with said set of Meet Nodes; (2) initializing each input of said sparse evaluation graph nodes to the best possible solution; (3) determining a set of edges for said sparse evaluation graph; and (4) mapping edges from said flow graph to nodes in said sparse evaluation graph to form said sparse map.
Claim 18
Dependent Claim
14 words
The computer-based method of claim 14, wherein said extended solution is a complete solution.
Claim 19
Dependent Claim
19 words
The computer-based method of claim 14, wherein said step of evaluating said sparse evaluation graph is accomplished by iteration.
Claim 20
Dependent Claim
19 words
The computer-based method of claim 14, wherein said step of evaluating said sparse evaluation graph is accomplished by elimination.
Claim 21
Dependent Claim
21 words
The computer-based method of claim 14, further comprising the step of analyzing said source program for liveness using said extended solution.
Claim 22
Dependent Claim
19 words
The computer-based method of claim 14, further comprising analyzing said source code for "reaching definitions" using said extended solution.
Claim 23
Dependent Claim
19 words
The computer-based method of claim 14, further comprising analyzing said source code for "reaching uses" using said extended solution.
Claim 24
Dependent Claim
19 words
The computer-based method of claim 14, further comprising analyzing said source code for "constant propagation" using said extended solution.
Claim 25
Dependent Claim
192 words
The computer-based method of claim 15, wherein said step of determining a set of edges comprises the step of using a pre-order and post-order traversal of said dominator tree nodes to vis each node twice; (a) wherein said pre-order traversal of said dominator tree comprises the steps of: (i) determining whether said node being visited is in said set of Meet Nodes, and if not, then generating a propagating edge for said sparse evaluation graph; (ii) checking to see if said node being visited is in said set of sparse evaluation graph nodes, and if so, then pushing said node being visited onto a stack; (iii) for each out-edge of said node being visited, map said out-edge with said node on the top of said stack to form said sparse map; (iv) generating a meet edge for said sparse evaluation graph if said successor node is in said set of Meet Nodes; and (b) checking during said post-order traversal of said dominator tree to determine whether said node being visited is in said set of sparse evaluation graph nodes, and if so, then popping said sparse evaluation graph node from said stack.
Claim 26
Dependent Claim
121 words
The computer-based method of claim 23, wherein said step of generating a propagating edge and said step of generating a meet edge, comprises the steps of: (1) excluding a potential edge from said sparse evaluation graph if the target of said potential edge is either a root node or is not in said sparse evaluation graph; (2) determining whether the target of said potential edge has a constant transfer function, and if so, then disregarding said potential edge; and (3) determining whether the source of said potential edge has a constant transfer function, and if so, then propagating this information into the node that is a target of said potential edge, otherwise insert said potential edge into said sparse evaluation graph.
Claim 27
Dependent Claim
145 words
The computer-based system of claim 1, wherein said means for constructing said sparse evaluation graph comprises: (1) means for determining a set of sparse evaluation graph nodes, comprising: (i) means for defining a set of Active Nodes by forming a set that includes all nodes that do not have an identity transfer function and a starting root node; (ii) means for defining a set of Meet Nodes by taking the iterated dominance frontier of said active nodes; and (iii) means for combining said set of Active Nodes with said set of Meet Nodes; (2) means for initializing each input of said sparse evaluation graph nodes to the best possible solution; (3) means for determining a set of edges for said sparse evaluation graph; and (4) means for mapping edges from said flow graph to nodes in said sparse evaluation graph to form said sparse map.
Claim 28
Dependent Claim
259 words
A computer-based method of constructing a sparse evaluation graph and a sparse map from a source program represented by a data flow framework, the data flow framework includes a flow graph representing the source program and a formal basis for describing the behavior of nodes within the flow graph, wherein the sparse evaluation graph and sparse map are used for solving a monotone information propagation problem, the computer-based method comprising the steps of: (1) generating a dominator tree from the flow graph, and generating a dominance frontier from said dominator tree and the flow graph; (2) generating a set of sparse evaluation graph nodes, comprising the steps of: (i) defining a set of Active Nodes by forming a set that includes all nodes that do not have an identity transfer function and a starting root node; (ii) defining a set of Meet Nodes by taking the iterated dominance frontier of said active nodes; and (iii) combining said set of Active Nodes with said set of Meet Nodes; (3) initializing each input of said sparse evaluation graph nodes to the best possible solution; (4) determining a set of sparse evaluation graph edges; and (5) mapping edges from the flow graph to nodes in the sparse evaluation graph to form the sparse map; and (6) evaluating said sparse evaluation graph with respect to said data flow framework, in order to determine a partial solution to a monotone information propagation problem; and (7) applying said sparse map to said partial solution to obtain an extended solution to said monotone information propagation problem.
Claim 29
Dependent Claim
259 words
A computer-based method of constructing a sparse evaluation graph and a sparse map from a source program represented by a data flow framework, the data flow framework includes a flow graph representing the source program and a formal basis for describing the behavior of nodes within the flow graph, wherein the sparse evaluation graph and sparse map are used for solving a monotone information propagation problem, the computer-based method comprising the steps of: (1) generating a dominator tree from the flow graph, and generating a dominance frontier from said dominator tree and the flow graph; (2) generating a set of sparse evaluation graph nodes, comprising the steps of: (i) defining a set of Active Nodes by forming a set that includes all nodes that do not have an identity transfer function and a starting root node; (ii) defining a set of Meet Nodes by taking the iterated dominance frontier of said active nodes; and (iii) combining said set of Active Nodes with said set of Meet Nodes; (3) initializing each input of said sparse evaluation graph nodes to the best possible solution; (4) determining a set of sparse evaluation graph edges; and (5) mapping edges from the flow graph to nodes in the sparse evaluation graph to form the sparse map; and (6) evaluating said sparse evaluation graph with respect to said data flow framework, in order to determine a partial solution to a monotone information propagation problem; and (7) applying said sparse map to said partial solution to obtain an extended solution to said monotone information propagation problem.
Claim 30
Dependent Claim
193 words
The computer-based method of claim 26, wherein said step of determining a set of edges comprises the step of using a pre-order and post-order traversal of said dominator tree nodes to visit each node twice; (a) wherein said pre-order traversal of said dominator tree comprises the steps of: (i) determining whether said node being visited is in said set of Meet Nodes, and if not, then generating a propagating edge for said sparse evaluation graph; (ii) checking to see if said node being visited is in said set of sparse evaluation graph nodes, and if so, then pushing said node being visited onto a stack; (iii) for each out-edge of said node being visited, map said out-edge with said node on the top of said stack to form said sparse map; and (iv) generating a meet edge for said sparse evaluation graph if said successor node is in said set of Meet Nodes; and (b) checking during said post-order traversal of said dominator tree to determine whether said node being visited is in said set of sparse evaluation graph nodes, and if so, then popping said sparse evaluation graph node form said stack.
Claim 31
Dependent Claim
121 words
The computer-based method of claim 27, wherein said step of generating a propagating edge and said step of generating a meet edge, comprises the steps of: (1) excluding a potential edge from said sparse evaluation graph if the target of said potential edge is either a root node or is not in the sparse evaluation graph; (2) determining whether the target of said potential edge has a constant transfer function, and if so, then disregarding said potential edge; and (3) determining whether the source of said potential edge has a constant transfer function, and if so, then propagating this information into the node that is a target of said potential edge, otherwise insert said potential edge into the sparse evaluation graph.