87 citations found. Retrieving documents...
P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software -- Practice and Experience, 22(5):349--369, May 1992.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Speculative Alias Analysis for Executable Code - Fernández, Espasa   (Correct)

....body of work on interprocedural dataflow analyses design to analyze only part, but not all, of a program (see, for example, 3, 5, 13, 26] although only some of them use profile information to guide their decisions. This profile information is, however, widely used when performing optimizations [24, 7, 10, 18]. On the other hand, while speculation has been commonly used in the compiler world for optimizing programs [19, 15, 20, 18, 25] as far as we know, this is the first attempt to introduce unsafe speculations into a dataflow analysis algorithm. 6. Summary and future directions greatly from ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software Practice and Experience, 22(5):349--369, 1992.


Online Profiling And Feedback-Directed Optimization Of Java - Arnold (2002)   (1 citation)  (Correct)

....were not fully automatic and relied on programmer directives to identify regions of code to be optimized. There exists a large body of work on collecting profiling information by performing instrumentation [25, 44, 4, 18, 17] as well as fully automatic optimizations based instrumented profiles [34, 27, 46, 30, 31, 10, 62, 65, 53]. However this work assumes the execution model where a profiles can be collected o#ine, using a separate training run. Although the resulting speedups are often promising, this approach fails in scenarios where 1) it is impractical to collect a profile prior to execution, or 2) the application ....

