146 citations found. Retrieving documents...
L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Pointer Analysis: Haven't We Solved This Problem Yet? - Hind (2001)   (26 citations)  (Correct)

....is the incorporation of client analysis information into procedure level pointer alias summaries [81] Clientdriven pointer analyses may also be able to selectively apply more aggressive approaches to obtaining precision, such as those of [68] 4. 6 Heap Modeling Shape analysis algorithms [53, 43, 9, 19, 36, 35, 18, 74, 28, 29, 87, 88, 89, 103, 21, 54] have demonstrated high precision, over schemes that name objects based on allocation site (as in [47, 44, 83, 43, 9] but their scalability to even medium programs is uncertain. Mooly Sagiv summarizes the current state of the eld: Although I believe we are making good progress, in all honesty, ....

L. J. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35-47, Jan. 1990.


Automatic Pool Allocation for Disjoint Data Structures - Lattner, Adve (2002)   (1 citation)  (Correct)

....pools. We use an analysis described in Section 2 to identify logically disjoint data structures, and use it to compute a representation we call the Disjoint Data Structure Graph. Our analysis to construct these graphs is similar to previous work on heap connection analysis and shape analysis [18, 17, 14, 30, 22], but differs from that work in a few key ways (discussed in more detail in Section 6) We perform the data structure analysis and subsequent transformations entirely at link time, using a compilation framework called LLVM, described briefly in subsection 1.1. Link time is an appropriate place for ....

.... updates of those two structures can be performed in parallel (if computations on one structure do not use values from the other) This is a different style of parallelism than that extracted by other parallelization strategies for nonarray based programs [20] and for tree like data structures [17]. Those strategies focus on data parallelism within computations on the same data structure or set of structures, whereas we would obtain parallelism between computations on different structures. This might only yield small degrees of parallelism, but such parallelism may in fact be well suited to ....

[Article contains additional citation context not shown here]

L. J. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed System, pages 35--47, 1990.


Interprocedural Shape Analysis - Rinetzky   (Correct)

....Such an approach is taken in [CRL99, WL95] for a points to analysis. A Points to analysis nds aliasing between pointer variables. However the relation between heap allocated objects is not tracked. Besides shape analysis there are other methods to handle programs with pointer including [HN90, GH96, Deu94, CBC93]. These methods are incomparable to our method. The power of shape analysis stems from the ability to handle arbitrary programs and to conduct strong updates, even for example, when the program manipulates a cyclic list. The power Deutsch s method is the ability to precisely handle recursive ....

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Trans. on Par. and Dist. Syst., 1(1):35-47, January 1990.


Interprocedural Shape Analysis - Rinetzky   (Correct)

....analyzes a program to determine information about the heap allocated data structures that the program manipulates. The analysis algorithm is conservative, i.e. the discovered information is true for every input. The information can be used to understand, verify, optimize [GH98] or parallelize [LH88, Hen90, AW93, PCK93, Zap99] programs. For example, it can be utilized to check at compile time for the absence of certain types of memory management errors, such as memory leakage or dereference of null pointers [DRS98, DRS00] In the past two decades, many shape analysis algorithms have been developed [JM81, JM82, LH88, ....

....of recursive calls, di erent incarnations of a local variable may point to the same heap cell. The ability to have distinctions between invisible instances of variables based on their local properties is the reason for the di erence in precision between our method and the methods described in [LH88, Hen90, LH88, CWZ90, AW93, GH96, SRW98]. In Chapter 4, we also exploit properties that capture relationships between the stack and the heap. In many cases, the ability to have these distinctions also leads to a more ecient analysis. Our algorithm was developed within the parametric framework described in [SRW99, LAS00] That framework ....

L. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell Univ., Ithaca, NY, Jan 1990.


Interprocedural Shape Analysis for Recursive Programs - Rinetzky, Sagiv (2001)   (3 citations)  (Correct)

....analyzes a program to determine information about the heap allocated data structures that the program manipulates. The analysis algorithm is conservative, i.e. the discovered information is true for every input. The information can be used to understand, verify, optimize [6] or parallelize [1, 8, 12] programs. For example, it can be utilized to check at compile time for the absence of certain types of memory management errors, such as memory leakage or dereference of null pointers [5] This paper addresses the problem of shape analysis in the presence of recursive procedures. This problem is ....

....of recursive calls, di erent incarnations of a local variable may point to the same heap cell. The ability to have distinctions between invisible instances of variables based on their local properties is the reason for the di erence in precision between our method and the methods described in [1, 2, 7, 8, 12, 14]. In Sect. 4, we also exploit properties that capture relationships between the stack and the heap. In many cases, the ability to have these distinctions also leads to a more ecient analysis. Technically, these properties and the analysis algorithm itself are explained (and implemented) using the ....

L. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell Univ., Ithaca, NY, Jan 1990.


Automatic Verification of Pointer Programs using.. - Jensen.. (1997)   (25 citations)  (Correct)

....attempts to verify strategically placed formulas. A more abstract contribution is to identify and exploit an important niche of finite state regularity in programming language semantics. Related Work Our work does not follow the established tradition of conventional heapbased pointer analysis [7, 8, 15, 4, 5, 14, 13, 17, 2] which develops specialized algorithms for answering specific questions about preexisting programs without annotations. We are more general in providing a full, decidable logic in which one may phrase a broad range of questions, and in providing concrete counterexamples whenever a question is ....

Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. IEEETPDS, 1(1):35--47, January 1990.


Automatic Parallelization of Divide and Conquer Algorithms - Rugina, Rinard (1999)   (14 citations)  (Correct)

.... which is designed to discover when a data structure has a certain shape such as a tree or list [4, 19, 8] Several researchers have used shape analysis algorithms as the basis for compilers that automatically parallelize divide and conquer programs that manipulate linked data structures [9, 13, 14]. We are aware, however, of no previous research on parallelizing compilers for divide and conquer programs (such as those in our benchmark set) that use pointers to access disjoint regions of large, contiguously allocated blocks of memory. Several researchers have developed symbolic analysis ....

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990.


Parametric Shape Analysis via 3-Valued Logic - Sagiv, Reps, Wilhelm (1999)   (109 citations)  (Correct)

....obtained for programs that manipulate linked lists and doubly linked lists are rather precise. Benedikt et al. de ned a decidable logic, called L r , for describing properties of linked data structures [Benedikt et al. 1999] They showed how a generalization of Hendren s path matrix descriptors [Hendren 1990; Hendren and Nicolau 1990] can be represented by L r formulae, as well as how the variant of shape graphs de ned by Sagiv et al. Sagiv et al. 1998] can be represented by L r formulae. This correspondence provides insight into the expressive power of path matrices and shape graphs. It also has ....

....programs that manipulate linked lists and doubly linked lists are rather precise. Benedikt et al. de ned a decidable logic, called L r , for describing properties of linked data structures [Benedikt et al. 1999] They showed how a generalization of Hendren s path matrix descriptors [Hendren 1990; Hendren and Nicolau 1990] can be represented by L r formulae, as well as how the variant of shape graphs de ned by Sagiv et al. Sagiv et al. 1998] can be represented by L r formulae. This correspondence provides insight into the expressive power of path matrices and shape graphs. It also has interesting consequences for ....

