Patent US5361354A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5361354A Expired / Lapsed US ⏱️ 0.0 years remaining

Optimization of alternate loop exits

Assignee: RPX Corp
•
Filing: 1991-12-17
•
Granted: 1994-11-01
•
Expires: 2011-12-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An optimization method to be carried out within a digital computer under programmed control for eliminating or removing from a loop body alternate exit tests substantially of the form αi+βcondφ, where α, β and φ are loop invariant expressions, i is the innermost loop index variable, and cond is one of the relational operators (=,≠,>,≧,<,≦). Each alternate exit test is compared to a list of elimination conditions. If an alternate exit test matches one of the elimination conditions, it is eliminated entirely from the loop body. If the alternate exit test cannot be eliminated, it is then compared to a list of restriction conditions. If the alternate exit test matches one of the restriction conditions, the loop index upper bound is modified if necessary and the alternate exit test is moved from inside to outside of the loop body. The resulting altered loop body is near optimum in terms of both the storage area utilized and the program execution time.

Inventors

  • 👤 Terry Greyzck

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 18:09
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/445

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 113 words
A digital computer for eliminating, under programmed control, alternate exit tests from a loop body, the programmed computer comprising: (a) transformation means for transforming an alternate exit test into a transformed alternate exit test of the form αi+βcondφ, where α, β and φ are loop invariant expressions, i is the innermost loop index variable, and cond is one of the relational operators (=, ≠, >, ≧, <, ≦); (b) comparison means for comparing the transformed alternate exit test to a list of elimination conditions; and (c) elimination means for eliminating the alternate exit test from the loop body if it matches one of the elimination conditions; whereby an optimized loop body is produced.
Claim 2
Dependent Claim 113 words
A digital computer for eliminating, under programmed control, alternate exit tests from a loop body, the programmed computer comprising: (a) transformation means for transforming an alternate exit test into a transformed alternate exit test of the form αi+βcondφ, where α, β and φ are loop invariant expressions, i is the innermost loop index variable, and cond is one of the relational operators (=, ≠, >, ≧, <, ≦); (b) comparison means for comparing the transformed alternate exit test to a list of elimination conditions; and (c) elimination means for eliminating the alternate exit test from the loop body if it matches one of the elimination conditions; whereby an optimized loop body is produced.
Claim 3
Dependent Claim 96 words
The programmed computer of claim 1 wherein the list of elimination conditions comprises: (a) where the operator is "=", α=0, and β-φ≠0; (b) where the operator is "=", α>0, and β-φ>0; (c) where the operator is "=", α<0, and β-φ<0; (d) where the operator is "=", |α|>1, and (φ-β) modα≠0; (e) where the operator is "≠", α=0, and β-φ=0; (f) where the operator is "<", α≧0, and β-φ≧0; (g) where the operator is "≦", α≧0, and β-φ>0; (h) where the operator is ">", α≦0, and β-φ≦0; and (i) where the operator is "≧", α≦0, and β-φ<0.
Claim 4
Dependent Claim 36 words
The programmed computer of claim 1 further comprising insertion means for inserting program code before the loop body for calculating the value of each loop invariant expression α, β or φ that is a variable expression.
Claim 5
Dependent Claim 241 words
A digital computer for removing, under programmed control, alternate exit tests from a loop body, the programmed computer comprising: (a) transformation means for transforming an alternate exit test into a transformed alternate exit test of the form αi+βcondφ, where α, β and φ are loop invariant expressions, i is the innermost loop index variable, and cond is one of the relational operators (=,≠,>,≧,<,≦); (b) comparison means for comparing the transformed alternate exit test to a list of restriction conditions; and (c) calculation means for calculating a new loop exit iteration value i exit according to a list of exit expression rules if the transformed alternate exit test matches one of the restriction conditions; (d) removal means for removing the alternate exit test from the loop body if the transformed alternate exit test matches one of the restriction conditions; (e) comparison means for comparing the value of an existing loop exit upper bounds expression N to i exit if N is a constant expression; (f) modification means for modifying the value of N to be substantially equal to i exit minus two if N is a constant expression and the value of N is greater than i exit ; and (g) trailing segment insertion means for inserting a first trailing segment of program code after the loop body if N is a constant expression and the value of N is greater than i exit , whereby an optimized loop body is produced.
Claim 6
Dependent Claim 241 words
A digital computer for removing, under programmed control, alternate exit tests from a loop body, the programmed computer comprising: (a) transformation means for transforming an alternate exit test into a transformed alternate exit test of the form αi+βcondφ, where α, β and φ are loop invariant expressions, i is the innermost loop index variable, and cond is one of the relational operators (=,≠,>,≧,<,≦); (b) comparison means for comparing the transformed alternate exit test to a list of restriction conditions; and (c) calculation means for calculating a new loop exit iteration value i exit according to a list of exit expression rules if the transformed alternate exit test matches one of the restriction conditions; (d) removal means for removing the alternate exit test from the loop body if the transformed alternate exit test matches one of the restriction conditions; (e) comparison means for comparing the value of an existing loop exit upper bounds expression N to i exit if N is a constant expression; (f) modification means for modifying the value of N to be substantially equal to i exit minus two if N is a constant expression and the value of N is greater than i exit ; and (g) trailing segment insertion means for inserting a first trailing segment of program code after the loop body if N is a constant expression and the value of N is greater than i exit , whereby an optimized loop body is produced.
Claim 7
Dependent Claim 154 words
The programmed computer of claim 4 wherein the list of restriction conditions comprises: (a) if operator is "=", α=0, and β-φ=0; (b) if operator is "=", α≠0, and (φ-β)modα=0; (c) if operator is "=", α=0, and β-φ≠0; (d) if operator is "=", α≠0, and (φ-β) modα≠0; (e) if operator is "≠" and β-φ≠0; (f) if operator is "≠", α≠0, and β-φ=0; (g) if operator is "≠", α=0, and β-φ=0; (h) if operator is "<" and β-φ<0; (i) if operator is "<" and α<0; (j) if operator is "<" and α≧0; (k) if operator is "≦" and β-φ≦0; (l) if operator is "≦" and α<0; (m) if operator is "≦" and α≧0; (n) if operator is ">" and β-φ>0; (o) if operator is ">" and α>0; (p) if operator is ">" and α≦0; (q) if operator is "≧" and β-φ≧0; (r) if operator is "≧" and α>0; and (s) if operator is "≧" and α≦0.
Claim 8
Dependent Claim 231 words
The programmed computer of claim 4 wherein the list of exit expression rules comprises: (a) if operator is "=", α=0, and β-φ=0, then i exit =1; (b) if operator is "=", α≠0, and (φ-β)modα=0, then i exit =(φ-β)/α+1; (c) if operator is "=", α=0, and β-φ≠0, them i exit =∞; (d) if operator is "=", α≠0, and (φ-β) modα≠0, then i exit =∞; (e) if operator is "≠" and β-φ≠0, then i exit =1; (f) if operator is "≠", α≠0, and β-φ=0, then i exit =2; (g) if operator is "≠", α=0, and β-φ=0, then i exit =∞; (h) if operator is "<" and β-φ<0, then i exit =1; (i) if operator is "<" and α<0, then i exit =(φ-β)/α+2; (j) if operator is "<" and α≧0, then i exit =∞; (k) if operator is "≦" and β-φ≦0, then i exit =1; (l) if operator is "≦" and α<0, then i exit =(φ-β-1)/α+2; (m) if operator is "≦" and α≧0, then i exit =∞; (n) if operator is ">" and β-φ>0, then i exit =1; (o) if operator is ">" and α>0, then i exit =(φ-β)/α+2; (p) if operator is ">" and α≦0, then i exit =∞; (q) if operator is "≧" and β-φ≧0, then i exit =1; (r) if operator is "≧" and α>0, then i exit =(φ-β+1)/α+2; and (s) if operator is "≧" and α≦0, then i exit =∞.
Claim 9
Dependent Claim 39 words
The programmed computer of claim 4 further comprising invariant expression evaluation insertion means for inserting before the loop body program code for calculating the value of each loop invariant expression α, β or φ that is a variable expression.
Claim 10
Dependent Claim 46 words
The programmed computer of claim 4 further comprising modification means for modifying the value the existing loop exit upper bounds expression N to be equal to the minimum value of either i exit minus two or the value of N if N is a variable expression.
Claim 11
Dependent Claim 25 words
The programmed computer of claim 4 wherein the trailing segment of program code comprises a final partial loop iteration calculation and error handling program code.
Claim 12
Dependent Claim 33 words
The programmed computer of claim 4 wherein the trailing segment insertion means comprises means for inserting a second trailing segment of program code after the loop body if N is a variable expression.
Claim 13
Dependent Claim 28 words
The programmed computer of claim 10 wherein the second trailing segment of program code comprises a test, a final partial loop iteration calculation, and error handling program code.
Claim 14
Dependent Claim 113 words
An optimization method to be carried out within a digital computer under programmed control for eliminating alternate exit tests from a loop body, the method comprising the steps of: (a) transforming an alternate exit test into a transformed alternate exit test of the form αi+βcondφ, where α, β and φ are loop invariant expressions, i is the innermost loop index variable, and cond is one of the relational operators (=,≠,>,≧,<,≦); (b) comparing the transformed alternate exit test to a list of elimination conditions; and (c) eliminating the alternate exit test from the loop body if the transformed alternate exit test matches one of the elimination conditions, whereby an optimized loop body is produced.
Claim 15
Dependent Claim 113 words
An optimization method to be carried out within a digital computer under programmed control for eliminating alternate exit tests from a loop body, the method comprising the steps of: (a) transforming an alternate exit test into a transformed alternate exit test of the form αi+βcondφ, where α, β and φ are loop invariant expressions, i is the innermost loop index variable, and cond is one of the relational operators (=,≠,>,≧,<,≦); (b) comparing the transformed alternate exit test to a list of elimination conditions; and (c) eliminating the alternate exit test from the loop body if the transformed alternate exit test matches one of the elimination conditions, whereby an optimized loop body is produced.
Claim 16
Dependent Claim 95 words
The optimization method of claim 12 wherein the list of elimination conditions comprises: (a) where the operator is "=", α=0, and β-φ≠0; (b) where the operator is "=", α>0, and β-φ>0; (c) where the operator is "=", α<0, and β-φ<0; (d) where the operator is "=", |α|>1, and (φ-β)modα≠0; (e) where the operator is "≠", α=0, and β-φ=0; (f) where the operator is "<", α≧0, and β=φ≧0; (g) where the operator is "≦", α≧0, and β-φ≧0; (h) where the operator is ">", α≦0, and β-φ≦0; and (i) where the operator is "≧", α≦0, and β-φ<0.
Claim 17
Dependent Claim 36 words
The optimization method of claim 12 wherein the method further comprises inserting before the loop body program code for calculating the value of each loop invariant expression α, β or φ that is a variable expression.
Claim 18
Dependent Claim 227 words
An optimization method to be carried out within a digital computer under programmed control for removing alternate exit tests from a loop body, the method comprising the steps of: (a) transforming an alternate exit test into a transformed alternate exit test of the form αi+βcondφ, where α, β and φ are loop invariant expressions, i is the innermost loop index variable, and cond is one of the relational operators (=,≠,>,≧,<,≦); (b) comparing the transformed alternate exit test to a list of restriction conditions; (c) calculating a new loop exit iteration value i exit according to a list of exit expression rules if the transformed alternate exit test matches one of the restriction conditions; (d) removing the alternate exit test from the loop body if the transformed alternate exit test matches one of the restriction conditions; (e) comparing the value of an existing loop exit upper bounds expression N to the new loop exit iteration value i exit ; (f) modifying the value of N to be substantially equal to i exit minus two if N is a constant expression and the value of N is greater than i exit ; and (g) inserting a trailing segment of program code after the loop body if N is a constant expression and the value of N is greater than i exit , whereby an optimized loop body is produced.
Claim 19
Dependent Claim 227 words
An optimization method to be carried out within a digital computer under programmed control for removing alternate exit tests from a loop body, the method comprising the steps of: (a) transforming an alternate exit test into a transformed alternate exit test of the form αi+βcondφ, where α, β and φ are loop invariant expressions, i is the innermost loop index variable, and cond is one of the relational operators (=,≠,>,≧,<,≦); (b) comparing the transformed alternate exit test to a list of restriction conditions; (c) calculating a new loop exit iteration value i exit according to a list of exit expression rules if the transformed alternate exit test matches one of the restriction conditions; (d) removing the alternate exit test from the loop body if the transformed alternate exit test matches one of the restriction conditions; (e) comparing the value of an existing loop exit upper bounds expression N to the new loop exit iteration value i exit ; (f) modifying the value of N to be substantially equal to i exit minus two if N is a constant expression and the value of N is greater than i exit ; and (g) inserting a trailing segment of program code after the loop body if N is a constant expression and the value of N is greater than i exit , whereby an optimized loop body is produced.
Claim 20
Dependent Claim 154 words
The optimization method of claim 15 wherein the list of restriction conditions comprises: (a) if operator is "=", α=0, and β-φ=0; (b) if operator is "=", α≠0, and (φ-β)modα=0; (c) if operator is "=", α=0, and β-φ≠0; (d) if operator is "=", α≠0, and (φ-β) modα≠0; (e) if operator is "≠" and β=φ≠0; (f) if operator is "≠", α≠0, and β-φ=0; (g) if operator is "≠", α=0, and β-φ=0; (h) if operator is "<" and β-φ<0; (i) if operator is "<" and α<0; (j) if operator is "<" and α≧0; (k) if operator is "≦" and β-φ≦0; (l) if operator is "≦" and α<0; (m) if operator is "≦" and α≧0; (n) if operator is ">" and β-φ>0; (o) if operator is ">" and α>0; (p) if operator is ">" and α≦0; (q) if operator is "≧" and β-φ≧0; (r) if operator is "≧" and α>0; and (s) if operator is "≧" and α≦0.
Claim 21
Dependent Claim 231 words
The optimization method of claim 15 wherein the list of exit expression rules comprises: (a) if operator is "=", α=0, and β-φ=0, then i exit =1; (b) if operator is "=", α≠0, and (φ-β)modα=0, then i exit =(φ-β)/α+1; (c) if operator is "=", α=0, and β-φ≠0, them i exit =∞; (d) if operator is "=", α≠0, and (φ-β) modα≠0, then i exit =∞; (e) if operator is "≠" and β-φ≠0, then i exit =1; (f) if operator is "≠", α≠0, and β-φ=0, then i exit =2; (g) if operator is "≠", α=0, and β-φ=0, then i exit =∞; (h) if operator is "<" and β-φ<0, then i exit =1; (i) if operator is "<" and α<0, then i exit =(φ-β)/α+2; (j) if operator is "<" and α≧0, then i exit =∞; (k) if operator is "≦" and β-φ≦0, then i exit =1; (l) if operator is "≦" and α<0, then i exit =(φ-β-1)/α+2; (m) if operator is "≦" and α≧0, then i exit =∞; (n) if operator is ">" and β-φ>0, then i exit =1; (o) if operator is ">" and α>0, then i exit =(φ-β)/α+2; (p) if operator is ">" and α≦0, then i exit =∞; (q) if operator is "≧" and β-φ≧0, then i exit =1; (r) if operator is "≧" and α>0, then i exit =(φ-β+1)/α+2; and (s) if operator is "≧" and α≦0, then i exit =∞.
Claim 22
Dependent Claim 36 words
The optimization method of claim 15 wherein the method further comprises inserting before the loop body program code for calculating the value of each loop invariant expression α, β or φ that is a variable expression.
Claim 23
Dependent Claim 50 words
The optimization method of claim 18 wherein, if N is a variable expression, the method further comprises the step of modifying the value of the existing loop exit upper bounds expression N to be equal to the minimum value of either i exit minus two or the value of N.
Claim 24
Dependent Claim 23 words
The optimization method of claim 19 wherein the step of modifying comprises inserting a trailing segment of program code after the loop body.
Claim 25
Dependent Claim 27 words
The optimization method of claim 20 wherein the trailing segment of program code comprises a test, a final partial loop iteration calculation, and error handling program code.

References Cited (Backward Citations)

US4398249A Cited
US4807126A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-10-31 1998-05-02 1998-11-01 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-10-31 2002-05-02 2002-11-01 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-10-31 2006-05-02 2006-11-01 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag