| Thomas Gross and Peter Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software-Practice and Experience, 20(2), February 1990. |
....widely used Fortran programs. Similar to the Beehive work [17, 36] the effectiveness of our scheme depends heavily on the precision of data flow analysis that the compiler writers are willing to incorporate in the compiler. Some of the required analysis techniques, e.g. array data flow analysis [19, 34, 13, 33], are being 11 actively explored. Instead of implementing these techniques in our test environment, we adopt a trace based simulation methodology to study the effects of different data flow analysis capabilities on the performance of the proposed mechanism. Nonetheless, we have previously ....
....[16] when only scalars are involved. When arrays are involved, unfortunately, no algorithms are known to be able to compute the kill set and the last write set precisely for all cases. For simple cases, such as the one in Figure 3, however, these sets can be analyzed precisely (see, for instance, [13, 19]) If these sets cannot be analyzed precisely, then reaching definitions (see below) involving certain last writes and certain exposed reads will become obscure. In such cases, the involved last writes should be conservatively marked as i writes and the exposed reads marked as c reads, which, in ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software -- Practice and Experience, 20(2):133--155, February 1990.
....research has focused on distance and direction vectors. For a good set of references see [9] More recent work has looked into simple data flow analysis and dam flow vectors[3] 15] 14] Other researchers have focused on extended traditional dam flow analysis to individual array elements[16][11][10] Table 2 shows the results of analyzing two simple programs using all the different approximations discussed in this section. Number of Data Dependence Data Flow Dependence equivalence classes Problem Problem 1 Simple Data Dependence Analysis Simple Data flow Analysis m Dependence Levels ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software - Practice and Experience, 20(2): 133-155, 1990.
....task of finding the sets DEAD, DE, and RO involves solving the dataflow equations presented earlier. Since we wish to include in this analysis information about regions of arrays, we must extend the classic iterative algorithm. Our approach is based upon the one devised by Gross and Steenkiste [GS90] and expanded upon by Granston and Veidenbaum [GV91, GV95] This method uses a form of interval analysis to compute the required sets. An interval is a portion of the control flow graph with at most one back edge. Typically, such an interval describes a simple loop in the program. The algorithm ....
T. Gross and P. Skeenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software -- Practice & Experience, 20(2):133--155, February 1990.
....handle global communication optimization for multiple loop nests in the case of block cyclic distributions. Interval analysis used in this paper was first introduced by Allen and Cocke [5] They used it to solve several data flow problems; the analysis was then extended by Gross and Steenkiste [20] to array sections. The approach proposed by Gupta et al. 22] mentioned above refines the technique by Gross and Steenkiste using loop carried dependences. In this paper we used ideas from the linear algebra framework [7] and data flow analysis [5, 4] devel48 oped for performing optimizations on ....
T. GROSS and P. STEENKISTE. Structured data-flow analysis for arrays and its use in an optimizing compiler. In Software-Practice and Experience, vol 20, no 2, pages 133--155, February 1990.
....uses. The bulk of the work in this field has treated all variables as scalars, resulting in a very conservative analysis for array variables. More precise methods are based on representations of array subsets, such as data access descriptors [Bal90] or regular sections [HK91] The W2 compiler [GS90] for the Warp multiprocessor gathers information such as the set of definitions reaching a basic block to exploit the fine grain parallelism offered by the highly pipelined functional units. It is based on interval analysis [All70, Coc70] and computes information with array region granularity. ....
....optimization opportunities, since it only compares pairs of occurrences (i.e. references or definitions) and does not take into account how control flow links them together. Therefore, combinations of dependence analysis and PRE have been used, for example for determining reaching definitions [GS90] or performing scalar replacement [CK92] For example, Duesterwald et al. incorporate iteration distance vectors (assuming regular array references) into an array reference data flow framework, which is then applied to memory optimizations and controlled loop unrolling [DGS93] Several ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software---Practice and Experience, 20(2):133--155, February 1990.
....arrayi(hloop variablei) For many programs, this can actually be achieved by forward substituting array indices. For example, the code sequence j=ia(i) x(j) 10 would be treated as x(ia(i) 10. Arrays which are never referenced indirectly are assumed to be analyzed using other methods [4] prior to this analysis. References with multiple (but bounded) levels of indirection will require more levels of complexity in the dataflow framework; we do not consider potentially unbounded indirection, as is found in linked lists. Let V be the set of arrays which are accessed indirectly. We ....
....represented as a node in G and l is represented as some interval in G. In the following, loop refers to elements of N , i.e. it may denote a pad as well. Future work will present a complete framework in which summary information is built in a bottom up fashion similar to array kill information [4]. Finally, this paper only discusses the case where the summarized loops have no data dependences, except for commutative and associative reductions which are handled specially. 2.2 Array portions Array portions are a central concept to the framework and best introduced by an example. A portion ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software---Practice and Experience, 20(2):133--155, February 1990.
....As before, all of the numbered conditions for a given outcome must be satisfied. 2.6 Interval analysis Our data flow framework is based on interval analysis. We refer the reader to previous works for a complete description of the terminology and mechanics of this form of data flow analysis [2, 8, 9, 12, 15]. Interval analysis proceeds in two steps: an interval contraction phase, followed by an interval expansion phase. In the contraction phase, intervals are processed from innermost to outermost; an interval is only processed after all the intervals it contains are completed. We solve a set of ....
....phase proceeds until all intervals have been contracted; the final graph (a DAG) is then analyzed as if it were an interval. In the expansion phase, the process is reversed: summary nodes are expanded into their original intervals and then re analyzed. As with the work of Gross and Steenkiste [9] and of Granston and Veidenbaum [8] we present two sets of equations, the first for computing information within an interval, and the second for collapsing the nodes in an interval into a single summary node. 2.7 Data flow equations Figure 8 gives the names and definitions for the sets of ....
[Article contains additional citation context not shown here]
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software---Practice and Experience, 20(2):133--155, February 1990.
....loop after parallelization. possible communication between PEs executing these statements. This communication is addressed in subsequent steps of the basic method. 2.2. 2 Array Dataflow Analysis Gross and Steenkiste developed a method for performing interval based dataflow analysis on arrays[12]. Using their method, it is possible to determine which sections of an array are live at any given point in the program, and the definition which produced that section can be identified. A section in this context is a regular section, as defined in section 2.2.4. Conversely, for any definition it ....
Thomas Gross and Peter Steenkiste. Structured Dataflow Analysis for Arrays and its Use in an Optimizing Compiler. Software---Practice and Experience, 20(2):133--155, Feb. 1990.
....the expressions. By using this powerful representation, we can perform many of the necessary analyses and strength reduction optimizations through mathematical manipulations of the systems of inequalities. There are many other representations developed over the years which might have been used [6, 13, 15, 16, 21, 22, 25, 26]. Definition 3.1 Assume a p deep (not necessarily perfectly nested) loop nest of the form: FOR i 1 = max(l 1;1 : l 1;m1 ) TO min(h 1;1 : h 1;n1 ) DO FOR i 2 = max(l 2;1 : l 2;m2 ) TO min(h 2;1 : h 2;n2 ) DO : FOR i p = max(l p;1 : l p;mp ) TO min(h p;1 : h p;np ) DO the loop body ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software--- Practice and Experience, 20(2):133--155, Feb. 1990.
....array elements. Early work uses regular sections [6, 24] convex regions [40, 41] data access descriptors [2] etc. to summarize MOD USE sets of array accesses. They are not array data flow analyses. Recently, array data flow analyses based on these sets were proposed (Gross and Steenkiste [19], Rosene [38] Li [29] Tu and Padua [43] Creusillet and Irigoin [10] and M. Hall et al. 21] Of these, ours is the only one using conditional regions (GAR s) even though some do handle IF conditions using other approaches. Although the second group does not provide as many details about ....
T. Gross and P Steenkiste. Structured data-flow analysis for arrays and its use in an optimizing compiler. Software -- Practice and Experience, 20(2):133--155, February 1990.
....and is therefore redundant. Our goal is to provide a framework, based on global array data flow analysis, for performing communication optimizations. The conventional approach to data flow analysis regards each access to an array element as an access to the entire array. Previous researchers [12, 11, 20] have applied data flow analysis to array sections to improve its precision. The array section descriptors, such as the regular section descriptor (RSD) 7] and the data access descriptor (DAD) 5] provide a compact representation for elements comprising certain special substructures of arrays. ....
....subscripts, and attempts to obtain more precise information. In this paper, we first introduce a new kind of descriptor, the Available Section Descriptor (ASD) that describes the availability of array elements on processors in an abstract space. We apply ideas from the interval analysis method [2, 12] to develop a procedure for obtaining global data flow information. This information is recorded using the ASDs. Finally, we describe some optimizations that can now be performed to reduce communication costs, and present an algorithm for one such optimization, eliminating redundant ....
[Article contains additional citation context not shown here]
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software - Practice and Experience, 20(2):133--155, February 1990.
....elimination, discussed in the context of eliminating redundant computation by Morel and Renvoise [17] and later refined by other researchers [5] The conventional approach to data flow analysis regards each access to an array element as an access to the entire array. Previous researchers [9, 8, 19] have applied dataflow analysis to array sections to improve its precision. However, using just array sections is insufficient in the context of communication optimizations. There is a need to represent information about the processors where the array elements are available, or need to be made ....
....optimizations. There is a need to represent information about the processors where the array elements are available, or need to be made available. For this purpose, we use a new kind of descriptor, the Available Section Descriptor (ASD) 12] We use ideas from the interval analysis method [2, 9] to develop a procedure for obtaining global dataflow information, that is recorded using the ASDs. With the resultant framework, we are able to capture a number of optimizations, such as: vectorizing communication, eliminating communication that is redundant in any control flow path, ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software - Practice and Experience, 20(2):133--155, February 1990.
....elimination, discussed in the context of eliminating redundant computation by Morel and Renvoise [24] and later refined by other researchers [8, 20, 9] The conventional approach to data flow analysis regards each access to an array element as an access to the entire array. Previous researchers [13, 12, 27] have applied data flow analysis to array sections to improve its precision. However, using just array sections is insufficient in the context of communication optimizations. There is a need to represent information about the processors where the array elements are available, or need to be made ....
....node. In the presence of loops, which lead to cycles in the control flow graph, one approach employed by classical data flow analysis is to iteratively apply the data flow equations over the nodes until the data flow solution converges [1] We use the other well known approach, interval analysis [2, 13], which makes a definite number of traversals through each node and is well suited to analysis such as ours which attempts to summarize data flow information for arrays. We use Tarjan intervals [29] which correspond to loops in a structured program. Each interval in a structured program has a ....
[Article contains additional citation context not shown here]
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software - Practice and Experience, 20(2):133--155, February 1990.
.... array kills [Barthou et al. 1996; 1997; Brandes 1988; Collard et al. 1995; Collard and Feautrier 1994; Feautrier 1991; Maslov 1994; Maydan et al. 1992; 1993; Ribas 1990; Voevodin 1992a; 1992b] Extend scalar data flow methods by recording which array sections are killed and or defined [Gross and Steenkiste 1990; Li 1992; Padua et al. 1993; Rosene 1990; Tu and Padua 1992; Tu 1995] Both approaches have merits. In general, the first produces more accurate information about the dependence (such as the dependence distance) but the second is more accurate in the presence of nonaffine control flow. Most of ....
Gross, T. and Steenkiste, P. 1990. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software---Practice Experience 20, 133--155.
....that are sufficient to predict each of scenarios for a write operation. As before, all of the numbered conditions for a given outcome must be satisfied. 2. 4 Interval analysis To test for the conditions described in Figures 4 and 6, we use a data flow framework based on a form of interval analysis [7, 8, 11, 14]. The first step in interval analysis is to build a control flow graph (CFG) for the procedure being analyzed and determine the set of intervals for the CFG [2] 4 An interval is a set of CFG nodes that make up a strongly connected component within the CFG. Each interval has a unique CFG node ....
....The expansion phase is essentially the reverse of the contraction phase; summary nodes are expanded back into their original intervals. After expansion, each interval is re analyzed, using the previously computed results from the contraction phase. As with the work of Gross and Steenkiste [8] and of Granston and Veidenbaum [7] we present two sets of equations, the first for computing information within an interval, and the second for collapsing the nodes in an interval into a single summary node. 2.5 Data flow equations Figure 7 gives the names and interpretations of the sets of ....
[Article contains additional citation context not shown here]
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software---Practice and Experience, 20(2):133--155, February 1990.
....on the left side of Figure 3, communication 4 fl reaches communication 5 fl, which would cause the latter to be split, leading to the elimination of partly redundant communication described above. If we are willing to pay the full price of array data flow analysis, such as that described in [9], better precision could be achieved by using reaching array section definitions as the basis for splitting. In that case, communication 6 fl on the left side of Figure 3 would also be split (into f1 c(11) Gamma 0, 2 c(21) Gamma 1g and f3 c(31) Gamma 2, 4 c(41) Gamma 3g) and the ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software--- Practice and Experience, 20(2):133--155, February 1990.
....changes in memory exclusion between iterations. We generalize primitive set operations, such as union and intersection, to operate on sets of parameterized rectangles. The technique we useis both efficient and exact for the examples given in this paper, and for a larger class of similar problems [GS94, GV91] In some cases exact analysis is too expensive or impossible using this technique, and we settle for a conservative approximation. The problem of applying data flow techniques to array references with the greatest possible accuracy and efficiency is the subject of current research [DGS93, ....
Thomas Gross and Peter Skeenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software -- Practice & Experience, 20(2):133--155, February 1994.
....underestimates of the affected region in order to be conservative, the lattice needs to be inverted. In addition, this approach requires an intraprocedural dependence analysis framework capable of using array kill information, such as those described by Rosene [Ros90] and by Gross and Steenkiste [GS90] While the computation of array kills does not necessarily require better symbolic information than that implemented in pfc, kill analysis is particularly sensitive to improvements. Flow insensitive summaries of mod and ref sections describe elements that may be accessed. If our subscript ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software---Practice and Experience, 20(2):133--155, February 1990.
....not yet been extended for direction vectors or complex iteration spaces. The I test developed by Kong et al.: integrates the GCD and Banerjee tests and can usually prove integer solutions [31] Gross and Steenkiste propose an efficient interval analysis method for calculating dependences for arrays [21]. Unfortunately their method does not handle coupled subscripts, and is unsuitable for most loop transformations since distance and direction vectors are not calculated. Lichnewsky and Thomasset describe symbolic dependence testing in the vatil vectorizer [39] Haghighat and Polychronopoulos ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software--- Practice and Experience, 20(2):133--155, February 1990.
....0 0.03 0.19 0.23 0 0.04 swim 0.09 0 0.01 38.09 0.10 0.09 tomcatv 0.01 0.99 9.49 11.64 9.11 6.20 turb3d 0 0 0.05 0.14 0 0 wave5 0.18 0.81 2.05 2.61 0.35 0.29 Fig. 14. Percent change between original and transformed (with profile) Our data flow framework resembles that of Gross and Steenkiste [11]. However their framework is geared towards finding parallelism as opposed to detecting useful reuse for cache optimizations. Our techniques are also similar to those developed by Gupta, Schonberg, and Srinivasan for optimizing communication placement for programs running on distributed memory ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software---Practice and Experience, 20(2):133--155, February 1990.
....only to code that does not contain any control flow constructs other than normalized for loops, and in which all subscripts and loop bounds are linear. Even within this domain, all previous methods [Bra88, Static Analysis of Upper and Lower Bounds on Dependences and Parallelism Delta 5 Fea88, GS90, Ros90, Rib90, Fea91, PW92b, Li92, MAL92, May92, MAL93, DGS93] only calculate an upper bound on the value based flow dependences, although one of these methods [Fea91] fails to give exact bounds only in extremely pathological cases. The method we describe in Section 3.5 is exact within this ....
....Some of these methods provide ways of recognizing when their results are exact, but do not describe any methods for computing lower bounds on dependences when they are not exact. There are a number of papers on techniques to analyze array kills and value based array data dependence [Bra88, Fea88, GS90, Ros90, Rib90, Fea91, Li92, MAL92, May92, MAL93, DGS93, Mas94] Of these, only the technique we describe here and that of Feautrier [Fea88, Fea91] and of Maslov [Mas94] are complete over the domain of affine expressions and no control flow other than loops. The techniques Static Analysis of ....
[Article contains additional citation context not shown here]
Thomas Gross and Peter Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software -- Practice and Experience, 20:133--155, February 1990. 28 \Delta William Pugh and Dave Wonnacott
....the loop scheduler that cross loop reuse exists and that it should try to assign iterations to processors in such a way that the reuse is preserved. Compile time identification of affinity regions was proposed by Appelbe et al. 8] Our data flow framework resembles that of Gross and Steenkiste [39]. However their framework is geared towards finding parallelism as opposed to detecting useful reuse for cache optimizations. Our techniques are also similar to those developed by Gupta, Schonberg, and Srinivasan for optimizing communication placement for programs running on distributed memory ....
....conditions presented in Figures 7.14 and 7.16 through the use of data flow analysis. The data flow framework we employ for this task is based on interval analysis. We refer the reader to previous works for a complete description of the terminology and mechanics of this form of data flow analysis [4, 38, 39, 43, 53]. Interval analysis proceeds in two steps: an interval contraction phase, followed by an interval expansion phase. In the contraction phase, intervals are processed from innermost to outermost; an interval is only processed after all the intervals it contains are completed. We solve a set of ....
[Article contains additional citation context not shown here]
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software---Practice and Experience, 20(2):133--155, February 1990.
....a descriptor with the corresponding non local reference s name. Also, with each node n and descriptor d, we associate Used(n; d) and Transp(n; d) predicates. Used(n; d) Transp(n; d) indicate whether the data section corresponding to d is used at not modified at n. We use array section analysis [6] to compare data sections precisely. If the data section corresponding to d is used (not modified) at n, we initialize Used (n; d) Transp(n; d) to ; and to otherwise. We use the semi lattice L = f ; UNBAL; g. Note that the non local references can either correspond to rhs references ....
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software---Practice and Experience, 20(2):133--155, February 1990.
No context found.
Thomas Gross and Peter Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software-Practice and Experience, 20(2), February 1990.
No context found.
T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software Practice and Experience, 20(2):133 155, February 1990.
First 50 documents
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