[Article contains additional citation context not shown here]

Hendren, L. and Nicolau, A. 1990. Parallelizing programs with recursive data structures. IEEE Trans. on Par. and Dist. Syst. 1, 1 (January), 35-47.


Parametric Shape Analysis via 3-Valued Logic - Sagiv, Reps, Wilhelm (1999)   (109 citations)  (Correct)

....obtained for programs that manipulate linked lists and doubly linked lists are rather precise. Benedikt et al. de ned a decidable logic, called L r , for describing properties of linked data structures [Benedikt et al. 1999] They showed how a generalization of Hendren s path matrix descriptors [Hendren 1990; Hendren and Nicolau 1990] can be represented by L r formulae, as well as how the variant of shape graphs de ned by Sagiv et al. Sagiv et al. 1998] can be represented by L r formulae. This correspondence provides insight into the expressive power of path matrices and shape graphs. It also has ....

....of path matrices and shape graphs. It also has interesting consequences for extracting information from the results of program analyses, in that it provides a way to amplify the results obtained from known analyses: By translating the structure descriptors obtained from the techniques given in [Hendren 1990; Hendren and Nicolau 1990; Sagiv et al. 1998] to L r formulae, it is possible to determine if there is any store at all that corresponds to a given structure descriptor. This makes it possible to determine whether a given structure descriptor contains any useful information. Decidability ....

