IP Library Granted Patent US 7,120,904
Granted Patent B1
US 7,120,904 · App. 09/552,292 · Granted Oct 10, 2006

Data-flow method for optimizing exception-handling instructions in programs

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,120,904
App. No.
09/552,292
Granted
Oct 10, 2006
Kind
B1
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.

Claims (30)

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.

2. The computer-implemented method of claim 1 , wherein the states of the data structure are represented as paths on a tree of nodes where:

each path traverses the tree towards the root; and

each node on the path represent a component of the state.

3. The computer-implemented method of claim 1 , wherein the data structure represents actions to be taken by the program if an exception occurs.

4. The computer-implemented method of claim 3 , wherein the selected program points are the points of execution immediately before instructions that might cause an exception.

5. The computer-implemented method of claim 3 , further comprising representing the actions to be taken as exception paths in a graph.

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.

7. The computer-implemented method of claim 6 wherein the data structure is an exception handling stack.

8. The computer-implemented method of claim 7 wherein the components are a pointer to the exception handling stack and an exception handling data structure.

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.

10. The machine-readable medium of claim 9 , wherein the states of the data structure are represented as paths on a tree of nodes where:

each path traverses the tree towards the root; and

each node on the path represent a component of the state.

11. The machine-readable medium of claim 9 , wherein the data structure represents actions to be taken by the program if an exception occurs.

12. The machine-readable medium of claim 7 , wherein the selected program points are the points of execution immediately before instructions that might cause an exception.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 4, 2013
From: INTEL CORPORATION
To: MICRON TECHNOLOGY, INC.
Reel/Frame 030747/0001 →