| John Hennessy. Program optimization and exception handling. In Conference Record of the Eighth Annual ACM Symposium on Principles of Programming Languages, pages 200--206, Williamsburg, Virginia, January 26--28, 1981. ACM SIGACT-SIGPLAN, ACM Press. 19 |
....is this sort of issue that makes optimizing for Java and C , languages with exceptions, different from optimizing for languages like C and FORTRAN, which do not. There has been little published work in the area of optimizing for languages with exceptions. One important work however, is Hennessy s[10] 1981 paper. Other important work in the area of implementing exceptions has been done by Tiemann[11] 14 for C , by Chase[12] 13] for Ada, Modula2 , C , Module 3 and Eiffel, and by Goodenough[14] for general exception mechanisms. Threading also must be examined carefully when generating ....
John Hennessy. Program optimization and exception handling. In Conference Record of the Eighth Annual ACM Symposium on Principles of Programming Languages, pages 200--206, Williamsburg, Virginia, January 26--28, 1981. ACM SIGACT-SIGPLAN, ACM Press. 19
....in the presence of polymorphism. This has enabled them to apply more traditional compiler optimizations (such as inlining) This thesis takes a similar approach and relax the requirement for the whole program, thus preserving some of the Java bytecode flexibility. Exception Analysis Hennessy [50] describes modifications to data flow analysis in order to handle programs with exceptions. Unfortunately, his approach is not directly applicable to object oriented languages since he assumes that the call graph of the program is known at the analysis time. The exception hiding transformation ....
John L. Hennessy. Program optimization and exception handling. In Conference Record of the Eight ACM Symposium on the Principles of Programming Languages, pages 200--206, 1981.
....handling path to find the right exception handler owing to the registered list. Earlier research focused on optimizing the normal path by sacrificing the performance of the exception handling path, assuming that exceptions are rarely thrown in programs written in major programming languages [49, 34, 25]. In Java, however, there are many programs that frequently throw exceptions. For example, the SPECjvm98 benchmark suite has two exception intensive programs, 228 jack and 213 javac, out of seven programs [19, 46] Other five programs, such as 227 mtrt, 202 jess, 201 compress, 209 db, and 222 ....
....should be performed. Di#erent compilers adopt di#erent heuristics for addressing the issue. However, to the best of our knowledge, there is no heuristics that takes exceptions into account. There are many studies that focus on optimizing the normal path of programs in the presence of exceptions [34, 16, 18, 26, 32]. Our focus is on reducing the overhead due to exception handling rather than such code optimization. Their results and our approach can complementarily improve exception intensive programs. 6. CONCLUSIONS This paper has presented a novel approach to adaptive optimization of exception intensive ....
Hennessy, J. Program optimization and exception handling. In Conference record of the 8th annual ACM symposium on Principles of programming languages (New York, NY, USA, Jan. 1981), ACM Press, pp. 200--206.
.... the number of f nodes inserted, we construct the semi pruned form of SSA [Briggs et al. 1997] Exceptions Performing optimizations in the presence of exception handling requires the control flow graph be transformed to indicate the possible effects of explicit and implicit exception throws [Hennessy 1981]. If a variable is used after an exception is caught at an exception 28 handler, the value of the variable could be any of the values of the variable live within the protected region for that handler. An exception handler could be entered with any of the possible local variable states that occur ....
HENNESSY, J. 1981. Program optimization and exception handling. In Conference Record of the ACM Symposium on Principles of Programming Languages (Williamsburg, Virginia, Jan.). 200--206.
....the problem of reducing the program state that must be preserved at a possible exception point. The problem of debugging optimized programs also has some similarities with optimizing programs in the presence of exceptions, in that the notion of preserving the currency of variables at a breakpoint [15] is similar to that of preserving program state at exception points. Holzle et al. 16] restrict optimizations across interrupt points and use dynamic deoptimization of code to 12 All JVMs tested by Pugh [22, 17] were found to break the Java memory model. 23 support debugging. Other researchers ....
....point and focus on determining the minimal set of such relevant variables. Furthermore, we deal with the problem of ensuring the correct ordering of exceptions (without adversely affecting program optimizations) which does not occur in the context of debugging optimized programs. Hennessy [15] describes program optimizations in the presence of exception handling, where he essentially deals with the altered control flow due to an exception being thrown. His work does not deal with precise exceptions. Le [18] describes a runtime binary translator that supports reordering of instructions ....
J. Hennessy. Program optimization and exception handling. In 8th Annual ACM Symposium on the Principles of Programming Languages, pages 200--206, 1981.
....the problem of reducing the program state that must be preserved at a possible exception point. The problem of debugging optimized programs also has some similarities with optimizing programs in the presence of exceptions, in that the notion of preserving the currency of variables at a breakpoint [15] is similar to that of preserving program state at exception points. Holzle et al. 16] restrict optimizations across interrupt points and use dynamic deoptimization of code to support debugging. Other researchers have proposed various approaches to detect variables whose value may not be current ....
....point, and focus on determining the minimal set of such relevant variables. Furthermore, we deal with the problem of ensuring the correct ordering of exceptions (without adversely affecting program optimizations) which does not occur in the context of debugging optimized programs. Hennessy [15] describes program optimizations in the presence of exception handling, where he essentially deals with the altered control flow due to an exception being thrown. His work does not deal with precise exceptions. Le [18] describes a runtime binary translator that supports reordering of instructions ....
John Hennessy. Program optimization and exception handling. In 8th Annual ACM Symposium on the Principles of Programming Languages, pages 200--206, 1981.
....do not preserve error behavior by giving a precise, denotational treatment of such transformations [CF89] In this approach, errors are considered to approximate other values, and program transformations are lifting operations that can (possibly) make programs more defined. Another approach [Hen81] : examines the optimization difficulties imposed by common exception handling facilities [and] proposes restrictions on these mechanisms that make the optimization of programs possible. Why have language designers and implementors avoided specifying and preserving the meaning of errors ....
J. Hennessy. Program optimization and exception handling. In Proceedings of the 1981 Symposium on Principles of Programming Languages, January 1981.
....method, seems to have some appealing characteristics: relatively small analysis cost and a natural support for separate analysis. We plan to have a comparative study of the two analysis methods for the instance of the exception analysis. In the conventional data flow analysis framework, Hennesey [Hen81] discussed several optimization problems for the programs with exception handling facilities. 5 ML LEX program has 1229 lines. After being translated in our intermediate language, it has 14,502 expressions, 8 exceptions, 8 handlers, and 47 raise expressions. The analysis result shows that ....
John Hennessy. Program optimization and exception handling. In Proceedings of the Annual ACM Symposium on Principles of Programming Languages, pages 200--206, 1981.
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