| R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 77--90, June 1999. |
....nodes 5 and 6 in Figure 31 will have its own, private, copies of variables i , j and partial sum in its own activation record, and thus these closures can be invoked concurrently. 5. 3 Equivalence Class Unification Our current compiler uses a context sensitive interprocedural pointer analysis [129, 97] to differentiate between memory accesses to different data structures. The result of the pointer analysis is a points to set for each load, store and call site in the flow graph. The points to set is a conservative list of all the possible allocation sites that could be responsible for allocating ....
....The equivalence class unification and register promotion algorithms described in Sections 5.3 and 5.4, on the other hand, require inter procedural pointer analysis. For this analysis I relied on Radu Rugina s span tool, which is believed to scale, in practice, to programs that are relatively large [97]. A potentially more severe problem was that several of these programs (and in particular lzw decompress) were written using global (scalar) variables that were modified inside subprocedures. In order to perform scalar queue conversion on these variables it was necessary to promote them to ....
Radu Rugina and Martin C. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 77--90, Atlanta, GA, May 1999.
....in the type system [19] but doing so is rather complex. Another possibility is to track aliasing directly in the type system [40, 46] which would potentially permit very finegrained control of concurrency. More generally, pointer or shape analysis can be used to approximate read( and write( [21, 9, 10, 33]. Because # SEC s sequential core is essentially an imperative language with goto, we expect that these existing alias analyses can be adapted to this setting. 5 Security condition We now present more formally the security condition that the # SEC language enforces and give an outline of the ....
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proc. of the ACM SIGPLAN 1999.
....Section 3.2 describes ECU itself. Throughout this section, we use Figure 5 as an expository example. 3.1 Pointer analysis Pointer analysis is a compile time technique that, for every memory reference instruction, determines the data objects that the instruction can possibly refer. Maps uses SPAN [27], a state of the art pointer analysis package that provides an inter procedural, flow sensitive, and context sensitive pointer analysis. To understand pointer analysis, consider the input program in Figure 5(a) Figure 5(b) shows the results of the SPAN pointer analysis package on the program. ....
R. Rugina and M. Rinard. Pointer Analysis for Multithreaded Programs. In Proceedings of the SIGPLAN '99 Conference on Program Language Design and Implementation, Atlanta, GA, May 1999.
....among the banks so that maximum memory bandwidth can be used. RAWCC uses two techniques to satisfy these criteria: equivalence class uni cation and loop unrolling. 2.2. 1 Equivalence Class Uni cation Equivalence class uni cation [5] begins with a pass by the pointer analysis package, SPAN [15]. SPAN assigns a unique location set number to each abstract object in the program. An abstract object is either a variable declaration allocated on the stack or a group of dynamic objects created at a single heap memory allocation call site. All elements of a single array belong to the same ....
R. Rugina and M. Rinard. Pointer Analysis for Multithreaded Programs. In Proceedings of the SIGPLAN '99 Conference on Program Language Design and Implementation, Atlanta, May 1999.
....the size of embedded RAMs. 33 5.2 Pointers Pointers complicate the analysis of memory instructions, potentially creating aliases and ambiguities that can obscure data range discovery. To handle pointers, we use the SPAN pointer analysis package developed by Radu Rugina and Martin Rinard [21]. SPAN can determine the sets of variables commonly referred to as location sets that a pointer may or must reference. We distinguish between reference location sets and modify location sets. A reference location set is a location set annotation that occurs on the right hand side of an ....
....four steps in the flowchart) are presented in Chapter 7. The frontend of the compiler takes as input a program written in C or FORTRAN and produces a bitwidth annotated SUIF file. After parsing the input program into SUIF, the compiler performs traditional optimizations and then pointer analysis [21]. The next two passes, labeled Bitwidth Analysis , are the realization of the algorithms discussed in this paper. Here, the SUIF intermediate representation is converted to SSA form, including the extensions discussed in Chapter 4 and Chapter 5. Finally, the data range propagation pass is invoked ....
R. Rugina and M. Rinard. Pointer Analysis for Multithreaded Programs. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, pages 77--90, Atlanta, GA, May 1999.
....constitute the majority of memory references. Removing redundant loads is therefore a matter of identifying identical array accesses. This is accomplished using SUIF s built in dependence library. For C sources, we use a form of partial redundancy elimination [14] augmented with pointer analysis [23], which allows for the elimination of partially redundant loads. In addition to being a generally useful optimization, redundant load elimination is particularly helpful in SLP analysis. As was discussed in Chapter 4, it reduces the number of packing possibilities in adjacent memory ....
....sources, a simple interprocedural analysis can determine alignment information in a single pass. This analysis is flow insensitive, context insensitive, and visits the call graph in breadth first order. For C sources, we use an enhanced pointer analysis package developed by Rugina and Rinard [23]. Since this pass also provides location set information, we can consider dependences more carefully when combining packing candidates. 6.5 Flattening SLP analysis is most useful when performed on a three address representation. This way, the algorithm has full flexibility in choosing which ....
Radu Rugina and Martin Rinard. Pointer Analysis for Multithreaded Programs. In Proceedings of the SIGPLAN '99 Conference on Programming Language Design and Implementation, Atlanta, GA, May 1999.
....variables can be accessed without incurring the tag check overhead and because privatizing them prevents them from utilizing memory node resources. In the case of small, read only data structures, it would be possible in some cases, through appropriate use of pointer analysis information [8], to determine that the array can be privatized by each compute node, but this will not be a good solution if the read only data is only sparsely accessed. This is, in fact, the case with the face detection application examined in the previous chapter. A read only data structure of a few hundred ....
R. Rugina and M. Rinard. Pointer Analysis for Multithreaded Programs. In Proceedings of the SIGPLAN '99 Conference on Program Language Design and Implementation, Atlanta, GA, May 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the SIGPLAN '99 Conference on Program Language Design and Implementation, Atlanta, GA, May 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the SIGPLAN '99 Conference on Program Language Design and Implementation, Atlanta, GA, May 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Implementation, Atlanta, GA, May 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the SIGPLAN '99 Conference on Program Language Design and Implementation, Atlanta, GA, May 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the SIGPLAN '99 Conference on Program Language Design and Implementation, Atlanta, GA, May 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the SIGPLAN '99 Conference on Program Language Design and Implementation, Atlanta, GA, May 1999.
....three orthogonal design parameters: heap modeling, flow sensitivity, and compositionality. 5.1.1 Heap Modeling Modeling the heap, a potentially infinite structure, in a static analysis is an interesting problem. Some analyses, including ours, model the heap as a points to graph of bounded size [5, 10, 26, 16, 6]. Other analysis do not use any graph at all: they either work with a set of pairs of aliased heap paths, i.e. paths that lead to the same object, e.g. 9] or use some other idea, e.g. 4] In general, storing a points to graph requires less memory space than storing the set of aliased paths ....
....of code in seconds. The disadvantage is the loss of precision. Unlike the type of a variable, which does not change during the execution, the heap is likely to vary significantly as new objects and references are created, and older references are deleted. More sophisticated pointer analyses [5, 10, 26, 16, 6], are flow sensitive: they compute a result for each program point. At least theoretically, they are more precise than the flow insensitive analyses, and are able, in some cases, to handle destructive updates in order to increase their precision even more. This precision comes with a 122 cost: ....
[Article contains additional citation context not shown here]
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Implementation, Atlanta, GA, May 1999.
....approach presented in this paper and other previously presented approaches is the explicit distinction between inside and outside edges. 9.1. 2 Pointer Analysis for Multithreaded Programs Rugina and Rinard recently developed a ow sensitive pointer analysis algorithm for multithreaded programs [23]. The key complication in this algorithm is characterizing the interaction between multiple threads and how this interaction affects the points to relationship. The analysis presented in this paper simply sidesteps this issue. It generates precise results only for objects that do not escape. If an ....
....escaping subgraphs into a single node instead of maintaining the extracted points to information. Our analysis retains this information, in part because we anticipate further thread interaction analyses (for example, extensions of existing pointer analysis algorithms for multithreaded programs [23]) that will use this information. 10 Conclusion This paper presents a new combined pointer and escape analysis algorithm for object oriented programs. The algorithm is designed to analyze arbitrary parts of complete or incomplete programs, obtaining complete information for objects that do not ....
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the SIGPLAN '99 Conference on Program Language Design and Implementation, Atlanta, GA, May 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 77--90, June 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proc. Conf. Programming Language Design and Implementation (PLDI'99), pages 77--90, May 1--4, 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proc. Conf. Programming Language Design and Implementation (PLDI'99), pages 77--90, May 1--4, 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In 1999. 188
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the SIGPLAN '99 Conference on Program Language Design and Implementation, Atlanta, GA, May 1999.
No context found.
R. Rugina and M. Rinard. Pointer Analysis for Multithreaded Programs. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI), pages 77--90. SIGPLAN Notices 34(5), 1999. 15
No context found.
R. Rugina and M. Rinard, "Pointer analysis for multithreaded programs," in Proc. SIGPLAN Conf. Program Language Design Implementation, Atlanta, GA, May 1999, pp. 77--90.
No context found.
R. Rugina and M. Rinard, "Pointer analysis for multithreaded programs," in Proc. Programming Language Design and Implementation, pp. 77-90, May 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proc. of SIGPLAN 1999 Conference on Programming Language Design and Implementation, May 1999.
No context found.
R. Rugina and M. Rinard. Pointer analysis for multithreaded programs. In Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 7790, May 1999.
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