| W. Pugh and D. Wonnacott, "Eliminating False Data Dependences using the Omega Test", Proc. Programming Languages Design and Implementation, San Francisco, ACM Press, June 1992. |
....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 ....
W. Pugh and D. Wonnacott. Eliminating false data dependences using the Omega test. In Proceedings of the SIGPLAN Conference on Programming Languages Design and Implementation, pages 140--151, June 1992.
.... [Ban88] Other dependence tests of which some are NP complete can be found in the literature: Strong and weak SIV test [GKT91] Delta test [GKT91] Power test [WT90] Simple Loop Residue test [MHL91] Fourier Motzkin test [DE73, MHL91] Constraint Matrix test [Wal88] Omega test [PW92] Data access transformations are code transformations which change the order in which iterations in a loop nest are executed. The focus of these transformations is to improve data locality and register reuse. Beside improving data locality loop transformations can expose parallelism, make loop ....
W. Pugh and D. Wonnacott. Eliminating False Data Dependences Using the Omega Test. In Proceedings of the SIGPLAN'92 Symposium on Programming Language Design and Implementation, volume 27 of SIGPLAN Notices, pages 140--151, San Francisco, California, USA, July 1992.
....work on how to build dependence graphs for the features and constructs found in real world programming languages, 20 Years of the ACM SIGPLAN Conference on Programming Language Design and Implementation (1979 1999) A Selection, 2003. Copyright 2003 ACM 1 58113 623 4 . 5.00. including arrays [4, 50, 29, 18, 32], reference parameters [20] pointers [28, 19, 10] non structured control flow [2, 11, 1, 46, 27] and threads [26, 15, 30] Context Sensitive Program Analysis Nowadays the interprocedural slicing method of the PLDI 88 paper would be termed a context sensitive interprocedural slicing method. ....
W. Pugh and D. Wonnacott. Eliminating false data dependences using the Omega test. In Conf. on Prog. Lang. Design and Impl., pages 140--151, New York, NY, 1992. ACM Press.
....dependences. At worst, we end up with code that appears totally unsliceable when it may, in fact, be amenable to slicing. Again, the developers can be of enormous help, by manually breaking some of the false dependences. We also note that dependence analyzers are improving at a fast rate (see [14, 30]) and our algorithm will improve along with them. For example, if we incorporate the recent advances in loop dependence analyses such as those in the Omega Test [30] we may not have to unroll loops to slice a real time task. Moreover, we can obtain better slices for loops using techniques like ....
....by manually breaking some of the false dependences. We also note that dependence analyzers are improving at a fast rate (see [14, 30] and our algorithm will improve along with them. For example, if we incorporate the recent advances in loop dependence analyses such as those in the Omega Test [30], we may not have to unroll loops to slice a real time task. Moreover, we can obtain better slices for loops using techniques like loop distribution. We also rely on achieving reasonable execution time bounds for the code segments. But in the face of more complicated architectures, getting tight, ....
W. Pugh and D. Wonnacott. Eliminating false data dependences using the Omega test. In Proceedings of the ACM SIGPLAN '92 Conference on Programming Language Design and Implementation. ACM Press, June 1992.
....Being conservative has the following implications. First, for splitting operation, if we do not know exactly which portion of u is redefined by v, we should guarantee that no element of u that is actually redefined by v will be propagated. In this situation, existing data flow dependence tests [7] [14] [12] 5] can be used to determine whether two array references are independent or not. Based on the result, either the entire array reference is propagated or nothing is propagated. Second, for combining operation, if we are not sure that two array references u and v have the same communication ....
W. Pugh, and D. Wonnacott, "Eliminating False Data Dependences Using the Omega Test," Proceedings of the A CM SIGPLAN conference on Programming Language Design and Implementation, 1992.
....different researchers analysis techniques using these sets of approximations. Much of the dependence analysis 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 ....
W. Pugh and D. Wonnacott. Eliminating false data dependences using the omega test. In Proceedings of the SIGPLAN 1992.
....and under what conditions two array references may interfere. The bulk of past work on array dependence analysis has focused on imperative programming languages such as Fortran and C, and has resulted in a wide range of data dependence tests based on symbolic analysis of index values (e.g. see [15, 2, 8, 10, 9, 11, 3]) Java, with dynamically allocated arrays, also requires pointer induced alias analysis (e.g. see [5, 14, 13] of array objects as part of array dependence analysis. We examine an approach to dependence analysis for Java arrays, based on sparse congruence partitioning in SSA form, that also ....
W. Pugh and D. Wonnacott. Eliminating false data dependences using the omega test. Proceedings of the ACM SIGPLAN '92 Conference on Programming Language Design and Implementation, San Francisco, California, pages 140-151, June 1992.
....on Programming Languages and Systems, Vol. 19, No. 6, November 1997, Pages 1 47. 2 Delta Martin C. Rinard and Pedro C. Diniz data dependence analysis to parallelize computations that manipulate dense arrays using affine access functions [Banerjee 1988; Eigenmann et al. 1991; Hall et al. 1995; Pugh and Wonnacott 1992]. But data dependence analysis is, by itself, inadequate for computations that manipulate dynamic, pointer based data structures. Its limitations include a need to perform complicated analysis to extract global properties of the data structure topology and an inherent inability to parallelize ....
....or effectiveness of the commutativity testing algorithm to test first for independence, then apply the full symbolic commutativity testing algorithm only if the independence test fails. Although it is possible to apply arbitrarily complicated independence testing algorithms [Hendren et al. 1994; Pugh and Wonnacott 1992], the current compiler applies two simple, efficient independence tests. It tests if the two operations have different receivers or if neither operation writes an instance variable that the other accesses. In both of these cases, the operations are independent. 3.3 Extents A policy in the ....
PUGH, W.AND WONNACOTT, D. 1992. Eliminating false data dependences using the Omega test. In Proceedings of the SIGPLAN '92 Conference on Program Language Design and Implementation. ACM Press, San Francisco, CA.
....These methods proved to be robust in the case of intricate control flow. Some analyses explicitly handle recursive programs [3] However, they do not identify the run time instance of a definition site, i.e. the last write in a given memory cell. Analyses closer to our work were proposed in [7, 12, 18, 20], because they give the identity of definition instances and because they precisely handle array accesses thanks to symbolic simplifiers [12, 19] However, none of these analyses was developed for recursive programs. Our framework subsumes these analyses because loop nests can be considered as ....
W. Pugh and D. Wonnacott. Eliminating false data dependences using the omega test. In ACM SIGPLAN PLDI, 1992.
....safety property. This heuristic is not always reliable, but it does help. 6. Related work LINEAR PROGRAMMING. Many papers have suggested using linear programming techniques to discover program invariants, including the simplex method, Fourier Motzkin variable elimination [53] the Omega method [50], the SUPINF method [5, 55] Shostak s loop residues [56] and algorithms for special classes of linear systems [30, 9, 38] Typically, one combines linear programming with abstract interpretation over some simple domain (convex polyhedra, octagons, etc. 10, 11, 23, 25, 26, 24, 52] In this ....
....8.8.0. simplex method. Although the simplex based techniques offer more precision than our range analysis, it is not clear how well they scale. PARALLELIZING COMPILERS. One important application for array reference analysis is in discovering implicit parallelism in sequential Fortran programs [40, 4, 50]; however, those techniques do not seem to help with the buffer overrun problem because they focus too narrowly on the special case of loop optimization. ARRAY BOUNDS CHECKING. One way to avoid buffer overruns is to use runtime array bounds checks. There are several implementations of array ....
W. Pugh, D. Wonnacott, "Eliminating false data dependences using the Omega test," PLDI'92, pp.140--151.
.... Several methods are known to generate data dependence graphs, and fortunately GAPS is directly based on the OMEGA library, which allows the generation of exact data dependence information; moreover, it has been shown how to remove false data dependences using an extension to the OMEGA library [73], which makes the automation of this step possible. Fortunately, accurate data dependence information may be generated using the OMEGA library and logged to le using the Rlog le option when running petit, an extension to Michael Wolfe s tiny tool for dependence analysis. CHAPTER 5. HYBRIDISING ....
William W. Pugh and David Wonnacott. Eliminating false data dependences using the Omega test. In Proceedings of the Conference on Programming Language Design and Implementation, pages 140-151, San Francisco, California, USA, June 1992. ACM Press. BIBLIOGRAPHY 161
....integer solutions by using projection to eliminate variables until the constraints involve a single variable, at which point it is easy to check for an integer solution [44] For example, projecting the set of constraints x y and x y 1 onto x generates 2x 1. According to Pugh and Wannacott [68], if P and Q are propositions that can each be represented as a conjunction of linear equalities and inequalities, the Omega test can be used to check whether P is a tautology, whether P is satisfiable, and whether P Q is a tautology. Checking whether P is a tautology is trivial. For more details ....
....as a conjunction of linear equalities and inequalities, the Omega test can be used to check whether P is a tautology, whether P is satisfiable, and whether P Q is a tautology. Checking whether P is a tautology is trivial. For more details on the Omega Library, see Kelly et al. [44] and Pugh et al. [67,68,69]. 6.3 Induction Iteration Method When the untrusted code contains loops, we need to synthesize loop invariants. In our system, the synthesis of loop invariants is attempted by means of the thesis.fm Page 83 Tuesday, December 19, 2000 11:00 AM 84 induction iteration method. We present the basic ....
W. Pugh, and D. Wonnacott. Eliminating False Data Dependences Using the Omega Test. ACM SIGPLAN Conference on Programming Language Design and Implementation. San Francisco, CA (June 1992).
....will not work. This is not a matter of infeasibility of design, the mathematics simply do not apply. For example, Figure 5.6 and Figure 5.7 contrast two cases of static analyzability. Both attempt to use a polyhedral algebra tool (in this case, we used the University of Maryland Omega Calculator [89]) to scan a foreach loop with for loops. The former contains only a#ne array references and loop bounds, and the Omega Calculator succeeds: the region defined by the foreach loop is a polyhedron. The latter contains a non a#ne array reference, and the Omega Calculator fails: in this case, the ....
William Pugh and David Wonnacott. Eliminating false data dependences using the omega test. In Programming Language Design and Implementation, 1992. Also UMD Technical Report CS-TR-3191.
.... dependence between array references, compilers have traditionally relied on several well known algorithms based on a set of Diophantine equations [45] 46] More recently, techniques have been developed which are able to handle multidimensional arrays and more complex array subscripts [47] 48] [49], 50] Although array dependence analysis has reached a fair level of maturity, current techniques may achieve inex35 act results due to complicated reference patterns or occasional dependence, as was illustrated in Figure 3.2. A second complication to dependence analysis is the presence of ....
W. Pugh and D. Wonnacott, "Eliminating false data dependences using the omega test," in Proceedings of the ACM SIGPLAN '92 Conference on Programming Language Design and Implementation, pp. 140--151, June 1992.
....data flow analysis [8] Memory based dependences can then be calculated by taking the transitive closure of the set of value based dependences. In contrast, determination of value based dependences for array variables requires more sophisticated and computationally expensive analysis techniques [9], 10] While many program optimizations, such as code scheduling, require only memorybased dependences for validity checking, some require value based dependences. Determination of value based dependences are necessary for optimizations such as scalar replacement [7] which require knowledge of ....
....compile time are excluded since the step at run time may be negative. Although this restriction diminishes the applicability of the Omega Test to certain loops, no dependences remain undetected due to nonintegral dependence distance. The Omega Test also performs value based dependence analysis [9], 10] for code which contains only if and for C language control flow constructs; break, continue, return and goto constructs are not handled directly by the Omega Test interface. Although application of the test to code containing the excluded constructs is possible in certain cases, applying ....
W. Pugh and D. Wonnacott, "Eliminating false data dependences using the Omega Test," in Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, pp. 140--151, June 1992.
....in this expression each dependence name by the dependence itself, the dot by relation composition, the vertical bar by relation union, and the Kleene star by transitive closure. In suitable cases, one can compute the composite dependence in closed form by using, for instance, the Omega calculator [PW92]. However, since the transitive closure of an a ne relation is not always a ne, the above computation does not always succeed. Our proposal is to ignore a composite dependence when a closed form cannot be computed. However, if we base our splitting algorithm on the path descriptions given by the ....
....applied to the polytope R d computed in Step 1. This will divide the index set I(S) into a part which is in the image of R d under p, and the rest. Usually, this step can be computed 9 R d1 d 1 S 1 p 1 p 2 S 2 Figure 4: An illustration of the splitting algorithm with the Omega calculator [PW92]. However, if p contains a cycle whose transitive closure cannot be computed precisely by Omega, then delete the cycle form p before the propagation. 4. For any statement S, combine all splits obtained in this way as in Section 6.1. The algorithm is illustrated in Figure 4. In Step 1, the index ....
William Pugh and Dave Wonnacott. Eliminating false data dependences using the Omega test. ACM SIGPLAN Notices, 27(7):140151, July 1992. Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI'92).
....3 describes the first contribution of this paper. By using information from steps 1 and 2 dependences can be marked as satisfied if they are known not to cross processor boundaries. Step 4 describes the second contribution of this paper. Once all synchronization 3 At present we use the Omega Test [33] 4 Our compiler uses an automatic data partitioning scheme as described in [27] RR n2387 10 F. Bodin and L. Kervella and M. O Boyle inducing dependences are determined the minimum number of barriers should be inserted so as to satisfy them. The number of barriers incurred at run time will ....
Pugh W. and Wonnacott D., Eliminating False Data Dependences using the Omega Test, ACM SIGPLAN Programming Languages Design and Implementation, 1992.
....is performed on all the loop nests in each function and the information is maintained in an auxiliary data structure. Currently, the dependences across loop nests are not calculated since this 12 information is not needed by the transformations. The dependence analyzer uses the Omega test [14][15] to compute dependence direction and distance vectors for array references, which is an algorithm based on an extension of Fourier Motzkin variable elimination to integer programming. An extended data flow algorithm is used to compute loop carried dependence information for scalars. 5) Each ....
....dependence analysis is performed using 49 a) Iteration space b) Normal case current iteration next iteration current iteration next iteration i j c) End of i iteration current iteration d) End of jj iteration i next iteration j j i i j Figure 4. 6 Iteration Space in Blocked Loop Omega test [14][15]. The data dependence information is used to insure the validity of software pipelining the data relocation and computation phases. The relationships among the array references are also determined in this phase. If the relationship between two array references is determined to be in line, they are ....
W. Pugh and D. Wonnacott, "Eliminating false data dependences using the omega test," in Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, pp. 140--151, June 1992.
....relocation buffer, while the computation is performed using the data already relocated in the first buffer. For the second outer loop body, the same method is used as for the first outer loop body except that the buffers are switched. Data dependence information, provided by the Omega Test [13][14], is used to insure the validity of software pipelining the data relocation and computation phases. 3.2 Insertion of Operations New operations are inserted in the source level code to perform the precollect, preallocate, await, distribute, and finishup operations. See Figure 4c. These ....
W. Pugh and D. Wonnacott, "Eliminating false data dependences using the omega test," in Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, pp. 140--151, June 1992.
....into a dual system and solving that. In principle, it is an extension of the wellknown simplex algorithm. Weispfenning. This is another direct method which is only singly exponential [22] It performs better than Fourier Motzkin on problems with more than four variables. Omega. The Omega library [21] by Pugh solves linear programs on the basis of Presburger formulas (affine constraints, the usual logical connectives, and existential and universal quantifiers) with efficient heuristics for parallelization. Fig. 3. LooPo s Scheduler options window. The current implementation is largely based ....
W. Pugh and D. Wonnacott. Eliminating false data dependences using the Omega test. ACM SIGPLAN Notices, 27(7):140--151, July 1992. Proc. ACM SIGPLAN '92 Conference on Programming Language Design and Implementation (PLDI).
....backward slice. If doing storage remapping, base this slice on data ow; otherwise, use all dependences, to create a movable slice [Ros98, Section 5.1.3] We call this the initial slice, or S 0 . 6. Find the slopes of the initial slice. The algorithms used to compute dependence di erences in [PW92] can be used to nd the slope of the front surface of the initial slice: For each dimension (loop) i these algorithms produce either a known xed limit on i t or in nity (unbounded) We cannot, in general, tile unbounded directions; their presence indicates that we cannot achieve ....
William Pugh and David Wonnacott. Eliminating false data dependences using the Omega test. In SIGPLAN Conference on Programming Language Design and Implementation, pages 140-151, San Francisco, California, June 1992.
....compilers employ tests that have low order polynomial time bounds, but are not exact over this entire domain, such as Banerjee s inequalities or the GCD test (or both) See Wolfe [1989] Zima and Chapman [1990] and Banerjee [1993] for a discussion of these techniques. Pugh s original Omega test [Pugh 1991; 1992] handles arbitrary conjunctions of affine constraints, using a combination of substitution and an adaptation of Fourier s method of variable elimination to integer variables. This algorithm is exponential in the worst case, due to the potential for wild growth in the number of constraints as ....
.... due to the potential for wild growth in the number of constraints as variables are eliminated by Fourier s method [Huynh et al. 1992; Imbert 1993] However, Pugh showed that the Omega test has low order polynomial complexity for many of the cases that are handled exactly by traditional techniques [Pugh 1992]. Thus, we can also guarantee efficient compilation by applying the Omega test only in cases where it has been proven efficient, or by using a timer to prevent runaway behavior. In practice, limiting the use of the Omega test does not seem to be necessary. We studied the behavior of the Omega ....
[Article contains additional citation context not shown here]
Pugh, W. and Wonnacott, D. 1992. Eliminating false data dependences using the Omega test. In SIGPLAN Conference on Programming Language Design and Implementation. San Francisco, California, 140--151.
No context found.
W. Pugh and D. Wonnacott, "Eliminating False Data Dependences using the Omega Test", Proc. Programming Languages Design and Implementation, San Francisco, ACM Press, June 1992.
No context found.
W. Pugh and D. Wonnacott. Eliminating false data dependences using the Omega test. In Proceedings of the SIGPLAN '92 Conference on Program Language Design and Implementation, San Francisco, CA, June 1992.
No context found.
W. Pugh, and D. Wonnacott. Eliminating False Data Dependences Using the Omega Test. ACM SIGPLAN Conference on Programming Language Design and Implementation. San Francisco, CA (June 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