....feedback directed optimizations (either o#ine or online) strives to improve performance by using profiling information to identify common execution patterns that can be exploited when performing optimizations. Many systems have demonstrated success using o#ine profiling data to perform FDO [26, 34, 27, 46, 30, 31, 10, 62, 65, 53]. However, online feedback directed optimization is more di#cult than o#ine feedbackdirected optimization for several reasons. When using o#ine profile information, the profile is usually assumed to be free, accurate, and available prior to execution. With online profiling, none of these are ....

[Article contains additional citation context not shown here]

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen mei W. Hwu. Profileguided automatic inline expansion for C programs. Software -- Practice and Experience, 22(5):349--369, May 1992.


Systematic Power-Performance Trade-off in MPEG-4 by.. - Palkovic, Miranda.. (2002)   (Correct)

....to a particular function are replaced with its body. The definition based approach, however, does not allow the freedom to specify exactly which particular calls to a function are most essential for inlining. In the callbased approach the decision to inline (or not) may be made at each call site [6]. The call instance based inlining is the most flexible of the three policies where the call graph of program is expanded to what we term as call instance tree. Every call is now viewed as generating a copy (or instance) of the called function [7] Because of the very large cost sensitivity of ....

P. P. Chang, S. A. Mahlke, and W. Y. Chen. Profile-guided Automatic Inline Expansion for C Programs. Software-Practice and Experience, 22(5):349--369, 1992.


A Framework for Reducing the Cost of Instrumented Code - Arnold, Ryder (2001)   (26 citations)  (Correct)

....improvements will come fi om feedback directed optimizations, where profiling information is used to decide not only what to optimize, but how to optimize. There exists a large body of work on collecting offline profiles [3, 10, 11, 15, 26] as well as optimizations based on offline profiles [6,16,17,19,20,27]. Although some systems [5, 9, 21, 22,32] apply limited forms of online feedback directed optimizations, most of the offline work mentioned above has not yet been applied in fully automated online systems. The main difficulty in applying these optimizations online is that they often rely on ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software Practice and Experience, 22(5):349 369, May 1992.


Dynamic Optimization through the use of Automatic Runtime.. - Whaley (1999)   (3 citations)  (Correct)

....optimization Profile driven optimization is a relatively new field. Some static compilers utilize profile information from prior test runs to perform better optimizations, for example, trace scheduling [79] improving cache locality [87, 117, 48, 128, 127] or traditional optimizations [35, 34, 36, 23]. Profile driven optimizations have shown up in recent commercial products [89, 88, 131] There has been work on using profile information in dynamic compilers for Scheme [18, 17, 19] Self [61] Cecil [26] and ML [96, 101] More recently, the upcoming HotSpot dynamic compiler for Java claims to ....

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software Practice and Experience, 22(5):349--369, May 1992.


Evaluating Inlining Techniques - Kaser, Ramakrishnan (1998)   (11 citations)  (Correct)

....UNBSJ Saint John, N.B. E2L 4L5 e mail: owen unbsj.ca C. R. Ramakrishnan Dept. of CS SUNY at Stony Brook Stony Brook, NY, 11794 e mail: cram cs.sunysb.edu August 14, 1996 1 Introduction Procedure inlining is widely used by optimizing compilers for imperative and declarative languages [App92, BT86, Bal82, CMCH92, PS94, Sch77, Sta93]. Inlining permits a trade off between code size and execution speed. The goal of inlining has traditionally been to reduce the execution time with a limited expansion of code space. The gain in execution speed may be due to direct effects, such as the reduction in the number of call and return ....

....due to indirect effects, such as cache and virtual memory behaviour and in context optimizations permitted on the inlined code [DH92, CHT91, McF91] For efficiency and ease of implementation, many compilers restrict the conditions under which a procedure may be inlined. In some compilers (e.g. [CMCH92]) the calls that may be inlined depend on the order in which the procedures are declared. Several diverse heuristics are used to restrict inlining of recursive procedures. We call the restrictions imposed on inlining the inlining policy. An inlining technique consists of an inlining policy and a ....

[Article contains additional citation context not shown here]

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software---Practice and Experience, 25:349--369, 1992.


Path-Sensitive, Value-Flow Optimizations of Programs - Bodik (1999)   (2 citations)  (Correct)

....prediction attempts to predict the direction of a branch from previous program runs [MH86,FF92] Such optimization requires the counts of nodes or edges in the control flow graph. The profile capturing such information is called an edge profile. Edge profile is also used by procedure inlining [CMCH92,ASG97] which requires execution frequencies of each call site. More sophisticated static branch predictors measure the correlation among multiple branches, requiring profiling of control flow paths [YS94] Such path profiles are also useful in forming an instruction scheduling region, although ....

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software---Practice and Experience, 22(5):349-- 369, May 1992.


A Study of Exception Handling and Its Dynamic.. - Ogasawara, Komatsu.. (2001)   (8 citations)  (Correct)

....is invoked to compile a method m 1 , it searches the profile repository for the exception paths whose catching methods are the same as the target method. If such exception paths are found, the compiler examines each of the exception paths to make a decision on inlining. Previous work on inlining [15, 17, 9, 8] reduced it to the knapsack problem, as explained in the related work section above. The framework in these projects is based on a dynamic call graph, whose edge represents the relationship between a call site and its callee and whose node represents a method. Each edge has a frequency that ....

....the compile time. They do not describe how they changed the method inlining heuristics; however, their report implies that aggressive method inlining can cause an explosion of code size and compilation time. Method inlining is one of the most widely applied optimizations in both static compilers [15, 17, 9] and dynamic compilers [35, 7, 51] The central issue in the optimization is how aggressively inlining 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. ....

Chang, P. P., Mahlke, S. A., Chen, W. Y., and Hwu, W. W. Profile-guided automatic inline expansion for c programs. Software: Practice and Notices 22, 5 (May 1992), 349--369.


A Comparative Study of Static and Dynamic Heuristics for .. - Arnold, Fink, Sarkar.. (2000)   (7 citations)  (Correct)

....material please do not distribute MAIN G H I A E F B C D a) E:133 MAIN:0 A:1 B:121 D:111 C:101 F:4 b) MAIN 1 D C 120 100 110 1 1 1 1 1 1 130 1 1 A B E F 1 1 c) Figure 1: Call graph representations for an example program. a) SCG, b) CG N, and c)DCG E. studies [16, 7, 15], we model the benefit of inlining as the number of runtime method calls eliminated. The bottom line benefit will of course be execution time, which we will report in section 6. There also many potential sources of overhead due to inlining e.g. increase in code size, decrease in code ....

....dynamic call graph data. Scheifler [16] introduced the formulation, and noted that the optimization is equivalent to the KNAPSACK problem. Scheifler presented a greedy algorithm which relied on a constant ratios assumption to infer expected frequencies of inlined call sites. Chang et al. [7] report results with profile directed inlining with the IMPACT optimizing C compiler. Similar to our study, the IMPACT work used only post mortem dynamic call graph data, and used a greedy algorithm to maximize the number of call sites inlined subject to a fixed space bound. Their algorithm uses ....

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-guided automatic inline expansion for c programs. Software -- Practice and Experience, 22(5):349--369, May 1992.


