IP Library Granted Patent US 7,127,710
Granted Patent B2
US 7,127,710 · App. 10/178,608 · Granted Oct 24, 2006

Identifying pure pointers to disambiguate memory references

Assignee: Intel Corporation
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,127,710
App. No.
10/178,608
Granted
Oct 24, 2006
Kind
B2
Abstract

In one embodiment, disambiguation of memory references, such as structure field accesses, of a computer program is performed. Disambiguation may be effected by identifying pure pointer variables within the computer program and applying at least one disambiguation rule to memory references associated with the pure pointers to determine whether the references are disjoint.

Claims (36)

1. A computer-implemented method comprising:

initializing a plurality of pointers of a computer program as pure pointers;

analyzing an assignment statement of said computer program relating to one of said initialized pure pointers for compliance with at least one preselected condition; and

converting said one pointer from a pure pointer to a non-pure pointer if said at least one preselected condition is met.

2. The method of claim 1 , further comprising performing said analyzing and said converting until no further non-pure pointers exist in said computer program.

3. The method of claim 1 , wherein said analyzing further comprises determining whether a right hand side of said assignment statement involves an arithmetic operation.

4. The method of claim 1 , wherein said analyzing further comprises determining whether an address of a field is taken on a right hand side of said assignment statement.

5. The method of claim 1 , wherein said analyzing further comprises determining whether a right hand side of said assignment statement contains a non-pure pointer.

6. A computer-implemented method comprising:

initializing a plurality of pointers of a computer program as pure pointers;

analyzing said computer program for an assignment statement;

resetting a pointer associated with said assignment statement from a pure pointer to a non-pure pointer if a predetermined condition is met;

iteratively performing said analyzing and said resetting until no further non-pure pointers can be reset in said computer program; and

disambiguating a remaining group of said pure pointers.

7. The method of claim 6 , wherein said predetermined condition comprises at least one of:

when a right hand side of said assignment statement involves an arithmetic operation;

when an address of a field is taken on a right hand side of said assignment statement; and

when a right hand side of said assignment statement contains a non-pure pointer.

8. The method of claim 6 , wherein said disambiguating comprises applying a preselected disambiguation rule to pairs of memory references associated with said remaining group of said pure pointers.

9. An article comprising a machine-readable storage medium containing instructions that if executed enables a system to:

initialize a plurality of pointers of a computer program as pure pointers;

analyze said computer program for an assignment statement;

reset a pointer associated with said assignment statement from a pure pointer to a non-pure pointer if a predetermined condition is met;

iteratively perform said analyzing and said resetting until no further non-pure pointers can be reset in said computer program; and

disambiguate a remaining group of said pure pointers.

10. The article of claim 9 , wherein said disambiguate comprises applying a preselected disambiguation rule to pairs of memory references associated with said remaining group of said pure pointers.

11. The article of claim 9 , wherein said predetermined condition comprises at least one of:

when a right hand side of said assignment statement involves an arithmetic operation;

when an address of a field is taken on a right hand side of said assignment statement; and

when a right hand side of said assignment statement contains a non-pure pointer.

12. An article comprising a machine-readable storage medium containing instructions that if executed enables a system to:

initialize all of a plurality of pointers of a computer program as pure pointers;

analyze an assignment statement of said computer program relating to one of said initialized pure pointers for compliance with at least one preselected condition; and

convert said one pointer from a pure pointer to a non-pure pointer if said at least one preselected condition is met.

13. The article of claim 12 , further comprising instructions that if executed enable said system to said analyze and said convert until no further non-pure pointers exist in said computer program.

14. The article of claim 12 , wherein the computer program includes a plurality of variables, further comprising instructions that if executed enable said system to initialize each of the plurality of variables within the computer program as a pure variable via initialization of the plurality of variables within a plurality of attribute lists of a compiler.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2014
From: INTEL CORPORATION
To: SONY CORPORATION OF AMERICA
Reel/Frame 032893/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2002
From: GHIYA, RAKESH; LAVERY, DANIEL; SEHR, DAVID
To: INTEL CORPORATION
Reel/Frame 013055/0161 →
Continuity (1)
Related Publication 20030237077A1 · Dec 25, 2003