Hendren, L. 1990. Parallelizing programs with recursive data structures. Ph.D. thesis, Cornell Univ., Ithaca, NY.


A Schema for Interprocedural Modification.. - Ryder, Landi.. (2001)   (3 citations)  (Correct)

....names obtainable by following links in a recursive data structure, only maintaining the first k dereferences, a process known as k limiting. Others have suggested less naive ways of restricting the namespace while obtaining more accurate aliases of heap stored objects [CWZ90, Deu94, HPR89, LH88, HN90, HHN92, GH96a, GH96b, SRW98] One di#culty with k limiting is that it loses information about the su#x of an object name. With 2 limiting, the alias #p f g h, x# is represented by #p f g#, x#. However this klimited object name also represents a set of object names, e.g. p f g h i ....

....the degree to which they preserve program point specific information. Aliases are either represented explicitly as pairs of object names or implicitly embedded in a points to relation. 6 Hendren et al. represent aliases as a set of simultaneous points to relations at a particular program point [HN90, EGH94] e.g. #x,y# means x points to the object name y) Choi et al. use an implicit representation which stores all aliases as pairs consisting of a fixed location and the object name (containing a single dereference) which points to it (e.g. ##p,x# means p points to x) This representation, ....

[Article contains additional citation context not shown here]

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transaction on Parallel and Distributed Systems, 1990.


Dynamically Discovering Program Invariants Involving.. - Ernst, Griswold.. (2000)   (1 citation)  (Correct)

....to compute the may definitions of an assignment in static program slicing or to verify the independence of two pointer references to enable an optimization. Precise pointer analysis is computationally difficult [LH88, LR92] The high cost of flow sensitive approaches [Wei80, JM81, JM82, CWZ90, HN90, LR92, HEGV93] has led to the development of flow insensitive techniques [Ste96, And94, SH97] which are often nearly as precise for a fraction of the cost [HP98] Shape analysis is a static analysis that infers properties of pointer structures that could be used by programmers as invariants. ....

Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990.


SPMD Execution of Programs with Pointer-based Dynamic Data.. - Gupta   (Correct)

....features. Although the SPMD execution approach exploits implicit parallelism present in sequential programs, it can benefit from information regarding parallelism present in a program. The inclusion of parallel looping constructs [18] in the language and automatic parallelism detection techniques [12, 20, 6, 16] in the compiler can further enhance performance. The information regarding parallelism in a program can be used by the compiler to determine a data distribution appropriate for parallel execution. However, it should be noted that most of the techniques presented in this paper are required ....

Hendren, L.J., and Nicolau, A. Parallelizing programs with recursive data structures. IEEE Trans. Parallel Distributed Systems. 1, 1 (Jan. 1990), 35-47.


Static Analysis of PostScript Code - Horspool, Vitek (1992)   (4 citations)  (Correct)

....frameworks have been specified and implemented, notably in the field of functional programming to perform strictness analysis or in place update analysis, and in PROLOG for mode and determinacy analysis. Abstract interpretation has also been used for automatic parallelization of imperative [5] and functional [6] programs. The technique relies on a mapping from the semantics of the original program with respect to a certain property into approximate semantics. Approximation is inevitable since any non trivial analysis would be based on dynamic control flow patterns and those are ....

L. J. Hendren, "Parallelizing Programs with Recursive Data Structures," Ph.D Thesis, TR-90-1114, Cornell University, April 1990.


Incremental Algorithms and Empirical Comparison for Flow-.. - Yur, Ryder, Landi (1998)   (3 citations)  (Correct)