Rapid Profiling via Stratified Sampling - Sastry, Bodik, James (2001)   (8 citations)  (Correct)

....has been shaped by two trends. First, profiles have become indispensable in a spectrum of advanced optimizations that include trace scheduling [20] and extend well beyond it: basic block and path profiles [6,43] identify hot spots in the program; call graph profiles [1] guide procedure inlining [3, 9, 10]; dynamic type profiling removes indirect calls in object oriented languages [25,26] value invariance profiles lead to program specialization [8,11,32,36] and memory conflict profiles To appear at the 28th International Symposium on Computer Architecture (ISCA 2001) Goteborg, Sweden between ....

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software ---Practice and Experience, 22(5):349--369, May 1992.


Load Redundancy Elimination on Executable Code - Fern'andez, Espasa, Debray   (Correct)

....are based solely on the final object representation have the attraction of being able to work on a full program basis and be fully integrated on a normal compilebuild test cycle. A second reason for the recent interest in binary optimization has been the emergence of profile directed feedback [22, 7, 10, 13]. As it has been shown in several studies [3, 4] the compiler can use to great advantage the profiling information. However, the same problem of separate compilation plagues the production use of profile feedback. If the profiling information has to be used when compiling, then a large project ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W.-M. W. Hwu. Profile-guided automatic inline expansion for C programs. Software Practice and Experience, 22(5):349--369, May 1992.


Goal-Directed Value Profiling - Scott Watterson Saumya (2001)   (1 citation)  (Correct)

....improvements in profiling performance, yielding order of magnitude improvements in both the space and time requirements for profiling, while retaining all of the optimization opportunities. There has been a great deal of work on profiling techniques [2, 3, 13] and profileguided code optimization [6, 7, 17]. However, to the best of our knowledge this is the first work that aims to make the profiler goal directed, i.e. aware of the potential utility of the profiling information that it is gathering, and able to modify its profiling actions based on this awareness, in order to reduce profiling ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu, "Profile-guided automatic inline expansion for C programs", Software Practice and Experience vol. 22 no. 5, May 1992, pp. 349--369.


Reconciling Responsiveness with Performance in Pure.. - Hölzle, Ungar   (Correct)

....of the entire program, thus precluding run time extensibility. Studies of inlining for more conventional languages like C or Fortran have found that it often does not increase execution speed but tends to increase code size significantly (e.g. Davidson and Holler 1988] Cooper et al. 1991] [Chang et al. 1992], Hall 1991] In contrast, inlining in SELF results in both significant speedups and only moderate code growth. The main reason for this striking difference is that SELF methods are much smaller on average than C or Fortran procedures, so that inlining can actually reduce code size. Because of ....

CHANG, P., MAHLKE, S., CHEN, W., AND HWU, W.-M., 1992. Profile-guided automatic inline expansion for C programs. Software---Practice and Experience 22 (5), 349-369.


A Comparative Study of Static and Profile-Based.. - Arnold, Fink, Sarkar, .. (2000)   (2 citations)  (Correct)

....benefits due to inlining; e.g. fewer calls at runtime, larger regions of code for optimization, easy exchange of context information across the caller callee boundary, specialization, etc. For the sake of simplicity in formulating the algorithms, and following practice in several previous studies [16, 7, 15], we model the benefit of inlining as the number of runtime method calls eliminated. The bottom line benefit will of course be execution time, which we will report in section 6. There also many potential sources of overhead due to inlining e.g. increase in code size, decrease in code ....

....and large size inputs respectively. 11 troduced the formulation, and noted that the optimization is equivalent to the KNAPSACK problem. Scheifler presented a greedy algorithm which relied on a constant ratios assumption to infer expected frequencies of inlined call sites. Chang et al. [7] report results with profile directed inlining with the IMPACT optimizing C compiler. Similar to our study, the IMPACT work used only postmortem dynamic call graph data, and used a greedy algorithm to maximize the number of call sites inlined subject to a fixed space bound. Their algorithm uses ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W.-M. W. Hwu. Profile-guided automatic inline expansion for c programs. Software -- Practice and Experience, 22(5):349--369, May 1992.


