Data-flow method for optimizing exception-handling instructions in programs
First Claim
1. For a computer-executable program that operates on a data structure, where the data structure must have a required state at selected program points, a computer-implemented method of transforming said program comprising:
- analyzing the program to determine the state of said data structure at said selected program points, wherein the data structure stores items on a first-in-last-out basis;
partitioning said determined state at each said program point into components that may each be set separately;
determining operations to be inserted into the program in order to set each component of the state at each selected program point based on flow equations for an up-safety and a down-safety of setting the state at each selected program point, wherein the operations assure that the data structure will be in the required state at the selected program points; and
placing said operations to eliminate partial redundancies of said operations.
10 Assignments
0 Petitions
Accused Products
Abstract
A method for analyzing and optimizing programs that operate on a data structure where the state of the data structure must be valid at certain program points. The program is represented as a control-flow graph. The method decomposes the state of the data structure into components, and applies partial redundancy elimination to place instructions that set the state of the data structure, with a variation that permits speculative placement. Application extends to manipulating a stack that keeps track of what to do should an exception arise during execution. In this context, a control-flow representation of contingencies is converted into placement of instructions that manipulate the stack.
35 Citations
12 Claims
-
1. For a computer-executable program that operates on a data structure, where the data structure must have a required state at selected program points, a computer-implemented method of transforming said program comprising:
-
analyzing the program to determine the state of said data structure at said selected program points, wherein the data structure stores items on a first-in-last-out basis; partitioning said determined state at each said program point into components that may each be set separately; determining operations to be inserted into the program in order to set each component of the state at each selected program point based on flow equations for an up-safety and a down-safety of setting the state at each selected program point, wherein the operations assure that the data structure will be in the required state at the selected program points; and placing said operations to eliminate partial redundancies of said operations. - View Dependent Claims (2, 3, 4, 5)
-
-
6. For a computer-executable program that operates on a data structure, where the data structure must have a required state at selected program points, a computer-implemented method of transforming said program comprising:
-
analyzing the program to determine the state of an instance of said data structure at said selected program points, wherein the data structure stores items on a first-in-last-out basis; partitioning said instance of said data structure into components; determining a set of one or more operations to be inserted into the program in order to set each component of the state at each selected program point based on flow equations for an up-safety and a down-safety of setting the state at each selected program point, wherein the operations assure that the data structure will be in the required state at the selected program points; computing placement of the set of operations to eliminate partial redundancies; and inserting the set of operations at said program points according to the computed placement. - View Dependent Claims (7, 8, 12)
-
-
9. A machine-readable medium having a set of instructions, which when executed by a set of one or more processors, causes said set of processors to perform operations comprising:
-
analyzing a program that operates on a data structure, which must have a required state at selected program points in the program, to determine the state of an instance of said data structure at said selected program points, wherein the data structure stores items on a first-in-last-out basis; partitioning said instance of said data structure into components; determining a set of one or more operations to be inserted into the program in order to set each component of the state at each selected program point based on flow equations for an up-safety and a down-safety of setting the state at each selected program point, wherein the operations assure that the data structure will be in the required state at the selected program points; computing placement of the set of operations to eliminate partial redundancies; and inserting the set of operations at said program points according to the computed placement. - View Dependent Claims (10, 11)
-
Specification