....pointer aliasing analyses for C have been proposed [Coo89, LR92, CBC93, MLR 93, EGH94, WL95, Ruf95, HA90, SFRW90] Recently, there have been many investigations of pointer aliasing algorithms which vary in cost and precision. Several concentrate on aliases in heap storage [HPR89, CWZ90, Deu94, HN90, EGH94, JM82, LH88, SRW96] Others calculate program wide (flow insensitive) aliases [Cou86, Gua88, BCCH94, And94, SH97, Ste95, Wei80, ZRL96] Still other work concentrated on aliases in higher order functional languages [Deu90, NPD87] Incremental algorithms update data flow information after a ....

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transaction on Parallel and Distributed Systems, 1990.


Program Decomposition for Pointer Aliasing: A Step toward.. - Zhang, Ryder, Landi (1996)   (23 citations)  (Correct)

....understanding, particularly for programmers reading code which they did not write. Our focus in this paper is on the efficient and practical solution of the pointer aliasing problem to facilitate these applications. Many techniques for compile time pointer aliasing analysis have been proposed [3, 4, 6, 7, 8, 9, 11, 14, 15, 22, 26, 27, 32, 36, 37, 39, 40]. Some of them are more appropriate for aliases involving accesses to heap locations [6, 8, 11, 14, 15, 26, 36] others for aliases involving accesses to stack locations [9, 39] Still others handle both in a similar fashion [3, 4, 7, 22, 27, 32, 37, 40] All of these methods vary in the precision ....

....of the pointer aliasing problem to facilitate these applications. Many techniques for compile time pointer aliasing analysis have been proposed [3, 4, 6, 7, 8, 9, 11, 14, 15, 22, 26, 27, 32, 36, 37, 39, 40] Some of them are more appropriate for aliases involving accesses to heap locations [6, 8, 11, 14, 15, 26, 36]; others for aliases involving accesses to stack locations [9, 39] Still others handle both in a similar fashion [3, 4, 7, 22, 27, 32, 37, 40] All of these methods vary in the precision of the aliasing information calculated and their cost. For compile time pointer aliasing analysis, a program ....

[Article contains additional citation context not shown here]

Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. IEEE Transaction on Parallel and Distributed Systems, 1(1):35--47, 1990.


A Step Toward Automatic Distribution Of Java Programs - Attali, Caromel, Guider (2000)   (2 citations)  (Correct)

....are executed concurrently produces the same result as the sequential one and terminates if and only if the sequential program terminates. Number of works use these conditions to establish the correctness of automatic parallelization for various languages. Among others, Hendren and Nicolau [26] parallelize C programs with dynamically allocated objects (with the limitation of no cyclic structures) This work has been pursued by Hendren [25] and gave rise to multiple analyses of dynamically allocated structures and pointers [22, 17, 21] that are the basis of a checking algorithm for ....

L. J. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):3547, 1990.


Symbolic Bounds Analysis of Pointers, Array Indices, and.. - Rugina, Rinard (2000)   (1 citation)  (Correct)

.... which is designed to discover when a data structure has a certain shape such as a tree or list [8, 33, 17] Several researchers have used shape analysis algorithms as the basis for compilers that automatically parallelize divide and conquer programs that manipulate linked data structures [18, 23, 25]. Commutativity analysis is an alternative to shape analysis for divide and conquer programs that access linked data structures [30] This technique views the computation as a sequence of operations on objects, generating parallel code if all pairs of operations commute. We view both ....

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990.


Applying Traversal-Pattern-Sensitive Pointer Analysis to.. - Hwang, Saltz (1997)   (Correct)

....be presented. This work was sponsored in part by NSF (ASC 9213821 and CDA9401151) 1 Introduction Dependence analysis is the key technique behind parallelization and optimizationson programs with pointers or recursive data structures. There have been several algorithms proposed by researchers [7, 8, 9, 10, 14]. It is a considerably complicated problem, since it involves other pointer analysis techniques as well, such as alias analysis [2, 4, 5, 12, 20] side effect analysis [2, 13] and even shape analysis [1, 6, 16, 18] These proposed dependence analysis techniques first identify aliases of pointer ....