Recursion Unrolling for Divide and Conquer Programs - Rugina, Rinard   (Correct)

....parts in the unrolled code. Finally, for all our benchmarks, the combined effects of conditional fusion and recursion re rolling always improves the running times as compared with the programs with recursion unrolling alone. 6 Related Work Procedure inlining is a classical compiler optimization [3, 2, 4, 6, 12, 7, 11]. The usual goal is to eliminate procedure call and return overhead and to enable further optimizations by exposing the combined code of the caller and callee to the intraprocedural optimizer. Some researchers have reported a variety of performance improvements from procedure inlining; others have ....

P. Chang, S. Mahlke, W. Chen, and W. Hwu. Profile-guided automatic inline expansion for C programs. Software---Practice and Experience, 22(5):349-- 369, May 1992.


Goal-Directed Value Profiling - Scott Watterson Saumya (2001)   (1 citation)  (Correct)

....improvements in profiling performance, yielding order of magnitude improvements in both the space and time requirements for profiling, while retaining all of the optimization opportunities. There has been a great deal of work on profiling techniques [2, 3, 15] and profileguided code optimization [5, 6, 24]. However, to the best of our knowledge this is the first work that aims to make the profiler goal directed, i.e. aware of the potential utility of the profiling information that it is gathering, and able to modify its profiling actions based on this awareness, in order to reduce profiling ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu, "Profile-guided automatic inline expansion for C programs", Software Practice and Experience vol. 22 no. 5, May 1992, pp. 349--369.


Training Compilers for Better Inlining Decisions - Dean, Chambers (1993)   (1 citation)  (Correct)

....compiler self monitoring offers new opportunities for adaptive, optimizing systems. 6 Related Work Previous work on automatic inlining focuses primarily on attempting to maximize the direct benefits of inlining without too much increase in compiled code space [Scheifler 77, Allen Johnson 88, Chang et al. 92] In the context of this related work, indirect benefits of inlining tend to be relatively unimportant. Automatic inliners for languages like SELF have quite a different flavor, particularly because many things which would be built in operators and control structures in other languages are ....

Phua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-guided Automatic Inline Expansion for C Programs. In Software - Practice and Experience 22(5), pp. 349-369, May, 1992.


Identifying Profitable Specialization in Object-Oriented.. - Jeffrey Dean Craig (1994)   (15 citations)  (Correct)

....of the program. Edge weights in the call graph help to identify portions of the call graph which are important enough to warrant specialization. Other compilation systems have exploited dynamic profiles to guide the application of optimizations, such as the Impact C profile guided inliner [Chang et al. 92] The Cecil implementation uses polymorphic inline caches (PICs) to speed dynamic dispatch [Hlzle et al. 91] A PIC is a call site specific method lookup cache, mapping argument classes for a message send to the routine which should be invoked. When a Cecil program terminates, its PICs ....

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-Guided Automatic Inline Expansion for C Programs. In Software---Practice and Experience 22(5), pp. 349-369, May, 1992.


Profile-Guided Receiver Class Prediction - Grove, Dean, Garrett, Chambers (1995)   (55 citations)  (Correct)

....still are often inaccurate. We investigated the predictive power of a coarser grained kind of information, receiver class distributions, and find that they have much greater stability. We also examined stability across program versions, a property not considered by Wall. The IMPACT C compiler [Chang et al. 92] uses profile derived execution frequencies to guide inlining. They report a 10 improvement in the speed of C programs using one set of inputs to predict behavior on another set of inputs. Thus, they demonstrate that the cross input stability of their profiles was sufficient to yield performance ....

Pohua P. Chang, Scott A. Mahlke, , and Willam Y. Chen Wen-Mei W. Hwu. Profile-guided Automatic Inline Expansion for C Programs. Software Practice and Experience, 22(5):349--369, May 1992.


Region Formation Analysis with Demand-driven Inlining for.. - Ben (2000)   (1 citation)  (Correct)

....for deciding whether to inline at a given callsite during demand driven inlining. 6. Related Work Profile driven function inlining and cloning have been shown to have a large to moderate positive impact on performance of C codes depending on the use of profile information and heuristics [1, 3, 6, 16]. Others have had positive, but less dramatic speedups for C without the use of profiling [8] A study of inlining on Fortran codes indicated that there exists potential for performance degradation due to such secondary effects as increased register pressure, and that inlining should be considered ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu. Profile-guided automatic inline expansion for C programs. Software Practice and Experience, 22(5):349--369, May 1992.


