| P. Briggs and K. D. Cooper. Effective Partial Redundancy Elimination. In Conference on Programming Language Design and Implementation, pages 159--170, 1994. |
....in a given flow graph in order to reduce the total number of remaining such computations in the transformed code. Global common subexpressions and loop invariant computations are special cases of partial redundancies. As a result, PRE has become an important component in global optimizers [10, 12, 13]. Classic PRE methods [21, 22] guarantee computationally optimal results, i.e. results where the number of computations cannot be reduced any further by safe code motion [20] Under such a safety constraint, they insert an expression at a point p in a flow graph only if all paths emanating ....
....Work Partial redundancy elimination originated from the seminar work of Morel and Renvoise [23] and was quickly realized as an important optimization technique that subsumes global common subexpression and loop invariant code motion. Ever since, their work has been extended in several directions [10, 12, 16, 21, 22, 25]. In particular, Knoop, Ruthing and Steffen describe a uni directional bit vector formulation that is optimal by the criteria of computational optimality and lifetime optimality [22] and more recently, Kennedy et al. present an SSA based framework that shares the same two optimality properties. ....
P. Briggs and K. D. Cooper. Effective partial redundancy elimination. In ACM SIGPLAN' 94 Conference on Programming Language Design and Implementation, pages 159--170, 1994.
....r # carry the values of A#i # ## and A#i # ##, respectively. r1 = A[2] r2 = A[1] for i=3,N do t=r1 r2 r2 = r1 r1 = A[i] t end for Redundant recomputations occur frequently. Based on value flow redundancy elimination, current compilers remove about 30 of executed arithmetic instructions [BC94] and 10 of executed conditional branches. To estimate the amount of redundancy present in the program, we can refer to hardware run time prediction mechanisms. Based on remembering old values and predicting new ones, these techniques predict correctly as much as 80 of values [SVS96] and 95 of ....
.... and Schlansker describe how such a system can be constructed and utilized in solving predicated flow problems [JS96] Briggs and Cooper propose a simple symbolic reassociation that improves value numbering by reordering nodes in the abstract syntax trees on which value numbers are computed [BC94] For example, 12 by transforming e # # #a # c##b into the canonical #a # b##c, it can be found equivalent with another e # ##a # b##c. Finally, there are data flow frameworks for array value flow analysis, intended primarily for load store elimination [BG96a,DGS93a] By focusing their ....
[Article contains additional citation context not shown here]
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. In Proceedings of the Conference on Programming Language Design and Implementation, pages 159--170, June 1994. 147 148
....data flow analysis which need to be investigated. 1 Background Language processing tools have employed various combinations of forward and backward data flow dependencies for a variety of purposes viz. Partial Redundancy Elimination (PRE) 5, 9, 22, 44, 47, 54] and related optimizations [6, 16, 39, 53]. Code Hoisting and Strength Reduction [15, 17, 21, 26, 29, 30, 36] Live Range Characterisation and Register Assignment [14, 41] Dead Code Elimination [4, 38] Communication Placement [25, 27] Shrink Wrapping of Procedure Calls [8] Redundant Array Bound Checks Elimination ....
....reducing the complexity of bidirectional data flow analysis. In this regard, the discovery that bidirectional flows can be converted into approximately equivalent unidirectional flow(s) seems to have been made simultaneously and independently in [13] and [22] Similar approaches were later used in [6, 19 21, 23, 26, 27, 35 39, 47]. The common thread through all these investigations has been performing bidirectional analysis (or its equivalent) using a sequence of unidirectional flows, hence they seem to lead to the impression that : Bidirectional analysis is more complex than unidirectional analysis and since there are ....
[Article contains additional citation context not shown here]
P. Briggs and K. D. Kooper. Effective partial redundancy elimination. In Proceedings of ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 159--170, 1994. Also Published as SIGPLAN Notices, 29(6).
....Vol. No. Somemonth , Pages 1 50. 2 Delta Robert Kennedy et al. computations are special cases of partial redundancies, they are subsumed by PRE. As a result, PRE has become the most important component in many global optimizers [Chow 1983; Chow et al. 1986; Schwarz et al. 1988; Briggs and Cooper 1994; Simpson 1996] An alternative placement strategy called lazy code motion [Knoop et al. 1992; Knoop et al. 1994] improves on Morel and Renvoise s results by avoiding unnecessary code movements, and by removing the bidirectional nature of the original PRE data flow equations. The result of lazy ....
Briggs, P. and Cooper, K. 1994. Effective partial redundancy elimination. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation. 159--170.
....by Morel and Renvoise [MR79] By targeting partially redundant computations in the program, it automatically removes global common subexpressions and moves invariant computations out of loops. It has since become the most important component in many global optimizers [Cho83, CHKW86, SKL88, BC94, CS95b] In [KRS92, KRS94a] Knoop et al. formulated an alternative placement strategy called lazy code motion that improves on Morel and Renvoise s results by avoiding unnecessary code movements, and by removing the bidirectional nature of the original PRE data flow equations. The result of lazy ....
....the technique can short circuit propagation through them. Johnson showed how to apply his techniques to the data flow systems in Drechsler and Stadel s variation of Knoop et al. s lazy code motion. Researchers at Rice University have done work aimed at improving the effectiveness of PRE [BC94, CS95b] The work involves the application of some SSA based transformation techniques to prepare the program for optimization by PRE. Their techniques enhance the results of PRE. Their implementation of PRE was based on Drechsler and Stadel s variation of Knoop et al. s lazy code motion, and was ....
[Article contains additional citation context not shown here]
P. Briggs and K. Cooper. Effective partial redundancy elimination. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 159--170, June 1994.
....(output dependences) to the same register or memory location. In this paper, we will discuss only dependences through registers. We will also concentrate on anti dependences. Although the techniques discussed here can be used to eliminate output dependences, partial) dead code elimination [KRS94, BC94] is more appropriate for this purpose. Another problem for exploiting significant amounts of instruction level parallelism is the limited amount of registers (e.g. 32 integer registers on all popular architectures) By contrast, functional units tend to become abundant; compilers will have a ....
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. In SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 159--170, 1994.
.... and Schlansker describe how such a system can be constructed and utilized in solving predicated flow problems [JS96] Briggs and Cooper propose a simple symbolic reassociation that improves value numbering by reordering nodes in the abstract syntax trees on which value numbers are computed [BC94] For example, by transforming e 1 = a c) b into the canonical (a b) c, it can be found equivalent with another e 2 = a b) c. Finally, there are data flow frameworks for array value flow analysis, intended primarily for load store elimination [BG96, DGS93] By focusing their ....
....(theoretical power) and what portion of run time observable redundancies (practical power) is captured The proposed research will compare the VNG with existing approaches and suggest necessary enhancements. In particular, the current VNG formulation [BA98] does not perform reassociation [BC94] and is sometimes less powerful that the syntactic value numbering [RWZ88] On the practical side, the research will compare the VNG based value flow analysis with value prediction techniques. By predicting the run time register contents, these hardware techniques carry out a dynamic redundancy ....
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. In Proceedings of the Conference on Programming Language Design and Implementation, pages 159--170, June 1994.
.... Polynomial k = k m k 2 = k 1 m k 2 5h 8 Linear A [k] 2 m 1 A [k 2 ] 2 m 1 2 m 1 11 Invariant endfor endfor Figure 2: Example of induction variable analysis in the Nascent compiler of range checks is similar to the global reassociation technique described by Briggs and Cooper [3]. The canonical form also simplifies the representation and manipulation of range checks within the compiler. We use the canonical form to denote range check statements in the rest of the paper. 2.3 Range checks using induction expressions The Nascent compiler uses SSA based induction variable ....
P. Briggs and K. D. Cooper. Effective partial redundancy elimination. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, 159-170, June, 1994.
....associative and commutative operators to bring free expressions together. This rewriting step can reduce the number of maximal free expressions, resulting in simpler s and smaller closures. The relevant operators include integer addition, assuming that it does not overflow, and bitwise or. Briggs and Cooper (1994) use an equivalent technique to improve the effectiveness of partial redundancy elimination in a traditional optimizing compiler; the rank they assign to each variable corresponds to the number of s between a free occurrence of a variable and its binding instance. Rearranging associative and ....
Briggs, Preston and Keith D. Cooper. 1994 (June). Effective partial redundancy elimination. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, in SIGPLAN Notices, 29(6):159--170.
....2 can only be eliminated by a simultaneous treatment of both occurrences. 4 y : a b a : a 1 out(a) 2 1 3 a : a 1 out(x y) 5 6 out(a b) a) 1 b) out(a) a : a 1 2 3 6 a : a 1 out(a b) 5 out(x y) a : a 1 y : a b 4 Figure 7: Illustrating m to n Sinkings Briggs and Cooper s algorithm [4] published in this proceedings employs instruction sinking for the reassociation of expressions. As a by product some partially dead assignments can be removed. However, in contrast to our algorithm their strategy of instruction sinking can significantly impair certain program executions, since ....
P. Briggs and K. D. Cooper. Effective partial redundancy elimination. In Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation'94, 1994.
....and, in a very real sense, outside the programmer s concern. In the future, we may see microprocessors where an integer multiply and an integer add both take a single cycle. On such a machine, strength reduction will still have a role to play. In combination with algebraic reassociation [17, 41, 5], strength reduction may let the compiler use fewer induction variables in a loop, lowering both the operation count inside the loop and the demand for registers. This effect may be especially pronounced in code that has been automatically blocked to improve locality [48, 11] The next section ....
....by looking at the location of their definition. We assume that: 1. Lazy code motion (lcm) has been applied to accomplish both loop invariant code motion and common subexpression elimination [33, 35, 23] Our compiler performs global reassociation and global renaming prior to running lcm [5]. 2. Sparse conditional constant propagation (sccp) has been applied to identify and fold compile time constants [47] This discovers a large class of constant values and makes them textually obvious. We approximate the property of invariance with a pair of properties that are easier to test. ....
P. Briggs and K. D. Cooper. Effective partial redundancy elimination. SIGPLAN Notices, 29(6):159--170, June 1994. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation.
....Optimization (combine) This pass is an ssa based peephole optimizer that combines iloc operations according to a Power PC 601 architectural model. 8. Reassociation (shape) This pass reorders expressions using commutativity and associativity to expose opportunities for other optimizations [2]. It reassociates complex expressions to expose loop invariant subexpressions. 9. Register Coalescing (coalesce) This pass coalesces register to register copies using the interference graph of a Chaitin style register allocator [5] 10. Operator Strength Reduction (strength) This pass performs ....
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. SIGPLAN Notices, 29(6):159-- 170, June 1994. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation.
....performs local common subexpression elimination. Unfortunately, the algorithm has no understanding of algebraic identities and relies solely on lexical equivalence. shape: This phase reassociates and redistributes integer expressions allowing other optimizations to find more loop invariant code [7]. This is important for addressing expressions inside loops, where the rapidly varying innermost index may cause portions of a complex address to be recomputed on each iteration. Reassociation can allow all the invariant parts to be hoisted, leaving behind only an expression of the form ....
P. Briggs and K. Cooper. Effective partial redundancy elimination. In Proceedings of the SIGPLAN `94 Conference on Programming Languages Design and Implementation, June 1994.
....of code motion or copy folding optimization is performed on the program in the SSA form, simply renaming the subscripted variables back to their original names and removing the nodes might result in an incorrect program. For example, in Figure 4. 5b, if some form of partial redundancy elimination [60, 15] moves the assignment to x 2 above the test of p, then x 1 and x 2 would have live ranges that overlap and cannot be simply renamed back to x. 64 If a code motion or copy folding optimization has been performed on the SSA form, the algorithm that converts SSA into CFG proceeds with the nontrivial ....
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. Proceedings of the SIGPLAN '94 Conference on Programming Language Design and Implementation, 29(6):159--170, June 1994.
No context found.
Preston Briggs and Keith D. Cooper, `Effective partial redundancy elimination', SIGPLAN Notices, 29(6), 159--170 (1994). Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation.
....that is modified inside a loop will have a OE function in the loop s header block. This feature makes identifying induction variables in loops particularly easy [21] Since the introduction of SSA form in 1989, many papers have described applications of SSA form for analysis or transformation [2, 4, 20, 6]. The original work on SSA form presented two algorithms for constructing SSA form from the code for a procedure [9, 10] The SSA constructed by the algorithms differs in the size of its name space and the number of OE functions that must be inserted. 1. The minimal construction produces a form ....
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. SIGPLAN Notices, 29(6):159--170, June 1994. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation.
....stylized, and, in a very real sense, outside the programmer s concern. In the future, we may see microprocessors where an integer multiply and an integer add both take a single cycle. On such a machine, strength reduction will still have a role to play. In combination with algebraic reassociation [11, 26, 4], strength reduction may let the compiler use fewer induction variables in a loop, lowering both the operation count inside the loop and the demand for registers. This effect may be especially pronounced in code that has been automatically blocked to improve locality [31, 8] This paper presents a ....
.... utilizes lazy code motion (LCM) to accomplish loop invariant code motion and common subexpression elimination [19, 21, 16] This technique is a descendant of partial redundancy elimination introduced by Morel and Renvoise [23, 15] We perform global reassociation and global renaming prior to LCM [4]. Because LCM will not move conditionally executed code out of loops, it is possible that some loop invariant sum 0 0:0 i 0 1 t5 0 a L: sum 1 OE(sum 0 ; sum 2 ) i 1 OE(i 0 ; i 2 ) t5 1 OE(t5 0 ; t5 2 ) t4 0 load t5 1 sum 2 sum 1 t4 0 i 2 i 1 1 t5 2 t5 1 4 if (i ....
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. SIGPLAN Notices, 29(6):159--170, June 1994. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation.
....consisting of routines drawn from the Spec benchmark and from Forsythe, Malcolm, and Moler s book on numerical methods [8] The complete results are shown in Table 1. Each column represents dynamic counts of ILOC operations. Routines are optimized using the sequence of global reassociation [4], value numbering (the type is indicated in the column header) global constant propagation [12] global peephole optimization, dead code elimination [7, Section 7.1] copy coalescing, and a pass to eliminate empty basic blocks. All forms of value numbering were performed on the SSA form of the ....
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. SIGPLAN Notices, 29(6):159-- 170, June 1994. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation.
....framework. 4 Value Driven Code Motion The ability of the compiler to perform code motion is influenced heavily by the shape of the input program. Briggs and Cooper showed that global reassociation followed by value partitioning will transform code into a form that makes PRE more effective [5]. Further improvements are still possible. The focus of this research is to extend the data flow framework to operate on value equivalences rather than lexical names, just as we extended the framework for available expressions in Section 3.1. Because values are never killed, a computation of an ....
.... our intermediate language. ILOC is a pseudo assembly language for a RISC machine with an arbitrary number of symbolic registers. The back end generates code that is capable of counting the number of ILOC operations executed. Routines are optimized using the sequence of global reassociation [5], SCC based value numbering [8] code motion (the type is indicated in the legend) global constant propagation [19] operator strength reduction [3] SCC based value numbering, global constant propagation, global peephole optimization, dead code elimination [9, Section 7.1] copy coalescing, ....
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. SIGPLAN Notices, 29(6):159--170, June 1994. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation.
No context found.
P. Briggs and K. D. Cooper. Effective Partial Redundancy Elimination. In Conference on Programming Language Design and Implementation, pages 159--170, 1994.
No context found.
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. In SIGPLAN Conference on Programming Language Design and Implementation, pages 159--170, 1994.
No context found.
P. Briggs and K. D. Cooper, "Effective Partial Redundancy Elimination", Proceedings of Programming Language Design and Implementation, June 1994.
No context found.
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 159--170, Orlando, FL, June 1994.
No context found.
P. Briggs and K. D. Cooper. Effective partial redundancy elimination. SIGPLAN Notices, 29(6):159--170, June 1994. Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation.
No context found.
Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 159--170, June 1994.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC