Patent US5937196A successfully refreshed from Google Patents.
US5937196A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Compiling with partial copy propagation
Assignee: International Business Machines Corp
•
Filing: 1997-09-19
•
Granted: 1999-08-10
•
Expires: 2017-09-19
Abstract
Abstract A compiler and method of compiling provide partial redundant copy elimination by eliminating copy statements having at least one eligible reachable use and at least one ineligible reachable use. To eliminate such statements, the used operand of each eligible use is replaced with the used operand in the copy statement, and the copy statement is duplicated prior to each ineligible use.
Inventors
- 👤 William Jon Schmidt
- 👤 Edward Curtis Prosser
- 👤 Robert Ralph Roediger
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-05 18:59
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/443
Claims Analysis
Total Claims: 27
Claim 1
Independent Claim
117 words
A method of removing copy statements during compilation of a computer procedure, each copy statement including a defined operand and a used operand, the method comprising: (a) determining whether the defined operand of a first copy statement in the computer procedure has an eligible reachable use in the computer procedure, and an additional use in the computer procedure that is not eligible; and if so (b) removing the first copy statement from the computer procedure; (c) duplicating the first copy statement at a location in the computer procedure prior to the additional use that is not eligible; and (d) replacing the defined operand of the eligible reachable use with the used operand of the first copy statement.
Claim 2
Independent Claim
117 words
A method of removing copy statements during compilation of a computer procedure, each copy statement including a defined operand and a used operand, the method comprising: (a) determining whether the defined operand of a first copy statement in the computer procedure has an eligible reachable use in the computer procedure, and an additional use in the computer procedure that is not eligible; and if so (b) removing the first copy statement from the computer procedure; (c) duplicating the first copy statement at a location in the computer procedure prior to the additional use that is not eligible; and (d) replacing the defined operand of the eligible reachable use with the used operand of the first copy statement.
Claim 3
Dependent Claim
43 words
The method of claim 1, further comprising: (e) locating a transition point in the computer procedure where the first copy statement becomes unavailable; and wherein the first copy statement is duplicated at a location in the computer procedure prior to the transition point.
Claim 4
Dependent Claim
55 words
The method of claim 1, further comprising: (e) locating a transition arc from a first basic block to a second basic block in the computer procedure, over which the first copy statement becomes unavailable; and wherein the first copy statement is duplicated at a location in the computer procedure prior to the second basic block.
Claim 5
Dependent Claim
43 words
The method of claim 3, further comprising: (f) determining whether the first basic block has more than one successor; wherein the first copy statement is duplicated at an end of the first basic block if the first basic block has only one successor.
Claim 6
Dependent Claim
78 words
The method of claim 3, further comprising: (f) determining whether the first basic block has more than one successor; and if so inserting a new basic block between the first basic block and the second basic block in the computer procedure; wherein, if the first basic block has more than one successor, the first copy statement is duplicated in the new basic block, otherwise, the first copy statement is duplicated at an end of the first basic block.
Claim 7
Dependent Claim
36 words
The method of claim 1, wherein (a) further comprises locating transitions in the computer procedure, at which the first copy statement becomes unavailable, and (b) through (d) are performed only if the transitions meet defined criteria.
Claim 8
Dependent Claim
17 words
The method of claim 1, wherein the used operand in the first copy statement is a constant.
Claim 9
Independent Claim
133 words
A method of compiling a computer procedure, the method comprising: (a) optimizing the computer procedure to form an optimized representation, the computer procedure including at least one copy statement, the copy statement including a defined operand and a used operand, the optimizing including: (i) determining whether every reachable use of a defined operand of a first copy statement in the computer procedure is an eligible use; (ii) replacing the used operand in each eligible use with the used operand in the first copy statement and removing the first copy statement; (iii) if (a)(i) is not true, duplicating the first copy statement at one or more locations in the computer procedure prior to each use that is not eligible; and (b) generating an object code representation of the computer procedure from the optimized representation.
Claim 10
Independent Claim
133 words
A method of compiling a computer procedure, the method comprising: (a) optimizing the computer procedure to form an optimized representation, the computer procedure including at least one copy statement, the copy statement including a defined operand and a used operand, the optimizing including: (i) determining whether every reachable use of a defined operand of a first copy statement in the computer procedure is an eligible use; (ii) replacing the used operand in each eligible use with the used operand in the first copy statement and removing the first copy statement; (iii) if (a)(i) is not true, duplicating the first copy statement at one or more locations in the computer procedure prior to each use that is not eligible; and (b) generating an object code representation of the computer procedure from the optimized representation.
Claim 11
Dependent Claim
25 words
The method of claim 8, further comprising, prior to the optimizing (a), generating an intermediate representation from a source code representation of the computer procedure.
Claim 12
Dependent Claim
42 words
The method of claim 8, wherein (a)(iii) further comprises locating a transition point in the computer procedure where the first copy statement becomes unavailable; and duplicating the first copy statement at a location in the computer procedure prior to the transition point.
Claim 13
Dependent Claim
54 words
The method of claim 8, wherein (a)(iii) further comprises locating a transition arc from a first basic block to a second basic block in the computer procedure, over which the first copy statement becomes unavailable; and duplicating the first copy statement at a location in the computer procedure prior to the second basic block.
Claim 14
Dependent Claim
17 words
The method of claim 8, wherein the used operand in the first copy statement is a constant.
Claim 15
Dependent Claim
141 words
A computer system for compiling a computer procedure into a machine-readable representation, the computer procedure including at least one copy statement that includes a defined operand and a used operand, the computer system comprising: (a) an optimizer that optimizes the computer procedure into an optimized representation, the optimizer including a copy statement eliminating module that (i) identifies whether the defined operand in a first copy statement in the computer procedure has an eligible use and an additional use that is not eligible, and (ii) if so, removes the first copy statement, replaces the used operand at the eligible use with the used operand in the first copy statement, and duplicates the first copy statement prior to each use that is not eligible; and (b) a machine-readable code generator that generates a machine-readable representation of the computer procedure from the optimized representation.
Claim 16
Dependent Claim
141 words
A computer system for compiling a computer procedure into a machine-readable representation, the computer procedure including at least one copy statement that includes a defined operand and a used operand, the computer system comprising: (a) an optimizer that optimizes the computer procedure into an optimized representation, the optimizer including a copy statement eliminating module that (i) identifies whether the defined operand in a first copy statement in the computer procedure has an eligible use and an additional use that is not eligible, and (ii) if so, removes the first copy statement, replaces the used operand at the eligible use with the used operand in the first copy statement, and duplicates the first copy statement prior to each use that is not eligible; and (b) a machine-readable code generator that generates a machine-readable representation of the computer procedure from the optimized representation.
Claim 17
Dependent Claim
38 words
The computer system of claim 13, further comprising a front end module that generates an intermediate representation from a source code representation of the computer procedure, wherein the optimizer operates on the intermediate representation of the computer procedure.
Claim 18
Dependent Claim
42 words
The computer system of claim 13, wherein the optimizer locates a transition point in the computer procedure where the first copy statement becomes unavailable; and duplicates the first copy statement at a location in the computer procedure prior to the transition point.
Claim 19
Dependent Claim
54 words
The computer system of claim 13, wherein the optimizer locates a transition arc from a first basic block to a second basic block in the computer procedure, over which the first copy statement becomes unavailable; and duplicates the first copy statement at a location in the computer procedure prior to the second basic block.
Claim 20
Dependent Claim
18 words
The computer system of claim 13, wherein the used operand in the first copy statement is a constant.
Claim 21
Dependent Claim
129 words
A program product, comprising: (a) a program configured to perform a method of compiling a first computer procedure into a second computer procedure, the first computer procedure including at least one copy statement that includes a defined operand and a used operand, the method comprising: (i) identifying whether a first copy statement in the intermediate representation has an eligible use in the first computer procedure and an additional use in the first computer procedure that is not eligible; and (ii) if (i) is true, removing the first copy statement, replacing the used operand at the eligible use with the used operand in the first copy statement, and duplicating the first copy statement prior to each use that is not eligible; and (b) a signal bearing media bearing the program.
Claim 22
Dependent Claim
129 words
A program product, comprising: (a) a program configured to perform a method of compiling a first computer procedure into a second computer procedure, the first computer procedure including at least one copy statement that includes a defined operand and a used operand, the method comprising: (i) identifying whether a first copy statement in the intermediate representation has an eligible use in the first computer procedure and an additional use in the first computer procedure that is not eligible; and (ii) if (i) is true, removing the first copy statement, replacing the used operand at the eligible use with the used operand in the first copy statement, and duplicating the first copy statement prior to each use that is not eligible; and (b) a signal bearing media bearing the program.
Claim 23
Dependent Claim
48 words
The program product of claim 18, wherein the method performed by the program further comprises locating a transition point in the computer procedure where the first copy statement becomes unavailable; and duplicating the first copy statement at a location in the computer procedure prior to the transition point.
Claim 24
Dependent Claim
60 words
The program product of claim 18, wherein the method performed by the program further comprises locating a transition arc from a first basic block to a second basic block in the computer procedure, over which the first copy statement becomes unavailable; and duplicating the first copy statement at a location in the computer procedure prior to the second basic block.
Claim 25
Dependent Claim
16 words
The program product of claim 18, wherein the signal bearing media is a transmission type media.
Claim 26
Dependent Claim
15 words
The program product of claim 18, wherein the signal bearing media is a recordable media.
Claim 27
Dependent Claim
18 words
The program product of claim 18, wherein the used operand in the first copy statement is a constant.
References Cited (Backward Citations)
US4843545A
Cited
US5790867A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-08-09 | 2003-02-08 | 2003-08-10 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-08-09 | 2007-02-08 | 2007-08-10 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-08-09 | 2011-02-08 | 2011-08-10 | $7700.00 | Window Closed / Lapsed |