Scalable Procedure Restructuring for Ambitious Optimization - Way (2000)   (Correct)

....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 ....

....and optimization, but increases the algorithmic complexity and the compile time and space requirements. Profile driven function inlining and cloning has been shown to have a large to moderate positive impact on the performance of C codes depending on the use of profile information and heuristics [5, 16, 46]. Others have had positive, but less dramatic speedups for C without the use of profiling [21] A study of inlining on Fortran codes indicated that there exists potential for performance degradation due to such secondary effects as increased register pressure, and that inlining should be ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu. Profile-guided automatic inline expansion for C programs. Software Practice and Experience, 22(5):349--369, May 1992.


Adaptive Optimization in the Jalapeño JVM - Arnold, Fink, Grove, Hind.. (2000)   (68 citations)  (Correct)

....takes a partial evaluation approach. The tcc system [39] provides a mechanism to specify and compose arbitrary expressions and statements at runtime. The main disadvantage of these techniques is that they rely on programmer directives to identify the regions of code to be optimized. Other work [17, 29] has explored offline profile directed compilation schemes that use one or more profiles from previous runs of an application as feedback into a compiler to make better optimization decisions for future executions. In addition, there are fully automated profiling systems that use transparent low ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software -- Practice and Experience, 22(5):349--369, May 1992.


The Predictability of Libraries - Calder, Grunwald, Srivastava (1995)   (Correct)

....prediction studies. i 1 Introduction Profile guided code optimizations have been shown to be effective by several researchers. Among these optimizations are basic block and procedure layout optimizations to improve cache and branch behavior [3, 10, 12] register allocation, and trace scheduling [5, 6, 8, 11]. The technique that all these optimizations have in common is that they use profiles from a previous run of a given program to predict the behavior of a future run of the same program. However, many researchers believe that collecting profile information is too costly or time consuming, and that ....

P. P. Chang and W. W. Hwu. Profile-guided automatic inline expansion for C programs. Software Practice and Experience, 22(5):349--376, 1992.


Eliminating Synchronization Overhead in Automatically.. - Diniz, Rinard (1999)   (1 citation)  (Correct)

.... instructions that increment counter variables [Smith 1991] Other profilers periodically interrupt the execution of the binary to sample the program counter [Anderson et al. 1997; Zhang et al. 1997; Graham et al. 1982] Profiling has been used to guide decisions to inline procedures in C programs [Chang et al. 1992], to drive instruction scheduling algorithms [Chen et al. 1994] to help place code so as to minimize the impact on the memory hierarchy [Pettis and Hansen 1990] to minimize the overhead associated with cache coherency in CC NUMA machines [Chilimbi and Larus 1994] to aid in register allocation ....

CHANG, P., MAHLKE, S., CHEN, W., AND HWU, W. 1992. Profile-guided automatic inline expansion for C programs. Software---Practice and Experience 22, 5 (May), 349--369.


Continuous Program Optimization: A Case Study - Kistler, Franz (2003)   (4 citations)  (Correct)