....of locations written by statement S. Statements S 1 and S 2 have access conflicts if (Write(S 1 ) Read(S 2 ) Write(S 2 ) Write(S 2 ) Read(S 1 ) Write(S 1 ) 6= In contrast to other techniques, this approach does not build graphs or matrices to represent connection information [8, 14]. It assumes that each unique path expression leads to a distinct location. Consequently, 4 elements of Read and Write sets can be represented by path expressions. To determine if two path expressions can reach same locations, comparison operations similar to the Match operation defined in ....

[Article contains additional citation context not shown here]

Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990.


Solving Shape-Analysis Problems in Languages with.. - Sagiv, Reps, Wilhelm (1996)   (162 citations)  (Correct)

....whether such precision could ever be obtained by any method that uses graphs to model storage usage. Furthermore, as far as we know, no other shape analysis typechecking method (whether based on graphs or other principles [Choi et al. 1993; Deutsch 1992; Deutsch 1994; Ghiya and Hendren 1996; Hendren 1990; Hendren and Nicolau 1990; Landi and Ryder 1991] has the ability to determine that circular listness is preserved by the list insert program. What does our method do that allows it to obtain such qualitatively better results on the above mentioned programs than previous methods A detailed ....

....such precision could ever be obtained by any method that uses graphs to model storage usage. Furthermore, as far as we know, no other shape analysis typechecking method (whether based on graphs or other principles [Choi et al. 1993; Deutsch 1992; Deutsch 1994; Ghiya and Hendren 1996; Hendren 1990; Hendren and Nicolau 1990; Landi and Ryder 1991] has the ability to determine that circular listness is preserved by the list insert program. What does our method do that allows it to obtain such qualitatively better results on the above mentioned programs than previous methods A detailed examination of the di#erences ....

[Article contains additional citation context not shown here]

Hendren, L. and Nicolau, A. 1990. Parallelizing programs with recursive data structures. IEEE Trans. Parallel Distrib. Syst. 1, 1 (Jan.), 35--47.


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

....between different elements of a linked list unless the analysis can prove the list is not circular. Much of the research in this area has been focused on automatically identifying the nature of abstract data structures (i.e. is the structure cyclic, a directed acyclic graph, or a tree) 56] [57]. Hendren has proposed augmenting the source language to allow the user to describe data structures, providing the compiler with additional information for disambiguating these structures [58] Hummel et al. have proposed an axiom based dependence test for references to recursive data structures, ....

....objects have no name, and are only accessed through dereferences of a pointer. Researchers have found disambiguation of recursively defined structures (e.g. linked lists and binary trees) particularly difficult due to the problem of determining whether these structures contain cycles [56] [57], 58] For example, in the following code segment: while (ptr = NULL) ptr count = ptr next count 4; ptr = ptr next; it is difficult to disambiguate the references to ptr count and ptr next count without knowledge of whether the data structure being accessed contains cycles. Pointer ....

L. J. Hendren and A. Nicolau, "Parallelizing programs with recursive data structures," IEEE Transactions on Parallel and Distributed Computing, vol. 1, pp. 35--47, Jan. 1990.


Techniques for Efficient Execution of Fine-Grained.. - Chien, Feng.. (1992)   (2 citations)  (Correct)

....Calls for each c in C do if c contains an allocation of t then insert(c,E) end Figure 6: Finding Recursive Data Structures 3. 2 Recursive Data Structures Exploiting class level structure in object oriented programs allows us to identify recursive data structures such as lists and trees[10] and transform their grain size. Typical implementations of recursive data structures in Actor languages localize the interesting control flow information in the methods for one class. Consequently, we can analyze and optimize recursive data structures by the following steps: i) examine the ....

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Computing, 1(1):35--47, 1990.


Analysis of Dynamic Structures for Efficient Parallel.. - Plevyak, Karamcheti, Chien (1993)   (24 citations)  (Correct)

....which models the effect of that part on an element of the lattice, and a meet operator which combines two elements into one. Three basic approaches to both structure analysis and the alias problem have been explored. These basic approaches are (1) explicit annotation [Lar89] 2) access paths [HN90] and (3) graph based approaches [CWZ90] Explicit annotations allow the user to supply the compiler with information which either cannot be derived, or is more easily verified than derived. In access path approaches, the aliases at each program point are described by pairs of access paths. In the ....

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990.


Interprocedural Pointer Alias Analysis - Burke, Carini, Choi (1997)   (3 citations)  (Correct)

....abstracts a call string by k truncation, we abstract a call string by truncating it just before a repeated call edge. Other approaches toward handling dynamically allocated recursive structures [Jones and Muchnick 1981; Larus and Hilfinger 1988; Ruggieri and Murtagh 1988; Horwitz et al. 1989; Hendren and Nicolau 1990; Landi and Ryder 1992] do not name all instances of anonymous objects. However, Jones and Muchnick 1981; Larus and Hilfinger 1988; Ruggieri and Murtagh 1988; Horwitz et al. 1989; Landi and Ryder 1992] use the k limiting approach [Jones and Muchnick 1981] and thus distinguish up to k objects ....

....nodes. For each malloc statement, up to V 1 anonymous objects can be created: V interesting nodes (where V is the number of variables in the program) and one summary node. An extension using reference counting is described that can discover data structures that are true lists and true trees. Hendren and Nicolau [1990] represent recursive data structures with a path matrix whose entries are path expressions. For each pair of nodes (a; b) in a data structure, the corresponding path expression conservatively represents the set of all paths from Interprocedural Pointer Alias Analysis Delta 59 a to b. For a ....

Hendren, L. J. and Nicolau, A. 1990. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems 1, 1 (Jan.), 35--47.


An Inference Algorithm for the Static Verification of .. - Fradet, Gaugne.. (1996)   (3 citations)  (Correct)

....rephrased as an abstract interpretation of the operational semantics. The abstract domain is the disjunctive completion of a lattice of matrices (associating each pair (v 1 ; v 2 ) with truth values of the basic relations = and 7 ) This domain has some similarities with the path matrices used in [17] for the analysis of a restricted form of regular acyclic structures. The abstraction and concretisation functions follow directly from the correspondence relation of Fig. 1. Instead of a correctness proof of the analyser with respect to the axiomatics as suggested here, the soundness of the ....

L. Hendren and A. Nicolau, Parallelizing programs with recursive data structures, in IEEE Transactions on Parallel and Distributed Systems, Jan. 90, Vol. 1(1), pp. 35-47.


Integrating Scalar Analyses And Optimizations In A Parallelizing.. - Zheng (2000)   (4 citations)  (Correct)

....the graph using the symbolic names as access paths. Two symbolic names are aliases if and only if the two access paths lead to the same node in the storage graph. Symbolic access path analysis. Some approaches calculate aliases of recursive data structures using symbolic access paths [Hen90a, Hen90b, LR92, CBC93, Deu94] Deutsch describes a general symbolic access path as a string of the form e 1 e 2 . e n [Deu94] An element e i (i = 1. n) can be the name of a structure field, the name of a variable or a dereferencing operator or . An element e i (i = 1. n) can also be an ....

....2i 1 ) to represent the ith element of list p and the (2i 1)th element of list q are aliases [Deu94] Hendren and Nicolau s algorithm does not keep track of pairs of access paths that may be aliases. Instead, they use a path matrix to keep track of the path between two pointer variables [Hen90a, Hen90b] For any two pointer variables p and q, a path matrix element M[p, q] contains all possible paths which can reach q from p. Connection analysis. Ghiya and Hendren use connection analysis to approximate the relationship between a pair of pointer variables [GH95, Ghi95] Two pointer variables p ....

L. Hendren. Parallelizing Programs with Recursive Data Structures. In IEEE Transactions on Parallel and Distributed Systems, 1(1), pages 35-47, Jan. 1990.


Integrating Scalar Analyses And Optimizations In A Parallelizing.. - Zheng (2000)   (4 citations)  (Correct)

....to traverse the graph using the symbolic names as access paths. Two symbolic names are aliases if and only if the two access paths lead to the same node in the storage graph. Symbolic access path analysis. Some approaches calculate aliases of recursive data structures using symbolic access paths [Hen90a, Hen90b, LR92, CBC93, Deu94] Deutsch describes a general symbolic access path as a string of the form e 1 e 2 . e n [Deu94] An element e i (i = 1. n) can be the name of a structure field, the name of a variable or a dereferencing operator or . An element e i (i = 1. n) can also be an ....

