ABSTRACT
X10 is a HPC (High Performance Computing) programming language proposed by IBM for supporting a PGAS (Partitioned Global Address Space) programming model offering a shared address space. The address space can be further partitioned into several logical locations where objects and activities (or threads) will be dynamically created. An analysis of locations can help to check the safety of object accesses through exploring which objects and activities may reside in which locations, while in practice the objects and activities are usually designated at runtime and their locations may also vary under different environments. In this paper, we propose a constraint-based locality analysis method called Leopard for X10. Leopard calculates the points-to relations for analyzing the objects and activities in a program and uses a place constraint graph to analyze their locations.We have developed a tool to support Leopard, and conducted an experiment to evaluate its effectiveness and efficiency. The experimental results show that Leopard can calculate the locations of objects and activities precisely.
- S. Agarwal, R. Barik, V. K. Nandivada, R. K. Shyamasundar, and P. Varma. Static detection of place locality and elimination of runtime checks. In Programming Languages and Systems, 6th Asian Symposium, APLAS 2008, pages 53--74, 2008. Google ScholarDigital Library
- S. Agarwal, R. Barik, V. Sarkar, and R. K. Shyamasundar. Mayhappen-in-parallel analysis of X10 programs. In Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP 2007, pages 183--193, 2007. Google ScholarDigital Library
- L. Andersen. Program analysis and specialization for the C programming language. DIKU report 94-19, University of Copenhagen, 1994.Google Scholar
- S. Chandra, V. A. Saraswat, V. Sarkar, and R. Bodík. Type inference for locality analysis of distributed data structures. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP 2008, pages 11--22, 2008. Google ScholarDigital Library
- J.-D. Choi, M. Burke, and P. Carini. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 232--245, 1993. Google ScholarDigital Library
- M. Emami, R. Ghiya, and L. J. Hendren. Context-sensitive interprocedural points-to analysis in the presence of function pointers. In Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, pages 242--256, 1994. Google ScholarDigital Library
- J. S. Foster, M. Fähndrich, and A. Aiken. Polymorphic versus monomorphic flow-insensitive points-to analysis for C. In Proceedings of the 7th International Symposium on Static Analysis, pages 175--198, 2000. Google ScholarDigital Library
- B. Hardekopf and C. Lin. Semi-sparse flow-sensitive pointer analysis. In Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 226--238, 2009. Google ScholarDigital Library
- M. Hind. Pointer analysis: haven't we solved this problem yet? In Proceedings of the 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pages 54--61, 2001. Google ScholarDigital Library
- M. Hind, M. Burke, P. Carini, and J. deok Choi. Interprocedural pointer alias analysis. ACM Transactions on Programming Languages and Systems, 21(4):848--894, 1999. Google ScholarDigital Library
- V. Kahlon. Bootstrapping: a technique for scalable flow and contextsensitive pointer alias analysis. In Proceedings of the ACM SIGPLAN 2008 conference on Programming Language Design and Implementation, pages 249--259, 2008. Google ScholarDigital Library
- W. Landi, B. G. Ryder, and S. Zhang. Interprocedural modification side effect analysis with pointer aliasing. In Proceedings of the ACM SIGPLAN 1993 Conference on Programming Language Design and Implementation, pages 56--67, 1993. Google ScholarDigital Library
- O. Lhoták and L. J. Hendren. Scaling java points-to analysis using SPARK. In Proceedings of the 12th International Conference on Compiler Construction, pages 153--169, 2003. Google ScholarDigital Library
- O. Lhotak and L. J. Hendren. Context-sensitive points-to analysis: is it worth it? In Proceedings of the 15th International Conference on Compiler Construction, pages 47--64, 2006. Google ScholarDigital Library
- A. Milanova, A. Rountev, and B. G. Ryder. Parameterized object sensitivity for points-to analysis for Java. ACM Transactions on Software Engineering and Methodology, 14:1--41, 2005. Google ScholarDigital Library
- T. W. Reps. Program analysis via graph reachability. Information & Software Technology, 40(11-12):701--726, 1998.Google ScholarCross Ref
- B. Steensgaard. Points-to analysis in almost linear time. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 32--41, 1996. Google ScholarDigital Library
- WALA. http://wala.sourceforge.net/wiki/index.php/Main Pagev.Google Scholar
- J. Whaley and M. S. Lam. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation, pages 131--144, 2004. Google ScholarDigital Library
- J. Whaley and M. Rinard. Compositional pointer and escape analysis for Java programs. In Proceedings of the 14th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, pages 187--206, 1999. Google ScholarDigital Library
- R. Wilson and M. S. Lam. Efficient context-sensitive pointer analysis for C programs. In Proceedings of the ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation, pages 1--12, 1995. Google ScholarDigital Library
- X10. http://x10.codehaus.org/.Google Scholar
- K. A. Yelick, D. Bonachea, W.-Y. Chen, P. Colella, K. Datta, J. Duell, S. L. Graham, P. Hargrove, P. N. Hilfinger, P. Husbands, C. Iancu, A. Kamil, R. Nishtala, J. Su,M. L.Welcome, and T.Wen. Productivity and performance using partitioned global address space languages. In Proceedings of the International Workshop on Parallel Symbolic Computation, pages 24--32, 2007. Google ScholarDigital Library
- H. Yu, J. Xue,W. Huo, X. Feng, and Z. Zhang. Level by level: making flow- and context-sensitive pointer analysis scalable for millions of lines of code. In Proceedings of the 8th International Symposium on Code Generation and Optimization, pages 218--229, 2010. Google ScholarDigital Library
Index Terms
- Constraint-based locality analysis for X10 programs
Recommendations
On-demand dynamic summary-based points-to analysis
CGO '12: Proceedings of the Tenth International Symposium on Code Generation and OptimizationStatic analyses can be typically accelerated by reducing redundancies. Modern demand-driven points-to or alias analysis techniques rest on the foundation of Context-Free Language (CFL) reachability. These techniques achieve high precision efficiently ...
Side-effect analysis with fast escape filter
SOAP '12: Proceedings of the ACM SIGPLAN International Workshop on State of the Art in Java Program analysisSide-effect analysis is a fundamental static analysis used to determine the memory locations modified or used by each program entity. For the programs with pointers, the analysis can be very imprecise. To improve the precision of side-effect analysis, ...
Introspective analysis: context-sensitivity, across the board
PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and ImplementationContext-sensitivity is the primary approach for adding more precision to a points-to analysis, while hopefully also maintaining scalability. An oft-reported problem with context-sensitive analyses, however, is that they are bi-modal: either the analysis ...
Comments