| C. Ruggieri and T. P. Murtagh. Lifetime Analysis of Dynamically Allocated Objects. In 15th ACM Symposium on Principles of Programming Languages (POPL'88), pages 285-293, San Diego, California, USA, January 1988. |
....was also needed so that the precision of analysis results could be experimentally evaluated; checking that the techniques were indeed practical and if they were worth developing further. 2. 1 The Escape Property Previous work on escape analysis for object oriented languages (see, for example, [3, 4, 7, 14, 21]) de ned the analysis from the point of view of its applications (stack allocation, synchronisation removal) and the exact de nition of the escape property i.e. of the abstract property of the states of the computation which is computed by an escape analysis, was neglected. As a consequence, ....
....that could improve the precision of the analyser. Notwithstanding this, in [8] it is shown that, because E interacts with static type information and the late binding mechanism, in some cases, E with its abstract operations could be more precise than other escape analyses proposed in literature [3, 4, 7, 14, 21]. Hence, as observed in [8] it can be seen that these other analyses are not a concretisation of E itself and that, for improved precision, a re nement of E i.e. a more concrete domain than E , should be constructed. This observation led to the development by Hill and Spoto [9] of the re ....
C. Ruggieri and T. P. Murtagh. Lifetime Analysis of Dynamically Allocated Objects. In 15th ACM Symposium on Principles of Programming Languages (POPL'88), pages 285-293, San Diego, California, USA, January 1988.
....aggressive in combining objects. It cannot yet inline multiple (compile time) variable sized arrays. In some cases, much unused space is left inside objects, resulting in a much larger heap usage. Better heuristics are needed to solve this problem, for example, using object life time analysis [53]. This technique attempts to guess how long an object might reside on the heap. Whenever two objects have approximately the same guessed life times, they are candidates for object combining (even if they are unrelated) Currently, we use profiling to retrieve this information, but the ....
....attempts to guess how long an object might reside on the heap. Whenever two objects have approximately the same guessed life times, they are candidates for object combining (even if they are unrelated) Currently, we use profiling to retrieve this information, but the techniques described in [53] might provide this information without profiling. After object combining has occurred, the opportunities for field reordering [9, 10, 57] and object interleaving [57] increase as more fields are available to the optimizer. It would be interesting to see how much benefit could be obtained from ....
C. Ruggieri and T.P. Murtagh. Lifetime Analysis of Dynamically Allocated Objects. In Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 285--293, San Diego, Calif. USA, 1988.
....defines a family of algorithms which determine modification side e#ects to fixed locations at program points. A fixed location is either an user defined variable or a heap storage creation site. Each individual dynamically allocated fixed location is identified by the site that created it [JM82b, RM88] therefore, whereas two fixed locations created at the same allocation site are not distinguishable, those created at di#erent sites are. Fixed locations are so named because the relation between a fixed location and the storage location to which it refers, is unchanging during execution. Fixed ....
C. Ruggieri and T. Murtagh. Lifetime analysis of dynamically allocated objects. In Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 285--293, January 1988.
....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 ....
C. Ruggieri and T. P. Murtagh. Lifetime analysis of dynamically allocated objects. Conf. Rec. Fifteenth ACM Symp. on Principles of Programming Languages, pages 285--293, January 1988.
....full paper) In our analyses, we report modifications to fixed locations; these are either user defined variable names or heap storage creation site names. For example in C syntax, x and x:f are fixed locations whereas 3p and p f are not. We have named each dynamic allocation site, similar to [RM88]. Each dynamically allocated fixed location is identified by the site that created it; therefore, we cannot distinguish between two fixed locations created at the same site. 3 Ignoring parameter bindings, this is simply RA alias solution at call site. 4 Use of this encoding yields a precise ....
C. Ruggieri and T. Murtagh. Lifetime analysis of dynamically allocated objects. In Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 285--293, January 1988.
.... combining problem; A technique for improving the precision of alias information for compact alias representations [Choi et al. 1993; Emami et al. 1994] and graph based represen 2 Delta Interprocedural Pointer Alias Analysis tations [Jones and Muchnick 1981; 1982; Larus and Hilfinger 1988; Ruggieri and Murtagh 1988; Horwitz et al. 1989; Chase et al. 1990] An interprocedural naming technique for dynamically allocated objects which improves the precision of alias analysis for such objects. Empirical measurements of the efficiency and precision of three interprocedural alias analysis algorithms: the ....
....6.3 we described techniques to identify invalid combinations of aliases. This section shows how similar techniques can improve the precision of compact alias representations [Choi et al. 1993; Emami et al. 1994] and graph based representations [Jones and Muchnick 1981; Larus and Hilfinger 1988; Ruggieri and Murtagh 1988; Horwitz et al. 1989; Chase et al. 1990] When only birth sites are considered, the cost of this technique is quadratic in the maximum level of pointer dereferencing, which in practice is a small constant. The precision can be further improved, at increased cost, by also considering call sites ....
[Article contains additional citation context not shown here]
Ruggieri, C. and Murtagh, T. P. 1988. Lifetime analysis of dynamically allocated objects. In 15th Annual ACM Symposium on the Principles of Programming Languages. 285--293.
....that can be directly invoked from outside the library is called a public interface method of the library. Heap name: Any static analysis technique needs to represent a potentially infinite number of heap allocated, run time objects with a finite number of names. Like many previous researchers [RM88, LR92, CBC93, MLR 93, EGH94, WL95, Ste96] we represent all the run time objects created at a program point n with the single name object n , a heap name. Unknown initial value (UIV) We use var init to represent the unknown initial object to which the global or parameter var of pointer type ....
C. Ruggieri and T. Murtagh. Lifetime analysis of dynamically allocated objects. In Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 285--293, January 1988.
....3 shows an appreciable performance improvement (greater than 15 reduction in execution time) in three programs and relatively modest improvements in other programs. 8 Related Work Lifetime analysis of dynamically allocated objects has been traditionally used for compile time storage management [24, 22, 3]. Park and Goldberg introduced the term escape analysis [22] for statically determining which parts of a list passed to a function do not escape the function call (and hence can be stack allocated) Others have improved and extended Park and Goldberg s work [12, 4] Birkedal et al. 3] propose a ....
C. Ruggieri and T.P. Murtagh. Lifetime analysis of dynamically allocated objects. In Proc. 15th Annual ACM Symposium on Principles of Programming Languages, pages 285--293, January 1988.
.... in Choi et al. 1993] is highly similar to the points to representation [Emami et al. 1994; Ghiya 1992] The major difference 1 The implementation described in Section 4 names objects based on their allocation site [Chase et al. 1990; Horwitz et al. 1989; Hudak 1986; Jones and Muchnick 1981; Ruggieri and Murtagh 1988; Wilson and Lam 1995] ACM Transactions on Programming Languages, Vol. 21, No. 4. Interprocedural Pointer Alias Analysis Delta 5 function ComputeAliases(Var, DerefLevel) begin Solution fg call Expand(Var, DerefLevel, Solution) return Solution end ComputeAliases procedure Expand(Var, ....
....approach for points to analysis. Empirical results on C programs are provided. Chatterjee et al. 1998] describes how the technique can handle exceptions and a special case of incomplete programs, such as libraries. 6.6.2 Heap Analysis. Jones and Muchnick [1981] Larus and Hilfinger [1988] Ruggieri and Murtagh [1988], Horwitz et al. 1989] and Landi and Ryder [1992] use the k limiting approach [Jones and Muchnick 1981] and thus distinguish up to k objects created at the same malloc statement. In Emami et al. 1994] only one name is used to represent all dynamically allocated objects. This name can be ....
[Article contains additional citation context not shown here]
Ruggieri, C. and Murtagh, T. P. 1988. Lifetime analysis of dynamically allocated objects. In 15th Annual ACM Symposium on the Principles of Programming Languages. 285--293.
....by Inoue, Seki and 1 Yagi, who only free the top of lists, but give experimental results. McDowell [24] gives experimental evidence that there are many opportunities for stack allocation in Java programs, and suggests it would be interesting, but does not actually allocate data on the stack. [28] gives an analysis algorithm that can be applied to stack allocation in object oriented languages, but it is much more costly than ours, and no implementation is mentioned. 15] applies an escape analysis to stack allocation in Java, but considers that an object escapes as soon as it is stored in ....
Ruggieri, C., and Murtagh, T. P. Lifetime Analysis of Dynamically Allocated Objects. In Fifteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (Jan. 1988), pp. 285 -- 293.
....functional language for stack allocation of self modifying thunks. There have been a number of papers describing analyses for optimizing storage of lists and other structures. Most of these analyses have been first order (i.e. not accounting for higher order functions. Ruggieri and Murtagh ( 71] [72]) described a lifetime analysis for a language with side effects and complex data structures, but, again, it is first order. Inoue, Seki, and Yagi [49] described an analysis for functional languages to detect, and reclaim run time garbage cells based on formal language theory and grammars. They ....
C. Ruggieri and T.P. Murtagh. Lifetime analysis of dynamically allocated objects. In Proceedings of the 15th ACM Symposium on Principles of Programming Languages, pages 285-293, January 1988.
....much memory is available at any given time. However, reference counting is costly and cannot collect cyclic data structures. To address these problems, we are investigating deep stack allocation of objects; this research combines ideas from both Ruggieri and Murtagh s work on lifetime analysis [15] and Tofte and Talpin s work on region based allocation [17] Conventional stack allocation uses a static analysis to infer which objects will not outlive the topmost stack frame; these objects can be allocated in the topmost frame. Deep stack allocation uses a more sophisticated static analysis ....
....by extending object lifetimes, it is unlikely that they will eliminate all space leaks. One way around this incompleteness is to use a hybrid scheme: rely on stack deallocation, but revert to garbage collection within stack frames when memory is running low, as proposed by Ruggieri and Murtagh [15]. Finally, in order to increase predictability for programmers, a static analyzer needs to be able to give feedback to the programmer concerning which objects can be stackallocated. Otherwise, if a compiler uses a fragile algorithm for determining stack allocations, the programmer will not be able ....
[Article contains additional citation context not shown here]
C. Ruggieri and T. P. Murtagh. Lifetime analysis of dynamically allocated objects. In Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 285--293, San Diego, California, January 1988.
....in terms of the tree fields and the underlying spanning tree. Thus, graph types can only describe data structures with a spanning tree backbone. A large body of work on analysis of heap allocated objects, has focused on other problems like reference counting and memory lifetimes [Hud86, ISY88, RM88, Deu90, WH92] 1.4 Our Approach Our overall goal was to design and implement a sophisticated pointer analysis framework for the McCAT C compiler. We followed the approach of decoupling stack and heap analyses, instead of solving the two problems using the same abstraction. As already ....
C. Ruggieri and T. P. Murtagh. Lifetime analysis of dynamically allocated objects. In Proceedings of the 15th ACM Symposium on Principles of Programming Languages, pages 285--293, 1988.
.... [Ruf95] We use a points to model of aliasing; that is, at each program point, our analysis models the contents of storage locations (points to relations) rather than modeling equivalence classes of location valued expressions (alias relations) In this respect, our analysis is similar to [RM88, HPR89, CWZ90, EGH94, WL95] and different from [Coo89, LR92, CBC93, Deu94] We chose the points to model because it fits naturally into our intermediate representation, and because its storage requirements are likely to be smaller. In our framework, a finite number of base locations name ....
C. Ruggieri and T. P. Murtagh. Lifetime analysis of dynamically allocated objects. In Proceedings of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pages 285--293, Jan. 1988.
....sophisticated and useful program analyses that suffer from this same phenomenon of accumulated imprecision, caused by abstracting at every step. For instance, analyses of heap allocated data structures are important for efficient language implementation, supporting compile time garbage collection [11], aggregate updates [6] interference and dependence analysis for automatic parallelization [10] and instruction level parallelism [9] To take just one of many examples, the shape analysis of [5] is designed to determine which heap allocated data structures in a C program are DAGs and which are ....
C. Ruggieri and T. Murtagh. Lifetime analysis of dynamically allocated objects. In Fifteenth Annual ACM Symposium on Principles of Programming Languages, January 1988.
....and each element is accessed by name rather than a numeric offset. There is also no pointer arithmetic. Subject to these constraints, several techniques can be used to analyze accesses to heap allocated structures and compute the set of objects that can be accessed by each pointer in the program [25, 17, 22, 13, 12, 4]. However, due to their time and space cost we elect to use a simpler approach. Instead of attempting to differentiate between heap allocated objects of the same data type, we create a meta object for the data type and summarize all accesses to heap allocated objects of that data type as if they ....
C. Ruggieri and T.P. Murtagh. Lifetime analysis of dynamically allocated objects. In Symposium on Principles of Programming Languages, pages 285--293, January 1988.
No context found.
C. Ruggieri and T. P. Murtagh. Lifetime Analysis of Dynamically Allocated Objects. In 15th ACM Symposium on Principles of Programming Languages (POPL'88), pages 285-293, San Diego, California, USA, January 1988.
No context found.
C. Ruggieri and T. P. Murtagh. Lifetime Analysis of Dynamically Allocated Objects. In 15th ACM Symposium on Principles of Programming Languages (POPL'88), pages 285-293, San Diego, California, USA, January 1988.
No context found.
C. Ruggieri and T. P. Murtagh. Lifetime Analysis of Dynamically Allocated Objects. In 15th ACM Symposium on Principles of Programming Languages (POPL'88), pages 285-293, San Diego, California, USA, January 1988.
No context found.
C. Ruggieri and T. P. Murtagh. Lifetime analysis of dynamically allocated objects. In Symposium on Principles of Programming Languages, pages 285--293. Association for Computing Machinery,January 1988.
No context found.
Christina Ruggieri and Thomas P. Murtagh. Lifetime analysis of dynamically allocated objects. In POPL [POPL1988], pages 285--293.
No context found.
C. Ruggieri and T. P. Murtagh, Lifetime Analysis of Dynamically Allocated Objects, Conf. Rec. Fifteenth ACM Symp. on Principles of Programming Languages, January 1988.
No context found.
C. Ruggieri and T. P. Murtagh, Lifetime Analysis of Dynamically Allocated Objects, Conf. Rec. Fifteenth ACM Symp. on Principles of Programming Languages, January 1988.
No context found.
Ruggieri, Cristina; and Murtagh, Thomas P. "Lifetime analysis of dynamically allocated objects". ACM POPL '88,285-293. Shaw, Robert A. "Improving Garbage Collector Performance in Virtual Memory". Stanford CSL-TR-87-323, March 1987.
No context found.
Ruggieri, C., and Murtagh, T. P. Lifetime Analysis of Dynamically Allocated Objects. In Fifteenth Annual ACM SIGACTSIGPLAN Symposium on Principles of Programming Languages (Jan. 1988), pp. 285 -- 293.
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