| J.M. Ashley. The effectiveness of flow analysis for inlining. In Proc. 1997 ACM SIGPLAN International Conf. on Functional Programming (ICFP '97), pages 99--111, June 1997. |
....one or both bound checks may possibly be dropped. By using profiling statistics to obtain suggestions of plausible properties, the (non type) analysis need not necessarily be related to safety issues. It appears that most of the optimizations are not related to safety. For example, inlining (see [9, 38]) eager evaluation in lazy languages (with the help of strictness analyses, see [14, 13, 46, 51] register allocation (with the help of liveliness analysis and pointer or alias analysis, see [3, 17, 64, 30] stack allocation to replace heap allocation (see [24, 52] selection of efficient ....
J. Michael Ashley. The effectiveness of flow analysis for inlining. In Proceedings of the 1997.
....functions, i.e. beta reduction. Rather than try to separate out the shape functions for special treatment, FISh in lines all non recursive function calls statically (Figure 7) Usually, in lining is a mixed blessing with the benefits of closure elimination offset by the cost of code explosion [JW96, Ash97]. FISh avoids most of the disadvantages by promoting the use of for and while loops, in which code only appears once, the use of local variables whose initialisation is eager, and optimisations which eliminate unnecessary copying of data structures. The rules for eliminating phrase polymorphic ....
J.M. Ashley. The effectiveness of flow analysis for inlining. In Proc.
....each in turn. Such a strategy seems worthwhile because it ranks sites globally and starts with those perceived to be most crucial, as opposed to the traditional post order traversal over the call graph approach that often arbitrarily orders unrelated sites. Several research projects (Ashley [1], Jagannathan and Wright [8] have shown the value of flow directed static analyses for making inlining decisions in functional languages such as Scheme, where function calls are pervasive and inlining is an absolutely essential optimization. It is unclear whether the direct application of these ....
Ashley, Michael J. "The Effectiveness of Flow Analysis for Inlining", ICFP (1997).
....as we are aware, there has been few analyses that detects linear expressions and reduces unnecessary let insertions before specialization. Similix s abstract occurrence counting analysis (Section 4.6 and Section 5.8 of [6] has a similar goal. There also exist a lot of results for inlining (e.g. [4]) but they are orthogonal to our analysis because they inline let bindings after specialization, which makes the specialization no faster. 8 Chapter 3 Naive Online PE 3.1 Naive Online PE without Let Insertion A naive online partial evaluator can be implemented as an interpreter that takes an ....
J. Michael Ashley. The effectiveness of flow analysis for inlining. In Proceedings of the Second ACM SIGPLAN International Conference on Functional Programming, pages 99--111, 1997.
....been developed to modularize the interprocedural data flow analysis problem [52, 64] Results of research in a demand driven approach to interprocedural data flow analysis [26, 27, 45] have shown that overhead can be reduced compared to more exhaustive methods. 2.3. 2 Inlining Procedure inlining [2, 4, 5, 12, 16, 21, 22, 23, 46, 49, 56] is a widely researched and accepted means to enable whole program optimization. In procedure inlining, procedure calls are physically replaced with the complete body of the procedure being called. This reduces hidden memory aliasing behavior, and exposes more sequential code to the compiler for ....
J. M. Ashley. The effectiveness of flow analysis for inlining. ACM SIGPLAN International Conference on Functional Programming, pages 99--111, 1997.
.... by dataflow, have been used to define near linear time algorithms for binding time analysis [Heng91] and alias analysis [Stee96] Ashley explored reducing propagation costs by utilizing bounded inclusion constraints in a control flow analysis of Scheme programs utilized to support inlining [Ashl96, Ashl97]. In addition to approximating 0 CFA, he also applies the same technique to develop an approximate 1 CFA analysis. Shapiro and Horwitz have developed a family of alias analysis algorithms that mix propagation and unification to yield more precise results than Steensgaard s algorithm while still ....
J. Michael Ashley. The effectiveness of flow analysis for inlining. In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, pages 99--111, Amsterdam, The Netherlands, June 1997.
....profile information and the availability of machine resources. Space constraints preclude a detailed discussion of these optimizations: here we discuss only the most important ones. 6. 1 Inlining Traditionally, Scheme compilers carry out inlining at, or close to, the level of the source program [2, 4, 10, 18]. At this level, the primary benefits of inlining come from specializing and simplifying the inlined function, e.g. by evaluating conditionals and pruning away code that becomes unreachable. Code growth during inlining is usually controlled via syntax driven techniques, ranging from simple ....
....come from specializing and simplifying the inlined function, e.g. by evaluating conditionals and pruning away code that becomes unreachable. Code growth during inlining is usually controlled via syntax driven techniques, ranging from simple syntaxdirected estimates of the size of the callee [2, 4, 10] to more refined estimates based on the residual size of the callee after specializing it to the call site under consideration [18] At link time, by contrast, it is reasonable to expect that considerable amounts of inlining have already been carried out by the Scheme compiler being used (and then ....
J. M. Ashley, "The Effectiveness of Flow Analysis for Inlining", Proc. 1997 SIGPLAN International Conference on Functional Programming, June 1997, pp. 99--111.
....profile information and the availability of machine resources. Space constraints preclude a detailed discussion of these optimizations: here we discuss only the most important ones. 6. 1 Inlining Traditionally, Scheme compilers carry out inlining at, or close to, the level of the source program [2, 4, 10, 18]. At this level, the primary benefits of inlining come from specializing and simplifying the inlined function, e.g. by evaluating conditionals and pruning away code that becomes unreachable. Code growth during inlining is usually controlled via syntax driven techniques, ranging from simple ....
....come from specializing and simplifying the inlined function, e.g. by evaluating conditionals and pruning away code that becomes unreachable. Code growth during inlining is usually controlled via syntax driven techniques, ranging from simple syntax directed estimates of the size of the callee [2, 4, 10] to more refined estimates based on the residual size of the callee after specializing it to the call site under consideration [18] At link time, by contrast, it is reasonable to expect that considerable amounts of inlining have already been carried out by the Scheme compiler being used (and then ....
J. M. Ashley, "The Effectiveness of Flow Analysis for Inlining", Proc. 1997 SIGPLAN International Conference on Functional Programming, June 1997, pp. 99-- 111.
....not only by its ability to recognize inlining opportunities but also by its discretion in exercising those opportunities. Recent research on procedure inlining for higher order languages has focused on the use of offline polyvariant flow analyses to identify appropriate inlining opportunities [14, 3]. Although reported performance gains are impressive, the cost and volatility of such analyses renders the method impractical for use in production compilers. This paper presents a new inlining algorithm for higher order languages that combines simple analysis techniques with online transformation ....
....a less accurate analysis (effectively sub 0CFA [4] with online transformation and polyvariant specialization. The time required by their flow analysis varies widely and can be excessive 110 seconds to analyze dynamic rendering their method impractical for use in a production compiler. Ashley [3] evaluated the effectiveness of four different flow analyses for inlining. The analyses range from a fast analysis less accurate than 0CFA to a polyvariant analysis similar to 1CFA. His inlining algorithm is based on that of Jagannathan and Wright but exposes more opportunities for inlining. Table ....
J. Michael Ashley. The effectiveness of flow analysis for inlining. To appear in Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming.
.... a recent language and system for array programming on parallel machines [ZPL] Turning to compilation techniques, general results on partial evaluation can be found in [NN92, JGS93] Inlining is still a subject of active research, e.g. using flow analysis to detect inlining opportunities, JW96, Ash97] Inlining in FiSh is complete, so that there are no functions left in the generated code. Thus, FiSh code is specialised for the shapes of its arguments, providing a more refined specialisation than one based just on the type [HM95] In contrast to the approximations provided by program analyses ....
J.M. Ashley. The effectiveness of flow analysis for inlining. In Proc. 1997 ACM SIGPLAN International Conf. on Functional Programming (ICFP '97), pages 99--111, June 1997.
....as coping with object oriented method dispatch and supporting optimistic pruning of unreachable classes and methods. Ashley presents an algorithm framework parameterized by a contextsensitivity operator and an operator for removing undesired precision of abstract values during analysis [Ashley 96, Ashley 97] He instantiates his framework to produce an algorithm that performs only a bounded amount of propagation before falling back to a distinguished Unknown abstract value, which resembles our simply bounded OO 0 CFA O(N 2 ) algorithm. Our framework additionally supports local unification ....
J. Michael Ashley. The Effectiveness of Flow Analysis for Inlining. In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, pages 99--111, Amsterdam, The Netherlands, June 1997.
....not only by its ability to recognize inlining opportunities but also by its discretion in exercising those opportunities. Recent research on procedure inlining for higher order languages has focused on the use of offline polyvariant flow analyses to identify appropriate inlining opportunities [8,4]. Although reported performance gains are impressive, the cost and volatility of such analyses renders the method impractical for use in production compilers. This paper presents a new inlining algorithm for higher order languages that combines simple analysis techniques with online transformation ....
.....89 .88 .90 .90 .90 interpret 1.19 1.26 1.31 1.31 1.31 1.31 1.17 1.23 1.28 1.29 1.29 1.35 peval 1.01 1.04 1.04 1.04 1.04 1.04 1.00 1.03 1.03 1.03 1.03 1.03 simplex .86 .86 .86 .86 .86 .86 .86 .86 .86 .86 .90 . 90 The inlining algorithm was evaluated using a suite of common Scheme benchmark programs [8,4,9]. The benchmark programs provided by Jagannathan and Wright [8] had already been processed by their local simplification pass, which performs many of the same optimizations as our inliner. To facilitate comparison with their results, performance data was collected on a 150 MHz SGI MIPS R4400 ....
[Article contains additional citation context not shown here]
J. Michael Ashley. The effectiveness of flow analysis for inlining. In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, 1997. To appear.
....results as complementary to their theoretical results and as a recipe for implementors who want efficient and polyvariant set based analysis. A realistic analysis based on the analysis developed in this paper is used in a production Scheme compiler to justify optimizations such as inlining [2] and procedure call optimizations [1] The rest of this paper is outlined as follows. In Section 2 we present an applicative language with assignment and a collecting interpreter from the language. The interpreter is given as a working Standard ML [18] program, and is parameterized on a set of ....
J. Michael Ashley. The effectiveness of flow analysis for inlining. In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, pages 99--111. ACM, 1997.
....than the flow sensitive version. We therefore use the flow insensitive version in the compiler. 4. EVALUATION Instantiations of the analysis framework can be used to enable compiler optimizations. Procedure inlining, for example, has been justified by 0CFA and polynomial1CFA instantiations [Ashley 1997]. We also use two instantiations to enable a set of call optimizations described below. One instantiation is 0CFA, but a 0CFA analysis is O(n 3 ) This upper bound prevents its unconditional use in a production compiler. In order to balance compile time speed with the quality of generated code, ....
Ashley, J. M. 1997. The effectiveness of flow analysis for inlining. In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming. ACM, 99--111.
No context found.
J.M. Ashley. The effectiveness of flow analysis for inlining. In Proc. 1997 ACM SIGPLAN International Conf. on Functional Programming (ICFP '97), pages 99--111, June 1997.
No context found.
J. Michael Ashley. The Effectiveness of Flow Analysis for Inlining. In Proceedings of the 1997 ACM SIGPLAN International Conference on Functional Programming, pages 99--111, Amsterdam, The Netherlands, June 1997.
No context found.
J.M. Ashley. The effectiveness of flow analysis for inlining. In Proc. 1997 ACM SIGPLAN International Conf. on Functional Programming (ICFP '97), pages 99--111, June 1997.
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