....2i 1 ) to represent the ith element of list p and the (2i 1)th element of list q are aliases [Deu94] Hendren and Nicolau s algorithm does not keep track of pairs of access paths that may be aliases. Instead, they use a path matrix to keep track of the path between two pointer variables [Hen90a, Hen90b] For any two pointer variables p and q, a path matrix element M[p, q] contains all possible paths which can reach q from p. Connection analysis. Ghiya and Hendren use connection analysis to approximate the relationship between a pair of pointer variables [GH95, Ghi95] Two pointer ....

L. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell University, 1990.


Modular Data-Flow Analysis Of Statically Typed Object-Oriented.. - Chatterjee (2000)   (5 citations)  (Correct)

....in which it was obtained. They also suggest use of an approximate call string consisting of the last j calls on the call stack. The call string list is close to the approach used in the points to algorithm developed at McGill University, where every procedure activation is analyzed separately [HN90, EGH94] optimizations to reduce computation by reusing the results for similar calling contexts were suggested by Emami [Ema93] and have been subsequently developed by Wilson and Lam [WL95] for points to analysis and Ghiya and Hendren for connection analysis [GH96] Empirical data seems to ....

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transaction on Parallel and Distributed Systems, 1990.


Context-Sensitive Interprocedural Points-to Analysis in.. - Emami, Ghiya, Hendren (1994)   (220 citations)  Self-citation (Hendren)   (Correct)

....location called heap in our abstract stack for the points to analysis. All heap directed pointers point to this location. We have designed a separate family of abstractions to capture meaningful relationships between these heapdirected pointers [16] based on the path matrix model proposed in [23]. Both the original path matrix analysis [23] and the heap based method proposed by Chase et al. 6] also assume that pointer fields in heap nodes only point to heap nodes, and do not point to variables (which are locations on stack) It is important to note that our points to method provides a ....

....for the points to analysis. All heap directed pointers point to this location. We have designed a separate family of abstractions to capture meaningful relationships between these heapdirected pointers [16] based on the path matrix model proposed in [23] Both the original path matrix analysis [23] and the heap based method proposed by Chase et al. 6] also assume that pointer fields in heap nodes only point to heap nodes, and do not point to variables (which are locations on stack) It is important to note that our points to method provides a safe approximation even in the presence of ....

L. J. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35-- 47, January 1990.


Towards a Portable Parallel Programming Environment - Gao Hendren Panangaden (1992)   Self-citation (Hendren)   (Correct)

....A clean subset of C is the starting point for such analyses. A key feature of the EPPP system is that such analyses are general, accurate and pervasive. In this regard, analyzability is a key factor in the system described by this proposal. For example, pointer analysis techniques are presented in [7, 9] while array analysis is considered in [2, 12] ffl Program transformation. After the program analysis phase, the system will perform program transformations to expose parallelism at various levels. The focus is on loop transformation techniques. In EPPP, a collection of program transformation ....

Laurie J. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell University, January 1990.


Supporting Dynamic Data Structures on Distributed.. - Rogers, CARLISLE.. (1995)   (98 citations)  Self-citation (Hendren)   (Correct)

....and that touch must be done by the future s parent thread of computation. As a result, the state of a future will be either Stolen or Full when a touch is attempted. 1 9 3.2.3 Discussion. The design of futures in Olden was influenced heavily by our intent to use parallelizing compiler technology [Hendren 1990; Hendren and Nicolau 1990; Hendren et al. 1992; Larus 1991] to insert them automatically. Both the restrictions mentioned in the previous paragraph follow from this intention. These two restrictions allow us to allocate future cells on the stack rather than the heap, which helps make futures less ....

....must be done by the future s parent thread of computation. As a result, the state of a future will be either Stolen or Full when a touch is attempted. 1 9 3.2.3 Discussion. The design of futures in Olden was influenced heavily by our intent to use parallelizing compiler technology [Hendren 1990; Hendren and Nicolau 1990; Hendren et al. 1992; Larus 1991] to insert them automatically. Both the restrictions mentioned in the previous paragraph follow from this intention. These two restrictions allow us to allocate future cells on the stack rather than the heap, which helps make futures less expensive. Another ....

[Article contains additional citation context not shown here]

Hendren, L. J. and Nicolau, A. 1990. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems 1, 1, 35--47.


Supporting Dynamic Data Structures on Distributed.. - Rogers, CARLISLE.. (1995)   (98 citations)  Self-citation (Hendren)   (Correct)