....in a continuous optimization Continuous Program Optimization: A Case Study 19 infrastructure. Although it has been shown previously that traditional techniques can profit from profiling data (e. g, code placement, code scheduling, or register allocation [Pettis and Hansen 1990; Chang et al. 1991; Chang et al. 1992; Chen et al. 1994] it is not immediately obvious that they can also noticeably benefit from continuous re optimization. This section will present dynamic trace scheduling, an optimization that enables us to study the impact of our infrastructure on more traditional optimization techniques. 6 ....

Chang, P. P., Mahlke, S. A., Chen, W. Y., and Hwu, W.-M. W. 1992. Profile-Guided Automatic Inline Expansion for C Programs. Software---Practice and Experience 22, 5(May), 349--369.


alto: A Platform for Object Code Modification - Muth (1999)   (8 citations)  (Correct)

....pressure [26] and lead to suboptimal register allocations. ffl In FORTRAN programs, the compiler might no be able to exploit the no alias requirement for arguments of subroutine calls, once such a subroutine has been inlined [20] ffl Inlining of recursive subroutines may lead to stack explosion [14]. ffl Through the increase in code size inlining might hurt instruction cache performance [53] Our optimizer inlines subroutines at the object code level. This avoids the problems with the increased register pressure and FORTRAN calling conventions, but is somewhat more complex than inlining at ....

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software Practice and Experience, 22(5):349--369, May 1992.


ADAPT: Automated De-Coupled Adaptive Program Transformation - Voss, Eigenmann (2000)   (8 citations)  (Correct)

....loss seen by StaticCombo. 5 Related Work Many modern compilers provide some facility for collecting and using profile information. Profiling has been used for guiding many optimizations, including branch prediction, basic block reordering, register allocation, instruction scheduling and inlining [14, 15, 16, 17]. Profiling makes use of information collected during previous program runs. The data collected through profiling is based upon program input that may not be representative of the current input. Profiles may also become inaccurate if the machine configuration or load changes. Adaptive optimization ....

P. Chang, S. Mahlke, W. Chen, and W. Hwu. Profile-guided automatic inline expansion for c programs. Software - Practice and Experience, 22(5):349--369, May 1992.


Lambda-Splitting: A Higher-Order Approach to Cross-Module.. - Blume, Appel (1997)   (22 citations)  (Correct)

....the amount of inlining dynamically for development (recompiling) or shrink wrapping mode. But the automatic cross module inlining schemes used to date have not treated free variables, nested scopes, higherorder functions, or link time side e#ects from module level initializers [DH88, CHT91, CMCH92] They cannot move a function body from module A to module B if the function has a free variable that is not exported from A and cannot be copied into B. This limits the generality of existing approaches, especially when applied to higher order functional languages. One might think of inlining ....

....may encode polymorphism as abstraction and type specialization as function application [Oho92, Tol94, HM95] Resource conscious programmers often like to say explicitly that they believe certain procedure calls should be inline expanded. Performance hints from a profiling feedback system [CMCH92] can play a similarly important role. Our framework can easily be adapted to take account of external hints. # splitting moves function bodies from one module to another, but ensuring that these functions are then inlined within the importing module is up to the existing intramodule inliner ....

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-guided automatic inline expansion for c programs. Software---Practice and Experience, 22(5):349--369, May 1992.


Using Cache Line Coloring to Perform Aggressive Procedure.. - Aydin, Kaeli (1999)   (Correct)

....a procedure, the optimizer needs to decide whether the removal of the call and return sequences will be more beneficial than the loss of cycles due to the increase in the instruction miss rate. Most optimizers use some form of the the following heuristics to select which procedures to inline [2]. A procedure is a inline candidate if: ffl a procedure s body is small (i.e. inlining it may actually reduce the executable image size) ffl a procedure is called from only one call site, or ffl a procedure is called frequently (e.g. inside a loop) Ayers et al. developed an aggressive ....

P. P. Chang, S. A. Mahlke, W. Y. Chen and Wen-mei W. Hwu. "Profile-Guided Automatic Inline Expansion for C Programs," Software Practice & Experience, John-Wiley.


Marmot: An Optimizing Compiler for Java - Fitzgerald, Knoblock, Ruf.. (1999)   (46 citations)  (Correct)

.... edges may be considered to have a single source (the very end of the source block) exception edges have multiple sources (all statements in the source basic block which might throw an instance of the edge s designated exception class) In this sense, JIR basic blocks are similar to superblocks [CMCH91] 3.2 Initial Conversion Compiling a Java program begins with a class file containing the main method. This class file is converted and all statically referenced classes in it are queued for processing. The conversion continues from the work queue until the transitive closure of all reachable ....

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software: Practice and Experience, 22(5):349--369, May 1991. 27


Dynamic Control Of Compile Time Using Vertical Region-Based.. - Braun   Self-citation (Hwu)   (Correct)

....used in each. The level of IR closest to the source code is called Pcode. It is a parallel C code representation with its loop constructs intact. The following functions are performed within Pcode: memory dependence analysis [3] 4] statementlevel profiling and function inlining [5] 6] 7] [8], loop level transformations [9] and memory system optimizations [10] The lower level of IR in IMPACT is referred to as Lcode. This is a machineindependent instruction set implemented as a generalized register transfer language similar to most load store architecture instruction sets. At this ....

