| Michael Burke and Linda Torczon. Interprocedural Optimization: Eliminating Unnecessary Recompilation. ACM Transactions on Programming Languages and Systems, 15(3):367--399, July 1993. |
....if the module is used as part of several programs. Using this three phase analysis strategy along with a technique called recompilation analysis, a whole program compiler could restrict recompilation to only those modules to which interprocedural optimizations were applied that are no longer valid [8]. The FIAT system supports the interprocedural propagation phase. This phase is independent of the intermediate representation of source code used by the other phases. FIAT S input consists of local information for each procedure represented using a system independent abstraction that is ....
M. Burke and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems, to appear 1993.
....at O4. Optionally with this design, the compiler could try to minimize the amount of recompilation necessary when a change occurs by keeping track of which interprocedural information is used to modify functions in other translation units, building a dependence graph between the modules [4]. In practice, however, this would make the compiler much more complicated and prone to subtle bugs that are hard to reproduce. We feel that although the cost of recompilation is still fairly substantial in our system (native code must be regenerated for the entire application) that the extra ....
....the register allocation phase of native code generation. LLVM code can also cast a pointer to an integer type, add an arbitrary o#set to it, then cast it back to a pointer, if unstructured address arithmetic is necessary. typedef struct QuadTree double Data ; struct QuadTree Ch i l dren [ 4 ] ; QT; void Sum3rdChildren (QT #T, double Resu l t ) double Ret ; i f (T = 0) Ret = 0 ; e l se QT Ch i l d3 = T [ 0 ] Ch i l dren [ 3 ] double V ; Sum3rdChildren ( Ch i l d3 , V) Ret = V T [ 0 ] Data ; Resu l t = Ret ; a) Example function s t r u c ....
M. Burke and L. Torczon. Interprocedural optimization: eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems (TOPLAS), 15(3):367-- 399, 1993.
.... development process to make complete or nearly complete application source code available) Traditional compilation strategies (which only manipulate low level machine code at link time) make it difficult to perform high level analyses and transformations due to lack of high level information 2 [3, 1]. We have written an LLVM backend for GCC, which currently allows compilation of C to LLVM and will support C in the near future. The LLVM infrastructure includes standard scalar optimization passes and an optimizing linker. The optimizing linker links the different LLVM object code files ....
M. Burke and L. Torczon. Interprocedural optimization: eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems (TOPLAS), 15(3):367--399, 1993.
....to the work described in our paper. We plan to build upon these techniques while performing interprocedural analysis in the quasi static compiler. Several systems for selective recompilation of programs keep track of dependences between modules to reduce the overhead of recompilation [9, 1, 10]. We apply these techniques in a different context, and also supplement them with our stitching techniques that allow previously generated code to be fixed up, rather then invalidated, based on new runtime conditions. The Forest project [25] at Sun Labs is developing orthogonal persistence for ....
M. Burke and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems, 15(3):367--399, July 1993.
....the amount of local analysis required p is only re analyzed when it has been edited rather than on every compilation. By retaining information across compilations, the compiler can also limit the amount of recompilation that must be performed in response to an editing change to one procedure [6]. 5 Conclusions Microprocessor based systems present many challenges to the compiler writer. Given the proliferation of systems designed around microprocessors, it is imperative that we continue to attack the problems that we already see and that we examine the trends in microprocessor design to ....
M. Burke and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. To appear in ACM Transactions on Programming Languages and Systems.
.... the availability of other analysis results (or resources) A make like mechanism, called PipsMake, automatically determines the order in which the different phases must be scheduled for the different procedures to have the resources ready when needed initially or after some minor changes of sources[17] or analysis options. The ordering is automatically deduced from a specification file, written by the phase designers, using a call by need interpretation. For instance, the following production rule for array regions: regions MODULE.regions PROGRAM.entities MODULE.transformers ....
Michael Burke and Linda Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems, 15(3):367--399, July 1993.
....require recompilation if it has been indirectly affected by changes to some other module. Rather than recompiling the entire program after each change, ParaScope performs recompilation analysis to pinpoint modules that may have been affected by program changes, thus reducing recompilation costs [6, 10]. This process is described in greater detail in Section 5. Interprocedural analyses of scalar variables have been developed for ParaScope using Fiat, including ref, mod, alias and constants. The same framework has been used to solve a number of other interprocedural problems important to ....
....analysis and optimization framework of ParaScope. 5 Recompilation Analysis and Tests 5. 1 Recompilation Analysis Interprocedural compilation of Fortran D can be made more practical by following the ParaScope approach for limiting recompilation in the presence of interprocedural optimization [6, 10]. Recompilation analysis is used to limit recompilation of a program following changes, an important component to maintaining the advantages of separate compilation. Briefly stated, modules only need to be recompiled if they have been edited or if they have been optimized using interprocedural ....
[Article contains additional citation context not shown here]
M. Burke and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems, 15(3):367--399, July 1993.
....information, such as available constants or aliasing relationships, from one module to justify optimizations performed in another module. Burke and Torczon describe several schemes for performing selective recompilation in the face of common interprocedural optimizations for procedural languages [Burke Torczon 93] Under their compilation model, each procedure has several associated interprocedural summary sets. The simplest form of selective recompilation is to recompile a procedure whenever the body of the procedure changes or when an interprocedural set used during the compilation of the procedure ....
Michael Burke and Linda Torczon. Interprocedural Optimization: Eliminating Unnecessary Recompilation. ACM Transactions on Programming Languages and Systems, 15(3):367--399, July 1993.
....live range, constant, symbolic, interprocedural, and dependence testing information. Several algorithms for performing incremental analysis are found in the literature; for example, data flow analysis [RP88, Zad84] interprocedural analysis [Bur90, RC86] interprocedural recompilation analysis [BCKT90] as well as dependence analysis [Ros90] However, few of these algorithms have been implemented and evaluated in an interactive environment. Rather than tackle all these problems at once, we chose a simple yet practical strategy for the current implementation of Ped. First, the scope of each ....
....analysis A unique part of the ParaScope compilation system is its recompilation analysis, which avoids unnecessary recompilation after program edits. Recompilation analysis tests that interprocedural facts used to optimize a procedure have not been invalidated by editing changes [CKT86b, BC86, BCKT90] To extend recompilation analysis for interprocedural transformations, a few additions are needed. When an interprocedural transformation is performed, a description of the interprocedural 69 transformations annotates the nodes and edges in the augmented call graph. On subsequent compilations, ....
M. Burke, K. Cooper, K. Kennedy, and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. Technical Report TR90-126, Dept. of Computer Science, Rice University, July 1990.
....information, such as available constants or aliasing relationships, from one module to justify optimizations performed in another module. Burke and Torczon describe several schemes for performing selective recompilation in the face of common interprocedural optimizations for procedural languages [Burke Torczon 93] Under their compilation model, each procedure has several associated interprocedural summary sets. The simplest form of selective recompilation is to recompile a procedure whenever the body of the procedure changes or when an interprocedural set used during the compilation of the procedure ....
Michael Burke and Linda Torczon. Interprocedural Optimization: Eliminating Unnecessary Recompilation. ACM Transactions on Programming Languages and Systems, 15(3):367--399, July 1993.
....system, even modules that have not been edited may require updates if they are indirectly affected by changes to some other module. ParaScope has served as a testbed for recompilation analysis which identifies modules that have not been affected by program changes and do not need to be updated [5, 10]. Currently, ParaScope computes interprocedural ref, mod, and alias; implementations are underway to incorporate computation of interprocedural constants and a number of other important interprocedural problems, including interprocedural symbolic and regular section analysis of arrays. 3 Data ....
M. Burke and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems, 1993. to appear.
....if the module is used as part of several programs. Using this three phase analysis strategy along with a technique called recompilation analysis, a whole program compiler could restrict recompilation to only those modules to which interprocedural optimizations were applied that are no longer valid [8]. The fiat system supports the interprocedural propagation phase. This phase is independent of the intermediate representation of source code used by the other phases. Fiat s input consists of local information for each procedure represented using a system independent abstraction that is described ....
M. Burke and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems, to appear 1993.
....for performing interprocedural analysis [13] but is more targeted towards flow insensitive problems. Interval based approach for solving interprocedural data flow equations has been investigated in [2] Recompilation in a compiler performing interprocedural analysis has been investigated in [3]. Program Foo Procedure P(x,y) a = 1 . other computations . Sched(a,b) End Do i = 1, 100 Call P(a,b) Call Q(c) Procedure Q(z) Enddo z = z. Call Q(a) End Sched(a,c) Call P(a,c) If cond then Call Q(c) Procedure R(y,z) Sched(a,c) other computations . Endif End Call R(a,c) End Figure ....
Michael Burke and Linda Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems, 15(3):367--399, July 1993.
.... index sets Array aliasing reshaping # Overlaps l Scalar array side effects Buffers Symbolics constants l Live decompositions Reaching decompositions # Loop invariant decomps Table 1: Interprocedural Fortran D Dataflow Problems changes, thus reducing recompilation costs [5, 13]. This process is described in greater detail in Section 8. ParaScope computes interprocedural ref, mod, alias and constants. Implementations are underway to solve a number of other important interprocedural problems, including interprocedural symbolic and RSD analysis. ParaScope also contains ....
....in Figure 18. It integrates Fortran D compilation techniques with the interprocedural analysis and optimization framework of ParaScope. 8 Recompilation Analysis The Fortran D compiler will follow the ParaScope approach for limiting recompilation in the presence of interprocedural optimization [5, 13]. Recompilation analysis is used to limit recompilation of a program following changes, an important component to maintaining the advantages of separate compilation. Briefly stated, modules only need to be recompiled if they have been edited or if they have been optimized using interprocedural ....
[Article contains additional citation context not shown here]
M. Burke and L. Torczon. Interprocedural optimization: Eliminatingunnecessary recompilation. ACM Transactions on Programming Languages and Systems, to appear.
....call graphs, as well as recalculate live range, constant, symbolic, interprocedural, and dependence testing information. Several algorithms for incremental analysis can be found in the literature; e.g. data flow analysis [41] interprocedural analysis [8] interprocedural recompilation analysis [9], as well as dependence analysis [40] However, few of these algorithms have been implemented and evaluated in an interactive environment. Rather than tackle all these problems at once, we chose a simple yet practical strategy for the current implementation of Ped. First, the scope of each program ....
M. Burke and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems, to appear 1993.
....information (i.e. across module boundaries) it has exact knowledge of the target machine. Typically, compilers target an entire architecture family, not a particular processor implementation. Several studies suggest that we can significantly improve performance using this information [27, 44, 8]. In addition, our results suggest several simple steps towards this goal. First, implementing a global pointer can significantly improve performance. The performance improvement resulting from implementing a global pointer on the Sparc confirms this assertion. Second, the PowerPC is paying a ....
M. Burke and L. Torczon. Interprocedural optimization: eliminating unnecessaryrecompilation. ACMTransactionsonProgrammingLanguagesandSystems, 15(3):367--399, July 1993.
.... This two phase analysis required cooperation of other programming environment tools and the concept of a program compiler [Tor85] CKT85] CKT86a] Recompilation analysis was incorporated to minimize the need for recompilation as a result of changes to interprocedural information [CKT86b] BCKT90] Also, new algorithms were developed for interprocedural constant propagation [CCKT86] nearly linear side effect and aliasing analysis [CK88b] CK89] and array side effect analysis [CK88a] HK91] This earlier work provided a good framework for the research in this dissertation. One aspect ....
....Interprocedural transformations such as inlining and cloning require further consideration. 6.5. 1 Recompilation Analysis for Interprocedural Information Torczon presents three different approaches for minimizing the need for recompilation after interprocedural optimization [Tor85] CKT86b] BCKT90] The method currently used in the program compiler compares interprocedural information from the last compilation of a module with information obtained in the current compilation. For a procedure and its call sites, the mod, ref, alias and constant information must either be more precise than ....
[Article contains additional citation context not shown here]
M. Burke, K. Cooper, K. Kennedy, and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. Technical Report TR90-126, Dept. of Computer Science, Rice University, July 1990.
....of parametric data flow analysis is related to other work. Burke and Torczon formulate a recompilation test that compares current interprocedural information with annotation sets that record those interprocedural facts which must continue to hold for a previous compilation to remain valid [5]. Their most precise computation of annotation sets involves augmenting data flow analysis to compute auxiliary information which is associated with the elements of a data flow solution. Chatterjee et al. parameterize points to analysis for compiling large programs with multiple modules [8] They ....
M. Burke and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems, 15(3):367--399, July 1993.
.... compilers, optimization Additional Keywords and Phrases: inline substitution, interprocedural analysis, interprocedural optimization 1 Introduction In recent years, many articles dealing with issues of interprocedural analysis and interprocedural optimization have appeared in the literature [1, 2, 5, 6, 7, 10, 12, 14, 17, 18, 19, 20, 21]. Several of these articles have attempted to assess the practical value of interprocedural data flow information or of specific cross procedural transformations. Ganapathi and Richardson point out that inline substitution can be viewed as an upper limit on the improvement available through use of ....
M. Burke, K. D. Cooper, K. Kennedy, and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. Technical Report RC 15968 (70983), IBM Research Division, July 1990.
....as well as recalculate live range, constant, symbolic, interprocedural, and dependence testing information. Several algorithms for incremental analysis can be found in the literature; e.g. dataflow analysis [47, 58] interprocedural analysis [10, 46] interprocedural recompilation analysis [11], as well as dependence analysis [45] However, few of these algorithms have been implemented and evaluated in an interactive environment. Rather than tackle all these problems at once, we chose a simple yet practical strategy for the current implementation of Ped. First, the scope of each program ....
M. Burke, K. Cooper, K. Kennedy, and L. Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. Technical Report TR90-126, Dept. of Computer Science, Rice University, 1990.
....to provide an initial parallel program [16, 17, 18] The next two subsections describe how the program compiler computes interprocedural data flow information and how it applies interprocedural transformations. Recompilation analysis is handled using methods described by Burke and Torczon [19]. 2.3 Interprocedural Analysis Interprocedural data flow analysis addresses several distinct problems. These include discovering the program s dynamic structure (call graph construction) summarizing side effects of executing a procedure call (summary analysis, regular section side effect ....
M. Burke and L. Torczon, "Interprocedural optimization: Eliminating unnecessary recompilation." To appear in ACM Transactions on Programming Languages and Systems.
....register requirement for C is 6. Only the register requirement of C is affected, since the register requirement of B is already 6. In summary, we essentially incrementally update only affected nodes. For this purpose we can use techniques from incremental data flow analysis and compilation [7, 26]. The invalidation mechanism for dynamic class loading has not yet been implemented. 11 Related Work Dynamic compilation, also called dynamic translation or just in time compilation, has been a key ingredient in a number of previous implementations of object oriented languages. Deutsch and ....
Michael Burke and Linda Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems, 15(3):367-- 399, July 1993.
No context found.
Michael Burke and Linda Torczon. Interprocedural Optimization: Eliminating Unnecessary Recompilation. ACM Transactions on Programming Languages and Systems, 15(3):367--399, July 1993.
No context found.
Michael Burke and Linda Torczon. Interprocedural optimization: Eliminating unnecessary recompilation. Transactions on Programming Languages and Systems (TOPLAS), 1993.
No context found.
Michael Burke and Linda Torczon. Interprocedural optimization: eliminating unnecessary recompilation. ACM Transactions on Programming Languages and Systems (TOPLAS), 15(3):367--399, 1993.
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