Precise concrete type inference for object-oriented languages
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Simple and effective analysis of statically-typed object-oriented programs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Removing unnecessary synchronization in Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Compositional pointer and escape analysis for Java programs
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Effective synchronization removal for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Analysis and Testing of Programs with Exception Handling Constructs
IEEE Transactions on Software Engineering
Java Virtual Machine Specification
Java Virtual Machine Specification
Improving the Precision of Equality-Based Dataflow Analyses
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
Static analysis to support the evolution of exception structure in object-oriented systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Escape analysis for JavaTM: Theory and practice
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
In this paper we introduce our escape analysis framework for Java, which is a kind of flow-insensitive, inter-procedural, and context-sensitive data flow analysis. And we present an efficient static intra-procedural algorithm for inferring the set of types that can occur at runtime for each object. With intra-procedural type information, virtual method resolution, callee-stub inline, exception analysis, and thread allocation site analysis are implemented. Virtual method resolution and callee-stub inline effectively reduce the call graph and SCC (strongly connected components). In exception analysis, we present a more precise analysis algorithm, especially in the inter-procedural exception in SCC.Our escape analysis can be applied to the whole Java program and Java libraries to identify unnecessary synchronization in Java and remove them. We have developed an implementation on Intel's Open Runtime Platform. For our benchmarks, 7.3% to 99% (with an average of 54%) of synchronization operations are eliminated.