....function call. The problems of a function based compiler are further aggravated in the presence of aggressive inlining. Profile base inlining is often employed by a compiler to gain a broader global view of a program and to reduce the effects of interprocedural coupling [1] 2] 5] 6] 7] [8]. Inlining often exposes memory aliasing, optimization opportunities, or cyclic control flow structures which were hidden in the original program by procedure calls. The 10 price of aggressive inlining, however, is an increase in the size of a program s functions. In a traditional, function based ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu, "Profile-guided automatic inline expansion for C programs," Software Practice and Experience, vol. 22, pp. 349-- 370, May 1992.


Structural And Static Analysis Techniques For Enhancing Compiler.. - Crozier (1999)   Self-citation (Hwu)   (Correct)

....representation that is referred to as Pcode. In Pcode memory dependence analysis [32] 33] loop level transformations [34] and memory system optimizations [35] 36] are performed. Additionally, profile guided code layout and function inline expansion are performed at this level [37] 38] [39]. Once optimization at the Pcode level is complete, the resultant code is then translated to IMPACT s low level intermediate representation, Lcode. Lcode is the lowest level intermediate representation in the IMPACT compiler. Lcode resembles the register transfer language found in most load store ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu, "Profile-guided automatic inline expansion for C programs," Software Practice and Experience, vol. 22, no. 5, pp. 349--370, May 1992.


Memory Disambiguation To Facilitate Instruction-Level.. - Gallagher (1995)   (17 citations)  Self-citation (Hwu)   (Correct)

....been flattened into a basic block structure with simple if then else and go to control flow constructs, but expressions are still maintained hierarchically. During this phase of compilation, basic block level profiling, as well as profile guided code layout and function inline expansion [7] 8] [9], are performed. The lowest level of IR in the IMPACT compiler is referred to as Lcode. Lcode is a generalized register transfer language similar in structure to most load store processor assembly instruction sets. The majority of ILP code transformations within the IMPACT compiler are 6 PCODE ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu, "Profile-guided automatic inline expansion for C programs," Software Practice and Experience, vol. 22, pp. 349--370, May 1992.


Data Dependence Analysis For Fortran Programs In The Impact Compiler - Haab (1995)   (7 citations)  Self-citation (Chang Hwu)   (Correct)

....not been a major focus of the IMPACT compiler research group up to this point in time. 3.3 The Hcode Compiler Module The Hcode module performs profiling at the level of the basic block. Additionally, profile guided code layout and function inline expansion are performed by the Hcode module [24] [25]. Eventually, all the functionality provided by this module will be relocated to the Pcode and Lcode modules. For instance, function inline expansion will be moved to the Pcode module in order to apply high level optimizations across function call boundaries. 3.4 The Lcode Compiler Module The ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu, "Profile-guided automatic inline expansion for C programs," Software Practice and Experience, vol. 22, pp. 349-- 370, May 1992.


Pinline: A Profile-Driven Automatic Inliner For The Impact Compiler - Cheng (1997)   (3 citations)  Self-citation (Hwu)   (Correct)

....this modularization on an optimizing compiler is negative because it blocks the compiler from seeing all of the code whenever a function call is encountered. For example, it hinders the compiler from globally performing register allocation, common subexpression elimination and constant propagation [10]. Originally, the IMPACT compiler expanded function calls with Hinline [10] which operates on the Hcode level. Hinline lacks the ability to inline function pointers and recursive calls. However, the most important impetus to perform inline expansion in Pcode instead of Hcode is that Hinline is ....

....the compiler from seeing all of the code whenever a function call is encountered. For example, it hinders the compiler from globally performing register allocation, common subexpression elimination and constant propagation [10] Originally, the IMPACT compiler expanded function calls with Hinline [10] which operates on the Hcode level. Hinline lacks the ability to inline function pointers and recursive calls. However, the most important impetus to perform inline expansion in Pcode instead of Hcode is that Hinline is unable to properly preserve sync arcs [11] the memory dependence information ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu, "Profile-guided automatic inline expansion for C programs," Software Practice and Experience, vol. 22, pp. 349--370, May 1992.


Data Relocation And Prefetching For Programs With Large Data Sets - Yamada (1995)   (32 citations)  Self-citation (Hwu)   (Correct)

