Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Escape analysis for object-oriented languages: application to 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
Modular interprocedural pointer analysis using access paths: design, implementation, and evaluation
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
An automatic object inlining optimization and its evaluation
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Points-to and Side-Effect Analyses for Programs Built with Precompiled Libraries
CC '01 Proceedings of the 10th International Conference on Compiler Construction
Modular Static Program Analysis
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Automatic detection of immutable fields in Java
CASCON '00 Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ in Depth Series)
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ in Depth Series)
Automatic feedback-directed object inlining in the java hotspot™ virtual machine
Proceedings of the 3rd international conference on Virtual execution environments
Region Analysis for Race Detection
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Component-Level dataflow analysis
CBSE'05 Proceedings of the 8th international conference on Component-Based Software Engineering
Hi-index | 0.00 |
We present a combined class-modular points-to and class-escape analysis that allows to analyze class declarations even if no information about the code that invokes the class's methods is available as is the case for e.g. shared libraries. Any standard whole-program or summary-based points-to analysis can be plugged into our framework and thus be transformed into a class-modular, class-escape and points-to analysis. The analysis framework uses the flow restrictions imposed by the access modifiers (e.g. private, public and protected in Java) to find all fields that may be modified by code that is not part of the class declaration. These fields escape the class. Unlike method-based summaries instantiated with an unknown context, our analysis framework can give detailed points-to information for non-escaping fields. In addition, the knowledge of which fields belong to the region that does not escape a class can be exploited to perform other analysis like class-modular object in-lining [6] more efficiently or enable the automatic inference of class invariants [10]. We prove the soundness of the analysis and present a set of benchmarks showing that the analysis is suitable to analyze real world code and that more than 75% of the fields from the benchmarked classes are identified as non-escaping.