....and that touch must be done by the future s parent thread of computation. As a result, the state of a future will be either Stolen or Full when a touch is attempted. 1 9 3.2.3 Discussion. The design of futures in Olden was influenced heavily by our intent to use parallelizing compiler technology [Hendren 1990; Hendren and Nicolau 1990; Hendren et al. 1992; Larus 1991] to insert them automatically. Both the restrictions mentioned in the previous paragraph follow from this intention. These two restrictions allow us to allocate future cells on the stack rather than the heap, which helps make futures less ....

....parallel safely, and where it is best to place the futurecall and touch operations. See Rogers et al. 1992] for more details. In order to support this analysis, we 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 ....

[Article contains additional citation context not shown here]

Hendren, L. J. 1990. Parallelizing programs with recursive data structures. Ph. D. thesis, Cornell University.


Parametric Shape Analysis via 3-Valued Logic - Mooly Sagiv Thomas   (Correct)

No context found.

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990.


Parametric Shape Analysis via 3-Valued Logic - Mooly Sagiv Thomas   (Correct)

No context found.

L. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell University, Ithaca, N.Y., Jan 1990.


A Static Heap Analysis for Shape and Connectivity - Unified Memory Analysis   (Correct)

No context found.

L. J. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE TPDS, 1(1), 1990.


Automated Verification of the Deutsch-Schorr-Waite - Tree-Traversal Algorithm Alexey   (Correct)

No context found.

L. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Dept. of Computer Science, Cornell University, January 1990.


Simulating Reachability using First-Order Logic - With Applications To   (Correct)

No context found.

Hendren, L.: Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell Univ., Ithaca, NY (1990)


A Decidable Logic - For Describing Linked   (Correct)

No context found.

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990. 16


A Decidable Logic - For Describing Linked   (Correct)

No context found.

L. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell University, Ithaca, N.Y., Jan 1990.


Dynamically Discovering Likely Program Invariants - Ernst (2000)   (108 citations)  (Correct)

No context found.

Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35-47, January 1990.


Verification Via Structure Simulation - Immerman, Rabinovich, Reps.. (2004)   (1 citation)  (Correct)

No context found.

L. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell Univ., Ithaca, NY, Jan 1990.


Connectivity-Based Garbage Collection - Hirzel (2004)   (2 citations)  (Correct)

No context found.

Laurie Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell University, 1990.


Symbolic Bounds Analysis of Pointers, Array Indices, and.. - Rugina, Rinard (2000)   (1 citation)  (Correct)

No context found.

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990.


On the Specialization of Online Program Specializers - Ruf, Weise (1992)   (7 citations)  (Correct)

No context found.

L. J. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35--47, January 1990. 37


Shape Analysis - Wilhelm, Sagiv, Reps (2000)   (11 citations)  (Correct)

No context found.

L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Trans. on Par. and Dist. Syst., 1(1):35-47, January 1990.


Shape Analysis - Wilhelm, Sagiv, Reps (2000)   (11 citations)  (Correct)

No context found.

L. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell Univ., Ithaca, NY, Jan 1990.


Verification via Structure Simulation - Immerman, Rabinovich, Reps.. (2004)   (1 citation)  (Correct)

No context found.

L. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell Univ., Ithaca, NY, Jan 1990.


Dynamically Discovering Likely Program Invariants - Ernst (2000)   (108 citations)  (Correct)

No context found.

Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1(1):35-47, January 1990.


Points-to Analysis for Java with Applications to Loop - Optimizations Peng Wu   (Correct)

No context found.

Laurie J. Hendren and Alexandru Nicolau. Parallelizing programs with recursive data structures. In IEEE Trans. on Parallel and Distributed Computing, January 1990.


Aspects Theoriques Et Pratiques De L'inferences De Type Et Effets - Talpin (1993)   (Correct)

No context found.

Hendren, L. Parallelizing programs with recursive data structures. In IEEE transactions on Parallel and Distributed Processing, volume 1, pages 35-47. January 1990.


the Garbage Collection Bibliography - Richard Jones (2003)   (Correct)

No context found.

Laurie J. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell University, April 1990.

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