....necessary to support data relocation and prefetching would be much easier to add to an existing processor than the hardware to support vectorization. 9 CHAPTER 2 HIGH LEVEL PROFILING AND SIMULATION In general, profiling information is very useful for code transformation and optimization [12][13]. This chapter describes a high level profiling tool for loop iteration analysis and array reference analysis. The statistics of the profiled results for some benchmarks are also described. Finally, high level cache simulation is described with some results to motivate data relocation and ....

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu, "Profile-guided automatic inline expansion for c programs," Software Practice & Experience, May 1992.


Adaptive Online Context-Sensitive Inlining - Hazelwood, Grove (2003)   (6 citations)  (Correct)

No context found.

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software -- Practice and Experience, 22(5):349--369, May 1992.


Speculative Alias Analysis for Executable Code - Manel Fernandez And (2002)   (Correct)

No context found.

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software Practice and Experience, 22(5):349--369, 1992.


Goal-Directed Value Profiling - Watterson, Debray (2001)   (1 citation)  (Correct)

No context found.

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu, "Profile-guided automatic inline expansion for C programs", Software Practice and Experience vol. 22 no. 5, May 1992, pp. 349--369.


To Inline or Not to Inline? - Enhanced Inlining Decisions   (Correct)

No context found.

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen mei W. Hwu. Profile-guided automatic inline expansion for c programs. Software - Practice and Experience, 22(5):349--369, 1992.


Dynamic Feedback: An Effective Technique for Adaptive Computing - Diniz, Rinard (1997)   (19 citations)  (Correct)

No context found.

P. Chang, S. Mahlke, W. Chen, and W. Hwu. Profile-guided automatic inline expansion for C programs. Software---Practice and Experience, 22(5):349--369, May 1992.


Procedure Boundary Elimination for EPIC Compilers - Triantafyllis, Vachharajani, .. (2002)   (Correct)

No context found.

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu, "Profile-guided automatic inline expansion for C programs," Software Practice and Experience, vol. 22, pp. 349--370, May 1992.


Techniques for Transparent Program Specialization in Dynamic.. - Sastry   (Correct)

No context found.

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W.-M. W. Hwu. Profile-guided Automatic Inline Expansion for C Programs. Software---Practice and Experience, 22(5):349--369, May 1992.


A Survey of Adaptive Optimization in Virtual Machines - Arnold, Fink, Grove, Hind.. (2004)   (Correct)

No context found.

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W.-M. W. Hwu, "Profile-guided automatic inline expansion for C programs," Software---Practice and Experience, vol. 22, no. 5, pp. 349--369, May 1992.


Efficient and Accurate Analytical Modeling of Whole-Program Data .. - Xue, Vera (2003)   (Correct)

No context found.

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. W. Hwu. Profile-guided automatic inline expansion for C programs. Software --- Practice and Experience, 25:249--369, 1992.


Using Cache Line Coloring to Perform Aggressive Procedure.. - Aydin, Kaeli (2000)   (Correct)

No context found.

P. P. Chang, S. A. Mahlke, W. Y. Chen and Wen-mei W. Hwu. "Profile-Guided Automatic Inline Expansion for C Programs," Software Practice & Experience, John-Wiley.


A Method-Level Analysis of Object-Oriented Techniques in Java .. - Power, Waldron (2002)   (Correct)

No context found.

P. Chang, S.A. Mahlke, W.Y. Chen, and W.W. Hwu, "Profile-guided automatic inline expansion for C programs," Software - Practice and Experience, vol. 22, no. 5, pp. 349 -- 369, May 1992.


Adaptive Online Context-Sensitive Inlining - Hazelwood, Grove (2003)   (6 citations)  (Correct)

No context found.

P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software -- Practice and Experience, 22(5):349--369, May 1992.


Eliminating Virtual Function Calls in C++ Programs - Aigner, Hölzle (1996)   (39 citations)  (Correct)

No context found.

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profileguided automatic inline expansion for C programs. Software---Practice and Experience 22 (5): 349-369, May 1992.


Eliminating Virtual Function Calls in C++ Programs - Aigner, Hölzle (1995)   (39 citations)  (Correct)

No context found.

Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software---Practice and Experience 22 (5): 349-369, May 1992.

First 50 documents  Next 50

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