| Wall, D. Predicting Program Behavior Using Real or Estimated Profiles. PLDI 1991, 59-70. |
....in different runs of a program. However, they warn that some runs of a program exercise entirely different parts of the program. Hence, these runs cannot be used to make predictions about each other. By using the average branch direction over a number of runs, this problem can be avoided. Wall [24] studied several types of profiles such as basic block counts and the number of references to global variables. He measured the usefulness of a profile as the speedup obtained when that profile is used in a profileguided compiler optimisation. Seemingly, the best results are obtained when the same ....
D. Wall. Predicting program behavior using real or estimated profiles. In Proceedings of the 1991.
....92.6 97.9 r3 M. M. Avg 1.07 1.61 1.17 Table 3. Overall results for partial and complete profile comparison. We calculate the three metrics over all uncertain procedures (partial comparison) and over all procedures in the new version (complete comparison) We also use the Key Matching method [Wa190] to compare the most frequently executed portion of the profiles. For any integer n, the Key Matching function K.M. n) counts the number of code blocks that belong to the top n entries of both profiles, i.e. the top n most frequently executed code blocks. In Table 4 we calculate how well our ....
D. Wall, "Predicting Program Behavior Using Real Or Estimated Profiles." DEC WRL Technical Note TN-18, December 1990.
....frequencies, local and global branch probabilities, and function call and invocation frequencies. To measure the effectiveness of our static profiles, we compared them against dynamic profiles of the SPECInt92 C benchmarks and several Unix applications. We used Wall s weighted matching technique [Wall 91] to evaluate the two profiles. As an example, our profiles identified the blocks in the group of the 20 most frequently executed (dynamic) blocks that accounted for 82 of this group s counts. By contrast, Wall s heuristics (on a different set of programs) identified the blocks that accounted for ....
....It is far more ambitious than the work in this paper, which merely predicts an ordering of the execution frequency of program components, rather than producing absolute estimates of their frequencies. Wall studied the problem of predicting program behavior based on static analysis [Wall 91]. His heuristics were much simpler than those in this paper. For example, to predict basic block frequencies, he tried four heuristics: the block s loop nesting depth, a combination of loop nesting depth and the distance to a call graph leaf, the number of call sites for the containing function, ....
[Article contains additional citation context not shown here]
Wall, David W., "Predicting Program Behavior Using Real or Estimated Profiles," Proceedings of ACM SIGPLAN'91 Conference on Programming Language Design and Implementation, Toronto, Ontario, Canada (June, 1991) pp. 59-70.
....makes the effectiveness of offline optimizations, especially memory system optimizations, dependent on profile stability across multiple runs of the same program with different inputs. The stability of code profiles, such as procedure, basic block, edge, and branch profiles, has been demonstrated [11, 27]. On the other hand, the stability of data reference profiles, especially temporal data reference profiles which are necessary for cache level optimizations, has neither been studied nor established. This is particularly unfortunate since data layout optimizations that target cache performance ....
....these profiles may be compared across different program runs despite changes in data object addresses. Section 4 presents experimental results that demonstrate the stability of temporal data reference profiles. 2. Comparing Profiles The literature discusses several methods for comparing profiles [3, 10, 11, 18, 24, 27]. While some of the comparison functions described are abstract and can be used for comparing various types of profiles, they have been primarily applied to code profiles. Calder et al. compare branch profiles with a coverage function that they define as the percentage of branches from a program ....
[Article contains additional citation context not shown here]
D. Wall. "Predicting program behavior using real or estimated profiles." In Proceedings of the ACM SIGPLAN'91 Conference on Programming Language Design and Implementation, pages 59-70, June 1991.
....some form of dynamic hardware branch prediction facility. In this paper, weinvestigate the efficacy of branch prediction based on inferences done by compile time inspection of the source code. This is refered to as program based branch prediction [3] as opposed to profile based prediction [17]. Previous approaches have been done mainly at the machine code level. This work is concerned only with conditional, nonloop branches, i.e. all conditional branches outside of loops and all conditional branches within a loop but excluding final conditional branchback to the top of a loop. We ....
D. W. Wall. (1991) Predicting program behavior using real or estimated profiles. Proc. of SIGPLAN '91 Conf. on Prog. Lang. Design and Impl. 59-70.
....created by type feedback. The SELF 93 compiler described below implements both optimizations. Predicting future receiver types based on past receiver types is only an educated guess. Similar guesses are made by optimizing compilers that base decisions on execution profiles taken from previous runs [Wall 1991]. However, in our experience, type profiles are more stable than time profiles if a receiver type dominates a call site during one program execution, it also dominates during other executions. A recent study by Grove et al. Grove et al. 1995] that measured the stability of type profiles in ....
WALL, D. 1991. Predicting Program Behavior Using Real or Estimated Profiles. Proceedings of the SIGPLAN `91 Conference on Programming Language Design and Implementation, 59-70.
....functions consistent with the region formation approach, e.g. edges entering innermost loop regions are placed before those entering outermost loop regions. One particularly attractive priority function is the use of execution probabilities. These can be derived either from profile information [23, 60], from static estimates such as loop nesting depth [16] or from static branch estimates [47] The choice of edge ordering is orthogonal to register allocation but of course influences the quality of the code, as our register allocation framework is edge order sensitive: shuffle code is less ....
D. Wall. Predicting program behavior using real or estimated profiles. In Proc. ACM SIGPLAN '91 Conf. on Compiler Construction, pages 59--70. ACM, June 1991.
....two procedures condensed into a single edge between the two vertices in the graph. The CG can be constructed statically or using profile information. For static constructions, there is an edge between any caller callee pair, and the edge weight is estimated based on the program control flow graph [78, 89]. Using dynamic information, we record edges and calling return frequencies only for the activated call sites. The resulting graph, called Dynamic Call Graph (DCG) 90] is a subgraph of the static CG with edges weighted with actual execution frequency data. In this thesis we discuss profile based ....
D. Wall. Predicting Program Behavior using Real or Estimated Profiles. In Proceedings of the International Conference on Programming Language Design and Implementation, pages 59--70, June 1991.
....the original program. Execution of the profiled version of the program is slow. With some methods, the profiled version runs 30 times slower than the optimized program. At best, a profiling program can be expected to run two times slower. In addition, test inputs need to be carefully chosen [6] [7]. Static estimation solves some of the problems related to gathering profile data [8] However, these techniques are not as accurate as profiling [6] 7] When used for superblock scheduling, static estimates achieve approximately 50 of the speedup that profiling can achieve [9] Many ....
....program. At best, a profiling program can be expected to run two times slower. In addition, test inputs need to be carefully chosen [6] 7] Static estimation solves some of the problems related to gathering profile data [8] However, these techniques are not as accurate as profiling [6] [7]. When used for superblock scheduling, static estimates achieve approximately 50 of the speedup that profiling can achieve [9] Many commercial microprocessors, such as the Pentium series [10] and the PowerPC 604 [11] incorporate some form of branch handling hardware. This paper proposes using ....
D. Wall, "Predicting program behavior using real or estimated profiles," in Proc. ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, (Toronto, Ontario, Canada), pp. 59--70, June 1991.
....strongly peaked. Our C results confirm this general result, but the programs we measured are significantly larger and appear to make heavier use of the object oriented features of C , such as deep class hierarchies and factoring, judging by the greater degree of observed polymorphism. Wall [Wall 91] investigated how well profiles predict relatively fine grained properties such as the execution frequencies of call sites, basic blocks, and references to global variables. He reported that profiles from actual runs of a program are better indicators than static estimates, but still are often ....
David W. Wall. Predicting Program Behavior Using Real or Estimated Profiles. SIGPLAN Notices, 26(6):59--70, June 1991. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation.
....these libraries have common behavior between different applications. 2 Background Several studies have examined how execution from one run of a program predicts the future behavior of that program. David Wall provided an early study on predicting the future behavior of a program using profiles [15]. The results showed that using profiles from a different run of the application achieved results close to that of a perfect profile from the same run. Fisher and Freundenberger confirmed this observation applied to static branch prediction [9] They used traces from one execution of a program to ....
David W. Wall. Predicting program behavior using real or estimated profiles. In Proceedings of the ACMSIGPLAN '91 Conference on Programming Language Design and Implementation, pages 59--70, Toronto, Ontario, Canada, June 1991.
....the program. An important issue involving profiled based optimizations is how well does a single input capture the typical behavior of future runs of the program. Several researchers have investigated this problem and have found that programs have predictable behavior between different inputs [4, 7, 19]. Even so, care must be taken when choosing the inputs to guide optimizations. In this vein, we took a few of the optimized programs used to produce the results in Table 2 and ran them using different inputs. Table 3 shows the cache miss rates for these programs using different inputs. For these ....
D.W. Wall. Predicting program behavior using real or estimated profiles. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 59--70, Toronto, Ontario, Canada, June 1991.
....run is performed rst to gather more detailed information than what is (easily) available during runtime. Best results are of course obtained if a perfect prole is used (i.e. the same input) However, proles from dioeerent input data sets can predict the actual prole with satisfactory accuracy [31]. Chapter 4. Implementation The main dioeerence between the modes is that the prole based version considers all pages where code has been executed, while the runtime version only considers pages where there have been instruction lter overAEows. The overAEows indicate frequently executed code. ....
David W. Wall. Predicting program behavior using real or estimated pro- les. Technical Note TN-18, Western Research Laboratory, December 1990.
....A more serious conflict occurs when two branches are important and map into the same cache location. As long as these conflicts are relatively rare, the runtime optimizer can still recover by inferring the profile value of the missing branches. Using Kirchhoff s First Law and other heuristics [12], the input and output weights of the block can be estimated based on the branches that were accurately profiled. While the I cache and BTB collect information about important instructions and branches, respectively, it is infeasible to combine the BBB with either of these two structures. In ....
D. Wall, "Predicting program behavior using real or estimated profiles," Tech. Rep. TN-18, Digital Equipment Corporation WRL Technical Note, Palo Alto, CA, Decemeber 1990.
....drive a profile based compilation of the original program. Execution of the profiled version of the program is slow. With some methods, the profiled version runs 30 times slower than the optimized program. In addition it is difficult to choose and validate the test inputs used for profiling [9] [10]. Even given the obvious performance advantages, software vendors are hesitant to use profile driven optimizations due to the added complexity of development, maintenance, support, and debugging. Static estimation solves some of the problems related to gathering profile data [11] However, these ....
....software vendors are hesitant to use profile driven optimizations due to the added complexity of development, maintenance, support, and debugging. Static estimation solves some of the problems related to gathering profile data [11] However, these techniques are not as accurate as profiling [9] [10]. When used for superblock scheduling, static estimates achieve approximately 50 of the speedup that profiling can achieve [7] In addition to this, static estimation cannot capture highly data dependent branches, limiting the acceptance of this approach by software vendors. AT T Global ....
[Article contains additional citation context not shown here]
D. Wall, "Predicting program behavior using real or estimated profiles," in Proc. ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, (Toronto, Ontario, Canada), pp. 59--70, June 1991.
.... perform various 2 optimizations such as trace scheduling [8, 9] code reordering [10, 11, 12] inter procedural register allocation [13] optimization and scheduling of superblocks [14] and hyperblocks [15] and improved branching [16] Many static branch prediction techniques have been proposed [17]. Since the predicted branch outcome is determined prior to run time, static branch prediction schemes are unable to adapt to changes in the behavior of individual branch instructions. Static branch prediction techniques are usually based on a set of rules, or heuristics, obtained by observing the ....
D.W. Wall. Predicting Program Behavior Using Real or Estimated Profiles. In Proc. of ACM Programming Language Design and Implementation, pages 59--70, June 1991.
....mainly interested in the latter use, since we will apply branch prediction to compiler based speculative execution and other code motion techniques. Static branch prediction relies only on information that is obtained by static analysis of the program. Semi static branch prediction uses profiling [Wal91] to predict the branch direction. Dynamic branch prediction saves branch directions in hardware history registers and tables and uses this information to predict branches during run time. The misprediction rate of semi static branch prediction strategies is about half that of the best static ....
....to a block which uses the operands of the branch With this heuristics Ball and Larus reach an average misprediction rate of 20 , about twice the misprediction rate achieved by profile based branch prediction. 2. 2 Semi static Branch Prediction Semi static branch prediction is based on profiling [Wal91]. McFarling and Hennessy [MH86] were the first to suggest the use of profiling for branch prediction and gave some data. Fisher and Freudenberger [FF92] made a comprehensive study of branch prediction based on profiling. Instead of using the misprediction rate as a measure, they gave the average ....
David E. Wall. Predicting program behavior using real or estimated profiles. In 1991 SIGPLAN Conference on Programming Language Design and Implementation. ACM, June 1991.
....types. The authors reported an extremely high success rate but gave no numbers or details on this table lookup strategy. Wall used program based heuristics to estimate various program profiles (the number of times a particular program component executes) rather than to predict individual branches [17]. He reported poor results for his estimator, compared to a randomly generated profile. Lee and A. J. Smith s paper on branch prediction strategies reported that for the workloads they considered (IBM 370, DEC PDP 11, and CDC 6400) branches were taken twice as often as they fell through [10] Lee ....
D. W. Wall, "Predicting Program Behavior Using Real or Estimated Profiles," Proceedings of the SIGPLAN 91 Conference on Programming Language Design and Implementation, (Toronto, June 26-28, 1991), ACM SIGPLAN Notices 26(6) pp. 59-70 (June, 1991). -- 20 --
....involved development of Parascope Editor [33] in which the user annotates the program and is given a feed back based on performance estimates to help the development process. However, the use of compilation techniques for estimation was a complex program due to limits on static estimation analysis [34] and also due to the complex run time behaviors of the architectures that could not be easily captured. The communication overhead is especially tricky to model and the complexity of modeling its software component has been shown [35] The effect on message passing or shared memory model on the ....
....component has been shown [35] The effect on message passing or shared memory model on the performance characteristic of a parallel program was analyzed by Chandra and others [36] Some studies have indicated the potential of compiler analyses for performance prediction. In particular, Wall [34] discusses the relative merits of static estimators vs. profile data and provides a study to determine the utility of profile data gathered during one execution instance on another. Wang [37] proposes a portable framework that estimates the performance costs using symbolic information for ....
D. Wall, Predicting Program Behavior Using Real or Estimated Profiles, Proceedings of the 1991 ACM SIGPLAN Conference on Programming Language Design and Implementation, 1991, pp. 59--70.
....to feed into a reordering algorithm, though the performance of the optimization is dependent upon how accurately the profile represents the future behavior of the program. David Wall provided an early study on predicting the future behavior of a program using real and estimated profiles [31]. His results showed that using profiles from a different run of the application achieved results close to that of a perfect profile from the same run. Fisher and Freundenberger confirmed this observation applied to static branch prediction [10] They used traces from one execution of a program to ....
....we need to (1) identify the probability that the branch is taken, and (2) convert this probability into an estimation frequency that an edge, basic block, and procedure are executed. An initial study into generating static frequencies for building an estimated profile was performed by David Wall [31]. In this work, Wall calculated static execution frequencies for basic blocks and procedures. This was done by first building a procedure call graph and a basic block control flow graph for each procedure. Then dominator, loop depth, and static call depth information were used to build estimation ....
[Article contains additional citation context not shown here]
D.W. Wall. Predicting program behavior using real or estimated profiles. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 59--70, Toronto, Ontario, Canada, June 1991.
....associating, with each call site, a set of entry actions that must be executed by that call site. Moreover, each call site has associated with it an estimate of its execution frequency: such estimates can be obtained from profile information, or from the structure of the call graph of the program [2, 13, 14, 21]. Finally, different entry actions may require a different number of machine instructions to execute, and therefore have a different cost. 2 The precise mechanism by which this information is obtained, e.g. dataflow analysis, user declarations, etc. is orthogonal to the issues discussed in ....
D. W. Wall, "Predicting Program Behavior Using Real or Estimated Profiles", Proc. SIGPLAN91 Conf. on Programming Language Design and Implementation, June 1991, pp. 59--70. Program no optimization partition-&-sort greedy optimal
....captured in the program profile. Each procedure is mapped to a single vertex, with all call paths between any two procedures condensed into a single edge between the two vertices in the graph. Edge weights can be derived from profiling information or estimated from the program control flow [8] [12]. In this paper we concentrate on profile based edge weights. After constructing the Call Graph we lay out the program using cache line coloring. We start by dividing the cache into a set of colors, one color for each cache line. For each procedure, we count the number of cache lines needed to ....
D.W. Wall, "Predicting program behavior using real or estimated profiles," in Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, Toronto, Ontario, Canada, June 1991, pp. 59--70.
....Inlining The Vortex compiler automatically makes decisions about which routines are appropriate for inlining. Currently, the compiler uses conventional heuristics that examine the apparent size of the callee method, the expected execution frequency of the call (derived from static heuristics [Wall 91] or from dynamic profile data as in section 3) and whether the call is recursive. However, for higher level languages that use calls for most operations, the heuristics do not perform very well, since they consider only the superficial sourcelevel size of the target method and ignore any effects ....
....strongly peaked. Our C results confirm this general result, but the programs we measured are significantly larger and appear to make heavier use of object oriented programming techniques, such as deep class hierarchies and factoring, judging by the greater degree of observed polymorphism. Wall [Wall 91] investigated how well profiles predict relatively fine grained properties such as the execution frequencies of call sites, basic blocks, and references to global variables. He reported that profiles from actual runs of a program are better indicators than static estimates but still are often ....
David W. Wall. Predicting Program Behavior Using Real or Estimated Profiles. SIGPLAN Notices, 26(6):59--70, June 1991. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation.
....been determined by the edge profile for each procedure. As the supergraph is clearly a DAG, we can run the M D and M P algorithms on this graph and use the three predictors to pick hot paths over the entire benchmark, rather than on a per procedure basis. We use Wall s weight matching scheme [Wal91] to compare the paths picked by the three predictors to paths in the actual path profile. First, the executed paths (over all procedures) are totally ordered by their frequency in the actual path profile. A hot path in the actual profile is one whose frequency is greater than a certain percentage ....
....to that for linear programming (see above) However, the similarity ends there: they do not make use of lower or upper bounds in their work and require very expensive statistical computations. Other related work shows to estimate vertex profiles via static analysis of the control flow graph [Wal91, WMGH94] In contrast, we are estimating path profiles from existing edge profiles. Our results might be improved by performing static analysis as well. We could also apply our techniques to the vertex profiles estimated via static analysis, or collected by other techniques (such as PC sampling ....
D. W. Wall. Predicting program behavior using real or estimated profiles. ACM SIGPLAN Notices, 26(6):59--70, June 1991. Proceedings of the 1991 ACM Conference on Programming Language Design and Implementation.
....give a brief overview of profiling and its uses. The different profilers and resulting profiles will also be described briefly. IV.A Introduction to Profiling . a profile is a mapping from instances of some kind of program entity, like variables or procedures, into numeric weights. David Wall [38] Profiling a program gives information about a program s state during execution. The information a profile includes depends on the entity being profiled. Common profiles are the procedure level profile which gives information about how often a procedure is invoked and how much of the overall ....
....IV.B Different Input Data For a profile to be valuable in supporting compiler optimizations, the information contained within the profile needs to be representative for different input data sets. How well profile data of different runs correlate, was originally investigated by David Wall [38]. The author shows that a profile gathered with a given data set still outperforms static analysis of the program when run on a second data set, by more than a factor of two. In Chapter V we present results on how our value profiler performs using different input data sets. 22 IV.C Uses for ....
[Article contains additional citation context not shown here]
D.W. Wall. Predicting program behavior using real or estimated profiles. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 59--70, Toronto, Ontario, Canada, June 1991.
....In the example of Figure 17(b) the maximum spanning tree for the given weighting (determined by his heuristic) induces a sub optimal counter placement. Wall experimented with a number of heuristics for estimating basic block and procedure profiles solely from program text, reporting poor results [33]. Wall s heuristics use information about loop nesting and call graph structure to predict basic block and procedure profiles, but do not take into account conditional control flow (i.e. predicting that code that is more deeply nested in conditionals is executed less frequently) as our ....
D. W. Wall, "Predicting program behavior using real or estimated profiles," Proceedings of the SIGPLAN 91 Conference on Programming Language Design and Implementation, (Toronto, June 26-28, 1991), ACM SIGPLAN Notices 26(6) pp. 59-70 (June, 1991).
....with exhaustive singleton class tests. Also, these metrics are based on probabilities, and so give a good indication of the relative costs of the two approaches. Absolute frequency information, either derived from profile data or estimated from the program s structure using static techniques [Wall 91, Wagner et al. 94] would also be useful, to determine if a particular message send site is deserving of substantial optimization effort. 55 3.3.5 Check Strengthening The situation illustrated in Figure3.15 (c) and reprised in Figure3.15 (a) arose because a call site downstream of the ....
DavidW. Wall. Predicting Program Behavior Using Real or Estimated Profiles. SIGPLAN Notices, 26(6):59--70, June 1991. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation.
....to feed into a reordering algorithm, though the performance of the optimization is dependent upon how accurately the profile represents the future behavior of the program. David Wall provided an early study on predicting the future behavior of a program using real and estimated profiles [29]. His results showed that using profiles from a different run of the application achieved results close to that of a perfect profile from the same run. Fisher and Freundenberger confirmed this observation applied to static branch prediction [10] They used traces from one execution of a program to ....
....these and other studies [5, 7, 8] have promoted the advantage of using profile based optimizations as a means to improve program performance. 2. 1 Related Estimated Profile Work A number of researchers have investigated using static branch prediction techniques to estimate overall program behavior [12, 20, 24, 26, 29, 30]. Recently we have developed a strategy called Evidencebased Static Prediction (ESP) using profiles from a set of selected programs to generate the estimated probability of a branch being taken in future (different) programs [4] Profiling statistics for the corpus of training programs are ....
[Article contains additional citation context not shown here]
D.W. Wall. Predicting program behavior using real or estimated profiles. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 59--70, Toronto, Ontario, Canada, June 1991.
....programs, 16 for Fortran programs, and 10 for our other C programs. 2 Background Several studies have examined how execution from one run of a program predicts the future behavior of that program. David Wall provided an early study on predicting the future behavior of a program using profiles [15]. The results showed that using profiles from a different run of the application achieved results close to that of a perfect profile from the same run. Fisher and Freudenberger confirmed this observation applied to static branch prediction [8] They used traces from one execution of a program to ....
David W. Wall. Predicting program behavior using real or estimated profiles. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 59--70, Toronto, Ontario, Canada, June 1991.
....component. The number of components modeled will depend in part on the needed accuracy for the use of the model. 4.1.2 Related Work: Application Profile Various application profiles have been addressed in the literature. A detailed application profile is of common use in compiler optimizations [Wal90, CGS95] For program comprehension and tuning, tools like gprof [GKM82] and pixie [Sil] can supply application profile tables of data to help determine the percentage of time spent in a function, how many times a basic block was run, how often a global variable was accesses, and even for some ....
David W. Wall. Predicting program behavior using real or estimated profiles. Technical Report WRL TN-18, Digital Western Research Laboratory, 1990.
....of using decision trees. This entire discussion is predicated on being able to associate execution frequencies (or, when normalized, estimated execution probabilities) with the clauses defining a procedure. For a discussion of this issue in the context of compilers for traditional languages, see [2, 9, 10, 18, 19]; techniques for estimating execution frequencies of logic programs from their call graph structure are discussed in [3, 16] A point to note is that the techniques described in [3, 16] involve a simple and efficient lineartime traversal of the call graph of the program (i.e. a graph describing ....
D. W. Wall, "Predicting Program Behavior Using Real or Estimated Profiles", Proc. SIGPLAN-91 Conf. on Programming Language Design and Implementation, June 1991, pp. 59--70.
....a considerable amount of research has gone into better branch prediction techniques. Initial static 20 prediction schemes were based on branch opcodes, and were not accurate. Now, static prediction schemes are much more sophisticated, and use profile information or heuristics to take decisions [28, 75, 98, 118, 160]. In addition to branch prediction, the compiler uses several other techniques to overcome the effects of control dependencies. Some of these techniques are if conversion, loop unrolling, loop peeling, loop conditioning, loop exchange [12] function inlining [28, 85] replacing a set of IF THEN ....
D. W. Wall, "Predicting Program Behavior Using Real or Estimated Profiles," Proceedings of ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, pp. 59-70, 1991.
....amount of polymorphism used by the programs they studied is far less than the potential amount. Our C results confirm this general result, but the C programs we measured are much larger and appear to be written in a more object oriented style based on the polymorphism they exhibit. Wall [Wall 91] investigated how well profiles predict the execution frequency of call sites, basic blocks, references to global variable references, and other kinds of behavior. He reported that profiles from actual runs of a program are better predictors than static estimates of execution frequency. We ....
David W. Wall. Predicting Program Behavior Using Real or Estimated Profiles. In Proceedings of the SIGPLAN `91 Conference on Programming Language Design and Implementation, pp. 59-70, Toronto, Canada, June 1991. Published as SIGPLAN Notices 26(6), June 1991.
....4.3 we will see that the perl statistical profile can be used effectively for optimization, despite the differences between the complete and statistical profiles. 5 The basic block is in the routine cmd exec( at the label tail recursion entry . 14 4.2. 3 Key Matching In an earlier paper by Wall [1990], key matching was used to compare complete profiles to estimated profiles from a static program analysis. In key matching, the basic blocks in a program are ordered according to their counts in the profile. Two orderings are then compared by computing a function f(n) called the score, which is ....
....potential for overflow. At a sampling frequency of 1000Hz it takes a little over a minute of iterating on a single basic block to overflow a two byte counter. Lastly, the memory locality of applying updates to a large array of counters could potentially be worse than recording PC samples to a log. Wall [1990] explored the use of estimated profiles using static analysis only as an alternative to run time profile collection. If the estimated profiles were of sufficient quality, then it might be possible to use estimated profiles in place of complete profiles to achieve many of the same goals as our ....
D. Wall. Predicting Program Behavior Using Real or Estimated Profiles, DEC WRL Technical Note TN-18, December 1990.
....strongly peaked. Our C results confirm this general result, but the programs we measured are significantly larger and appear to make heavier use of object oriented programming techniques, such as deep class hierarchies and factoring, judging by the greater degree of observed polymorphism. Wall [Wall 91] investigated how well profiles predict relatively fine grained properties such as the execution frequencies of call sites, basic blocks, and references to global variables. He reported that profiles from actual runs of a program are better indicators than static estimates but still are often ....
David W. Wall. Predicting Program Behavior Using Real or Estimated Profiles. SIGPLAN Notices, 26(6):59--70, June 1991. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation.
....far too crude to base important decisions on. It is possible to predict loop controlling branches fairly accurately using simple nesting heuristics and loop analysis, but simple heuristics perform very poorly for the non loop branches which dominate the dynamic branch count of many programs [Smith81, Wall91]. More sophisticated heuristic approaches base their decisions on the datatypes and type of comparison used in the branch and the code in the target basic block [BallLarus93, Wagner 94] Although these approaches are much better than trivial heuristics, their accuracy is still only mediocre. These ....
....calls in most programs significantly reduces the effectiveness of the register set. Register windows are a hardware solution to this problem, but interprocedural register allocation which takes into account the probabilities of function calls can make much better use of a given register set [Wall86, Wall88, Wall91, SteenkisteHennessy89]. In addition to the three optimizations mentioned above, several traditional high level optimizations can also benefit from knowledge of frequently executed paths by using tail duplication to create what are effectively larger basic block structures [ChangMahlkeHwu91] A similar mechanism can ....
David W. Wall. Predicting Program Behavior Using Real or Estimated Profiles . Proceedings of the SIGPLAN `91 Conference on Programming Language Design and Implementation, June 1991, pages 59-70.
....number of times and branches have an equal probability of being taken, and assigning each procedure a frequency based on its loop depth and branch position. The details of our method are given in Appendix A. For a discussion of related techniques used in compilers for traditional languages, see [2, 15, 17, 25, 26]; techniques for estimating execution frequencies of logic programs from their call graph structure are discussed in [9, 20] An alternative is to profile the program on sample inputs to estimate execution frequencies, e.g. see [11] 6 Tuning and Testing the Model With the analysis results from ....
....accurately how many times a branch will be executed or a procedure called, but to guide optimization decisions by giving (possibly conservative) relative execution frequencies for different program fragments. For a discussion of this issue in the context of compilers for traditional languages, see [2, 15, 17, 25, 26]; techniques for estimating execution frequencies of logic programs from their call graph structure are discussed in [9, 20] An alternative is to profile the program on sample inputs to estimate execution frequencies: as the results of Gorlick and Kesselman [11] indicate, the overhead for this ....
D. W. Wall, "Predicting Program Behavior Using Real or Estimated Profiles", Proc. SIGPLAN-91 Conf. on Programming Language Design and Implementation, June 1991, pp. 59--70.
....scheduling and related issues are discussed in Section 5 in greater detail. Traces are loop free 6 linear sections of code, which can span several basic blocks. They are derived from programs with known branch frequencies; branch frequencies are derived via profiling the program s execution [32, 39]. Informally, given these frequencies, a trace is derived by walking along the directions of control flow so that whenever a branch instruction is encountered, we take the branch with higher frequency. An example is shown in Figure 1 which denotes a control flow graph [2] of a sample program. ....
D. Wall. Predicting Program Behavior Using Real or Estimated Profile. In Proceedings of SIGPLAN`91 Conference on Programming Language Design and Implementation, pp. 59--70, 1991.
....regardless of the number of callers. Of course, even with these precautions, predicting future receiver types based on past receiver types is nothing more than an educated guess. Similar guesses are made by optimizing compilers that base decisions on execution profiles taken from previous runs [137]. However, it is likely that a program s type profile is more stable than its time profile [57] usually, no new types are created at runtime. Thus, once the application has run for a while, new types are unlikely to appear unless an exceptional case (e.g. an error) occurs or the programmer ....
....SELF s performance to a level that is competitive with other objectoriented languages, without compromising SELF s pure semantics. 7.3. 2 Different inputs A possible objection to the above results is that the performance of SELF 93 was measured using the same inputs on which it was trained [137]. Intuitively, this should have a smaller impact for SELF than it does for a conventional system. First, the main benefit of feedback is type information; that is, the program s type profile is more important than its time profile. The type profile is much more likely to remain unchanged from ....
David W. Wall. Predicting Program Behavior Using Real or Estimated Profiles. In Proceedings of the SIGPLAN `91 Conference on Programming Language Design and Implementation, p. 59-70. Published as SIGPLAN Notices 26(6), June 1991.
....in section 3.3. It starts by keeping all scalars in memory except within a basic block, but improves this at link time based on intermodule analysis. It builds a complete call graph and an estimate of how often each scalar is ############### This is optimistic, but perhaps not grossly so [43]. The miss ratios for each benchmark under schemes L and LP were shown in Figure 9. 25 EXPERIENCE WITH A SOFTWARE DEFINED MACHINE ARCHITECTURE used. Locals are combined into non conflicting groups based on the call graph, and the most frequently used globals and groups of locals are ....
David W. Wall. Predicting program behavior using real or estimated profiles. Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, pp. 59-70. Published as SIGPLAN Notices 26 (6), June 1991. Also available as WRL Technical Note TN-18.
No context found.
Wall, D. Predicting Program Behavior Using Real or Estimated Profiles. PLDI 1991, 59-70.
No context found.
D. W. Wall. Predicting program behavior using real or estimated profiles. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, Toronto, Canada, 1991.
No context found.
D. W. Wall. Predicting Program Behavior Using Real or Estimated Profiles. In Proceedings of the Conference on Programming Language Design and Implementation, volume 26, pages 59--70, June 1991.
No context found.
D. W. Wall. Predicting program behavior using real or estimated profiles. 26(6):59--70, June 1991. Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation.
No context found.
D. W. Wall, "Predicting program behavior using real or estimated profiles," ACM SIGPLAN Notices, vol. 26, no. 6, pp. 59--70, June 1991, published as part of the proceedings of PLDI'91.
No context found.
D. W. Wall. Predicting program behavior using real or estimated profiles. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, volume 26, pages 59--70, Toronto, Ontario, Canada, June 1991.
No context found.
David Wall. Predicting Program Behavior Using Real or Estimated Profiles. In Proceedings of the SIGPLAN `91 Conference on Programming Language Design and Implementation, p. 59-70, Toronto, Canada, June 1991. Published as SIGPLAN Notices 26(6), June 1991.
No context found.
D. Wall. Predicting program behavior using real or estimated profiles. In Proc. ACM SIGPLAN '91 Conf. on Compiler Construction, pages 59--70. ACM, June 1991. ACM Transactions on Programming Languages and Systems, Vol. XX, No. X, XXXX, 199X.
No context found.
D. Wall. Predicting Program Behavior Using Real or Estimated Profile. In Proceedings of SIGPLAN`91 Conference on Programming Language Design and Implementation, pp. 59-- 70, 1991.
No context found.
David Wall. Predicting Program Behavior Using Real or Estimated Profiles. In Proceedings of the SIGPLAN `91 Conference on Programming Language Design and Implementation, p. 59-70, Toronto, Canada, June 1991. Published as SIGPLAN Notices 26(6), June 1991.
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