2000
DOI: 10.1007/3-540-46423-9_6
|View full text |Cite
|
Sign up to set email alerts
|

Fast Escape Analysis and Stack Allocation for Object-Based Programs

Abstract: A fast and scalable interprocedural escape analysis algorithm is presented. The analysis computes a description of a subset of created objects whose lifetime is bounded by the lifetime of a runtime stack frame. The analysis results can be used for many purposes, including stack allocation of objects, thread synchronization elimination, deadstore removal, code motion, and iterator reduction. A method to use the analysis results for transforming a program to allocate some objects on the runtime stack is also pre… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

1
64
0
1

Year Published

2002
2002
2011
2011

Publication Types

Select...
6
1

Relationship

0
7

Authors

Journals

citations
Cited by 59 publications
(66 citation statements)
references
References 24 publications
1
64
0
1
Order By: Relevance
“…However, unlike escape analysis [8], [9] finding objects whose lifetime is bound to the lifetime of its creation frame, we find the stack frames to which the lifetimes of many long-lived objects are bound. The detailed explanation is given in Sect.…”
Section: Overviewmentioning
confidence: 66%
See 2 more Smart Citations
“…However, unlike escape analysis [8], [9] finding objects whose lifetime is bound to the lifetime of its creation frame, we find the stack frames to which the lifetimes of many long-lived objects are bound. The detailed explanation is given in Sect.…”
Section: Overviewmentioning
confidence: 66%
“…For this purpose, we consider the object escape-pattern but exploit it differently than escape analysis [8], [9]. Basically, an object escapes its creation stack frame when it becomes reachable from other stack frame.…”
Section: Phase Identificationmentioning
confidence: 99%
See 1 more Smart Citation
“…Most analyses use infinite depth and field branching (k = b = ∞). Exceptions include the analysis of Gay and Steensgaard [11] where objects escape when they are stored in the heap, i.e. k = 1; the analysis of Bodga and Hoelzle [12], with k = 2; and the analysis of Blanchet [10] which identifies objects by their heap depth, hence b = 0.…”
Section: Related Workmentioning
confidence: 99%
“…Escape analyses have been traditionally used to identify objects that do not escape their method or thread scopes, thus enabling stack allocation or synchronization elimination optimizations [11,9,12,10]. Pointer analyses have been mainly concerned with building points-to sets, or resolving alias queries [21,16,17,18].…”
Section: Related Workmentioning
confidence: 99%