| J. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, Univ. of Calif., Berkeley, CA, May 1989. |
....analyses. This is able to explain, for example, why single level pointers can be handled eciently in the context of pointer induced alias analysis [8, 11] but not for def use chains [15] With very little conceptual and notational e ort, a number of complexity results given in the literature [8, 11, 12, 13, 15] fall out directly as corollaries of this result. Moreover, for several of these analyses, we are able to improve signi cantly on the known complexity results reported in the literature [12, 13, 15] For example, we show that the following analyses are EXPTIME complete: inter procedural pointer ....
....conceptual and notational e ort, a number of complexity results given in the literature [8, 11, 12, 13, 15] fall out directly as corollaries of this result. Moreover, for several of these analyses, we are able to improve signi cantly on the known complexity results reported in the literature [12, 13, 15]. For example, we show that the following analyses are EXPTIME complete: inter procedural pointer alias analysis in the presence of twolevel pointers (Corollary 4.5; previous best result: PSPACE hard [8] inter procedural reaching de nitions in the presence of single level pointers (Corollary ....
[Article contains additional citation context not shown here]
J. R. Larus, Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors, Ph.D. Dissertation, University of California, Berkeley,
....will not change. Such assumptions limit the extent that transfromations can be performed. Techniques are available to extract more detailed information: to determine parameter aliasing and effects of procedures on global variables, see [7, 8, 9, 19, 37, 42] to determine pointer aliasing, see [14, 15, 27, 29, 33, 34, 44]. When a sophisticated analysis technique is applied, the usual result is that there are few side effects and the tuples (both LHS and RHS) are small. Small tuples can be represented directly. Sophisticated analysis, however, is often unavailable. Many compilers do no interprocedural analysis at ....
J. R. Larus. Restructuring symbolic programs for concurrent execution on multiprocessors. Technical Report UCB/CSD 89/502, Computer Sci. Dept., U. of California at Berkeley, Berkeley, CA, May 1989.
....here is the sum of loc and nv in [23] 10 Theoretical classification of the compile time pointer aliasing problem supports, to some extent, the use of different analysis methods. The may aliasing problem is proved polynomial for single level pointers [21] and NP hard for multiplelevel pointers [21, 25]. The problem is also proved P space hard for finite level ( 2) pointer dereferences [19] and undecidable for recursive data structures [20, 30] The FA relation is similar to the points to relation [37] and the PWA relation [2, 24] The approach in [37] is based on a non standard type inference ....
J. R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California Berkeley, May 1989.
....This assumption, which Barth referred to as precision upto symbolic execution [1] is commonly used to sidestep the problem of undecidability, and precision of program analyses is typically de ned with respect to this assumption. fort, a number of complexity results given in the literature [7, 10, 11, 12, 14] fall out directly as corollaries of this result. Moreover, for several of these analyses, we are able to improve signi cantly on the known complexity results reported in the literature [11, 12, 14] For example, we show that the following analyses are EXPTIME complete: interprocedural pointer ....
....respect to this assumption. fort, a number of complexity results given in the literature [7, 10, 11, 12, 14] fall out directly as corollaries of this result. Moreover, for several of these analyses, we are able to improve signi cantly on the known complexity results reported in the literature [11, 12, 14]. For example, we show that the following analyses are EXPTIME complete: interprocedural pointer alias analysis in the presence of two level pointers (previous best result: PSPACE hardness [7] interprocedural reaching de nitions in the presence of single level pointers (previous best result: ....
[Article contains additional citation context not shown here]
J. R. Larus, Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors, Ph.D. Dissertation, University of California, Berkeley, 1989.
....well as a DSG that contains a cons cell pointed to by z alone with an outgoing cdr edge (to l 4 ) Other shape analysis algorithms do not perform strong nullification for a statement of the form x. sel : nil, except under very limited circumstances [Chase et al. 1990; Jones and Muchnick 1981; Larus 1989; Larus and Hilfinger 1988; Plevyak et al. 1993] The reason for this is that, after the conditional statement in Example 5.4.1, they perform actions that (in our terminology) are equivalent to merging n y and n x,y into one shape node. When this is done, it is not safe to perform strong ....
....number of possible shapegraphs is doubly exponential in k. In addition to Jones and Muchnick s work, k limiting has also been used in a number of subsequent papers (e.g. Horwitz et al. 1989] Whereas Jones and Muchnick [1981] use sets of shape graphs, our work follows Jones and Muchnick [1982] Larus [1989], Larus and Hilfinger [1988] Chase et al. 1990] and Stransky [1992] who developed shape analysis methods that associate each program point with a single shape graph. The use of a single shape graph is 6 In this section, we use the term shape graph in the generic sense, meaning any finite ....
[Article contains additional citation context not shown here]
Larus, J. 1989. Restructuring symbolic programs for concurrent execution on multiprocessors. Ph.D. thesis, Univ. of California, Berkeley, Calif.
.... is important for compilers and programming environment tools [Allen et al. 1987; Choi and Ferrante 1994; Kennedy et al. 1991] It can also provide compiler and runtime support for the parallel execution of programs originally written in sequential languages [Allen et al. 1987; Allen et al. 1987; Larus 1989; Gannon et al. 1990] Numerous techniques have been successfully developed for data flow analysis of programs written in languages with only static data structures, such as FORTRAN. However, data flow analysis for programs written in languages with dynamically allocated data structures, such as ....
....and Lam 1995] avoid this problem on the interprocedural level. Choi et al. 1993] use call site information to address this problem at the interprocedural level, and suggest the use of CFG path information to address the intraprocedural version of this problem. 11.3 Flow Insensitive Analysis Larus [1989] presents a flow insensitive intraprocedural algorithm to compute aliases in LISP programs. This algorithm uses alias graphs, which are similar to ours, but serve both as values propagated to solve data flow equations and as representations of statements effects on propagated values. He uses the ....
Larus, J. R. 1989. Restructuring symbolic programs for concurrent execution on multiprocessors. Ph.D. thesis, University of California. Technical Report No. UCB/CSD 89/502.
....of popular languages like C and LISP, the Static Analysis community has turned its attention to languages with pointers, dynamic storage, and recursive data structures. It is widely accepted that Static Analysis under these conditions is hard. The general feeling is that it is probably NP complete [11, 13, 12]; this is incorrect. Recently, the problem of finding aliases was shown to be P space hard [10] Unfortunately, this is still an underestimate. 1 The term conservative is used in [2] instead of safe. 2 An alias occurs at some point during execution of a program when two or more names exist for ....
Larus, J. R. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California Berkeley, May 1989.
.... can build upon the techniques previously proposed in the context of parallelizing imperative programs with recursive data structures [Hendren 1990; Hendren and Nicolau 1990; Hendren et al. 1992] and the Curare restructuring compiler for Lisp [Larus and Hilfinger 1988a; Larus and Hilfinger 1988b; Larus 1989]. In both these cases, the objective is to analyze the program to determine which computations refer to disjoint pieces of the hierarchical data structure, and then to use this information to insert parallel function calls or futures automatically. For our purposes, we plan to build on the path ....
Larus, J. R. 1989. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. Ph. D. thesis, University of California, Berkeley.
....including C. In [Harrison III 1991] he describes how the notion of a loop iteration space can be generalized by counting the number of entries into a while loop or a recursively called procedure. Larus developed a number of constructs for annotating objects, including distinct loc and unique obj [Larus 1989; Larus 1991] He also developed alias graphs, which capture the structure of Lisp objects; like most others, he employed k limiting to limit the size of these objects at compiletime [Larus and Hilfinger 1988b; Larus and Hilfinger 1988a] Early work in this area was done by Jones and Muchnick ....
Larus, J. R. 1989. Restructuring Symbolic Programs for Concurrent Exectution on Multiprocessors. PhD thesis, Univ. of California, Berkeley, (May). Tech. Rep. UCB/CSD 89/502.
....contain a pointer dereference. 21 Hind and Pioli [1998a] report an average reduction of 74 in the number of alias sets, resulting in a 2.8 times reduction in analysis time. ACM Transactions on Programming Languages, Vol. 21, No. 4. 34 Delta Michael Hind et al. 6. 3 Flow Insensitive Analysis Larus [1989] presents a flow insensitive intraprocedural algorithm to compute aliases in LISP programs. This algorithm uses alias graphs, which are similar to ours, but serve both as values propagated to solve data flow equations and as representations of statements effects on propagated values. He uses the ....
Larus, J. R. 1989. Restructuring symbolic programs for concurrent execution on multiprocessors. Ph.D. thesis, University of California. Technical Report No. UCB/CSD 89/502.
....components define the same lvalue and a definition of that lvalue in B 81 has a reachable use outside either component (see example in Figure 4. 3) Griswold used a program dependence graph (PDG) to reason about data flow dependences when he designed his transformations [20, 24] The PDG he used [40] represents dependence information between each of the program s primitive operations (as represented by three address code) Identical dependence information could be computed on the fly to create demand versions of Griswold s transformations, but I rejected this approach as unworkable due to the ....
J. R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, UC Berkeley Computer Science, May 1989. Also Technical Report No. UCB/CSD 89/502.
....shape graphs is doubly exponential in k. In addition to Jones and Muchnick s work, k limiting has also been used in a number of subsequent papers (e.g. HPR89] Whereas Jones and Muchnick use sets of shape graphs (in [JM81] our work follows Jones and Muchnick [JM82] Larus and Hilfinger [LH88, Lar89], Chase, Wegman, and Zadeck [CWZ90] and Stransky [Str92] who developed shapeanalysis methods that associate each program point with a single shape graph. The use of a single shape graph is possibly less accurate than a method based on sets of graphs, but it leads to more compact representations, ....
....depends on the program point at which the operation is applied. For this reason, join is a misnomer in the latticetheoretic sense. In contrast, our join operation, which is essentially graph union, is the join operation in the lattice of SSGs defined in Section 4.1. Larus and Hilfinger [LH88, Lar89] devised a shape analysis algorithm that is based on somewhat different principles from the aforementioned work. As with our algorithm, shapenodes are labeled with some auxiliary information. At first glance, their node labeling scheme appears to be more general than ours: Whereas we use a set of ....
J.R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California, 1989.
....pointer forms the root of the data structure (i.e. has no incoming links) or an intermediate node. The motivation behind shape analysis is to identify tree and list like structures in programs in a simple and efficient way. This knowledge can then be gainfully exploited for parallelizing programs [Lar89, Hen90] and performing optimizing transformations like loop unrolling [HG92] and software pipelining [HHN92a] There is a large body of applications which use trees and lists as principal data structures. It should be noted that these abstractions are practical variations on the path matrix ....
....1495 24 60 32 468 3 465 0 pug 2400 2089 32 153 48 822 147 688 13 Table 6. 6: Charateristics of Shape Analysis Benchmarks structures or aliased but acyclic dag like structures in a program, we can enable several powerful program optimizations like concurrent execution of recursive procedure calls [Lar89, Hen90] software pipelining [HHN92a] and loop unrolling [HG92] In this light, we estimate the effectiveness of shape analysis, by providing the following measurements in Table 6.7, for each benchmark: ffl Refs: The number of heap related indirect references in the program. ffl T, D, C: These ....
J. R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California, Berkeley, 1989.
....in this case Scheme [Dybvig 87] To show how the transformations restructure, they are used in the prototype to restructure a Scheme matrix multiply program. Scheme was selected because of its rich imperative features, its simple syntax, and the availability of a PDG package for Scheme programs [Larus 89] The implementation is in 21 Common Lisp because of its prototyping flexibility and because it is the implementation language of the PDG package. There is no inherent or conceptual limitation in applying the ideas of the tool to other more commonly used languages, and the transformation set ....
....explicitly represents the key relationship of dependence between the operations in the program. Simple graph algorithms and set operations can extract this information. Another advantage is that the PDG has been a popular program representation for aiding program parallelization [Kuck et al. 81] Larus 89] optimization [Ferrante et al. 87] slicing [Ottenstein Ottenstein 84] Horwitz et al. 90] and version merging [Horwitz et al. 89] This extensive body of knowledge, combined with the right semantic support, make PDGs a good foundation for preserving meaning during restructuring. 4.1.1 ....
[Article contains additional citation context not shown here]
J. R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD dissertation, UC Berkeley Computer Science, May 1989. Also Technical Report No. UCB/CSD 89/502.
....to both of them and to the higher level aspects of the tool. The mediator method also allowed Griswold to reuse a substantial, existing software component: over 10,000 lines of Common Lisp CLOS [Bobrow et al. 88] comprising the PDG, which was built by Jim Larus as part of his Curare system [Larus 89] 80 Localizing the relationship between the AST and the PDG in the mediator was also useful in providing a place for the code and data that implemented a somewhat complex approach to propagating changes from the AST to the PDG. The mediator caches notifications from the AST and computes and ....
J. R. Larus, Restructuring Symbolic Programs for COncurrent Execution on Multiprocessors, Ph.D. dissertation, UC Berkeley Computer Science, May 1989. Also appears as Technical Report No. UCB/CSD 89/502.
....of the Intraprocedural Alias Problem in the presence of multiple level pointers. We show that precise solution of Intraprocedural Reaching Definitions in the presence of single level pointers is NP hard. Our proof is by reduction of the 3 SAT problem and is a variation of similar proofs in [23, 26, 30]. Theorem 1 In the presence of single level pointers, the problem of calculating precise Intraprocedural Reaching Definitions is NP hard. We proceed by reducing the 3 SAT problem for V n i=1 (l i;1 l i;2 l i;3 ) with the propositional variables fv 1 ; v 2 ; v m g to the Reaching ....
J. R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California Berkeley, May 1989.
....heap directed pointer to store the shape of the data structure accessible from the given pointer. The motivation behind shape analysis is to identify tree and list like structures in programs in a simple and efficient way. This knowledge can then be gainfully exploited for parallelizing programs [Lar89, Hen90] and performing optimizing transformations like loop unrolling [HG92] and software pipelining [HHN92a] There is a large body of applications which use trees and lists as principal data structures. It can be noted that these abstractions are practical variations on the path matrix model ....
J. R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California, Berkeley, 1989.
....Phone: 908) 582 4628 To Appear in Proceedings of 1996 Parallel Architectures and Compilation Techniques. to correctly synchronize parallel access to shared state; parallelizing compilers, moreover, must statically infer structure sharing and produce a safe evaluation and synchronization schedule [7, 17]. The difficulty lies in the dynamic nature of irregular computations shared structure appears (and disappears) dynamically. Hence, the available parallelism, and its attendant synchronization requirements, necessarily vary during program execution. This paper describes the design and ....
....program procedures that destructively manipulate directed acyclic graphs (DAGs) The dr technique dynamically detects and dynamically schedules potentially conflicting DAG modifications; it preserves the program s sequential semantics by resolving conflicts at run time. Static pointer analyses [4, 14, 9, 17, 7, 28, 15] can not provide precise parallelization information in the presence of dynamic structure sharing such analyses must conservatively assume that if sharing can occur, then it always occurs. Only a dynamic approach can parallelize programs that may share structure when in fact they do not ....
[Article contains additional citation context not shown here]
J. R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California, Berkeley, Computer Science Division, May 1989.
....data flow problems in the presence of aliases are NP complete. He considers FORTRAN like aliasing (i.e. aliasing that is the result of passing call by reference parameters) however, he did not classify the alias problem itself. All our NP hardness proofs are variations of Myers proof. Larus [Lar89] also modified Myers proof to prove that intraprocedural aliasing in the presence of structures is NP hard. Owing to their common origin, Larus and our NP hardness proofs are similar. Many algorithms have been developed to solve for aliasing in the presence of callby reference formals (i.e. ....
....type casting to occur. Even in those cases, it seems likely that this approximation will rarely occur. All NP hardness proofs are variations of proofs by Myers [Mye81] a similar, although independently discovered proof for recursive structure aliasing (as indicated in Table 4. 1) can be found in [Lar89]. All problems which are categorized as polynomial time are corollaries of proofs of Theorem 4.2.3 or Theorem 4.2.4. The rest of this chapter is a presentation of proofs of the theorems in Table 4.1. 4.1 Reference Formals Theorem 4.1.1 There exists a polynomial algorithm for determining precise ....
[Article contains additional citation context not shown here]
J. R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California Berkeley, May 1989.
....possible shapes is doubly exponential in k. In addition to Jones and Muchnick s work, k limiting has also been used in a number of subsequent papers (e.g. HPR89] Whereas Jones and Muchnick use sets of shape graphs (in [JM81] our work follows Jones and Muchnick [JM82] Larus and Hilfinger [LH88, Lar89], Chase, Wegman, and Zadeck [CWZ90] and Stransky [Str92] who developed shape analysis methods that associate each program point with a single shape graph. The use of a single shape graph is possibly less accurate than a method based on sets of graphs, but it leads to more compact ....
....by Chase, Wegman, and Zadeck. Plevyak, Chien, and Karamcheti describe a shape analysis algorithm that is similar to this extension [PCK93] Unfortunately, the Plevyak Chien Karamcheti algorithm inherits most of the drawbacks of the original Chase Wegman Zadeck algorithm. Larus and Hilfinger [LH88, Lar89] devised a shape analysis algorithm that is based on somewhat different principles from the aforementioned work. As with our algorithm, shape nodes are labeled with some auxiliary information. At first glance, their node labeling scheme appears to be more general than ours: Whereas we use a set of ....
J.R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, University of California, 1989.
No context found.
J. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, Univ. of Calif., Berkeley, CA, May 1989.
No context found.
J. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, Univ. of Calif., Berkeley, CA, May 1989.
No context found.
J. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, Univ. of Calif., Berkeley, CA, May 1989.
No context found.
J.R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, Univ. of Calif., Berkeley, CA, May 1989.
No context found.
J. R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. PhD thesis, Computer Science Division, University of California at Berkeley, 1989. USB/CSD 89/502.
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