| B. Schwarz, W. Kirchgassner, and R. Landwehr. An optimizer for Ada -- design, experience and results. In Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 175--185, June 1988. |
....divided again. This partitioning is illustrated in Figure 15, for a two dimensional iteration space. r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r R[1] R[2] R[5] R[8] R[11] R[3] R[6] R[9] R[12] R[4] R[7] R[10] R[13] R[14] l i 2 u i 2 ffl R[1] tests in i 1 and i 2 ffl R[2] R[5] R[8] R[11] tests in i 2 ffl R[3] R[6] R[9] R[12] no tests ffl R[14] tests in i 1 and i 2 (A) Partitioning the iteration space into regions (B) Mandatory tests in each region Figure 15: ....
....The third part consists of the iterations of i j that succeed the safe region of i j . Again, the inner loops are not partitioned, and testing is required. Regions corresponding to this part of the iteration space are computed in statements S11 and S12, and correspond to the regions R[4] R[7] R[10], R[13] for j = 2) and R[14] for j = 1) in Figure 15. The middle (second) part consists of the iterations of i j that are within its safe region. If i j is the innermost loop, this is computed by statements S4 and S5, and the partitioning of loop i j is complete. No tests are required. If i j ....
[Article contains additional citation context not shown here]
B. Schwarz, W. Kirchgassner, and R. Landwehr. An optimizer for Ada -- design, experience and results. In Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 175--185, June 1988.
....Languages and Systems, 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 ....
Schwarz, B., Kirchg assner, W., and Landwehr, R. 1988. An optimizer for Ada -- Design, experiences and results. In Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation. 175--184.
....developed 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 ....
B. Schwarz, W. Kirchgassner, and R. Landwehr. An optimizer for Ada -- Design, experiences and results. In Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 175--184, June 1988.
....between their work and the techniques presented in this paper is provided in Section 6. The abstract interpretation approach proposed by Cousot and others [4] consider array range checking as an example for the automatical veri cation of execution properties of programs. Like Schwarz et al. [22], they use static data ow analysis information to prove at compile time that an array bound violation cannot occur at runtime and the test for the violation is unnecessary. Di erent algorithms for propagation and combination of assertions depend on the di erent rules they use. Since the ....
....them into two main possible approaches. The rst approach puts array bound checks at every array reference and removes a check if it is redundant [15, 9, 16, 10, 14] In the second approach, one only puts array bound checks at places where one doesn t know how to prove that they are useless [25, 20, 22]. The rst approach attempts to reduce the dynamic and static numbers of bound tests and the overhead induced by a test even if it cannot be eliminated. This is done by determining if a test is subsumed by another test, so that it can be eliminated. Hoisting range checks out of loops is also ....
B. Schwarz, W. Kirchgassner, and R. Landwehr. An optimizer for Ada - design, experiences and results. In ACM SIGPLAN'88 Conference on Programming Language Design and Implementation, pages 175-184, Atlanta, Georgia, USA, June 1988.
....test; b) all statements need explicit tests. There are four main approaches in the literature to optimizing array bounds checks: i) the use of static data flow analysis information to determine that a test is unnecessary [Cousot and Cousot 1977; Cousot and Halbwachs 1978a; 1978b; Harrison 1977; Schwarz et al. 1988], ii) the use of data flow information and symbolic analysis at compile time to reduce the number of tests remaining in the program [Asuru 1992; Gupta 1990; 1993; Kolte and Wolfe 1995; Markstein et al. 1982] iii) the regions based approach discussed in this article and more generally in Gupta ....
SCHWARZ, B., KIRCHGASSNER, W., AND LANDWEHR, R. 1988. An optimizer for Ada -- design, experience and results. In Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation, pp. 175--185.
....We note however, that the best performance reported in [6] for matrix multiplication in Java is only 50 Mflops. There are four main approaches in the literature to optimizing array bounds checks: i) the use of static data flow analysis information to determine that a test is unnecessary [11, 21,12, 13, 31], ii) the use of data flow information and symbolic analysis at compile time to reduce the dynamic number of tests remaining in the program [24, 20, 1, 19, 25] iii) the regions based approach discussed in this paper and more generally in [18, 26] and (iv) speculative methods discussed in ....
B. Schwarz, W. Kirchgassner, and R. Landwehr. An optimizer for Ada -- design, experience and results. In Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 175--185, June 1988.
.... as applications of automated program verification [8, 17] abstract interpretation [4, 5, 11] and data flow analysis [2, 9, 10] Range check optimizers have also been implemented in several compilers such as the IBM PL.8 compiler [13] the Alsys Ada compiler [14] and the Karlsruhe Ada compiler [16]. This project builds on previous work, especially on the algorithms presented by Gupta [9, 10] our main contributions are: ffl use of partial redundancy elimination techniques [15, 12] for range check optimization; ffl a study of the advantages of using induction variables [7, 18] in range ....
....can be partitioned into two groups. The first group concentrates on the problem of identifying range checks which can be evaluated at compile time and eliminated from the program; this includes the automated program verification approach [8, 17] and the abstract interpretation approach [4, 5, 11, 14, 16]. The second group aims to reduce the execution overhead of range checks which cannot be evaluated and eliminated at compiletime; this includes algorithms that perform data flow analysis and insertion of checks [2, 9, 10, 13] Our algorithms are in the second group. Suzuki and Ishihata [17] and ....
[Article contains additional citation context not shown here]
B. Schwarz, W. Kirchgassner, and R. Landwehr. An optimizer for Ada -- design, experiences and results. Proceedings SIGPLAN '88 Conference on Programming Language Design and Implementation, 175-185, June, 1988.
.... that the best performance reported in [6] for matrix multiplication in Java is only 50 Mflops (on a slower processor) There are two main approaches in the literature to optimizing array bounds checks: i) the use of static data flow analysis information to determine that a test is unnecessary [12, 21, 13, 14, 28], and (ii) the use of data flow information and symbolic analysis at compile time to reduce the dynamic number of tests remaining in the program [22, 20, 1, 19, 23] Work in the first group uses data flow information to prove at compile time that an array bounds violation cannot occur at run time, ....
B. Schwarz, W. Kirchgassner, and R. Landwehr. An optimizer for Ada -- design, experience and results. In Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 175--185, June 1988.
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