Improving bit-vector representation of points-to sets using class hierarchy
Points-to analysis is the problem of approximating run-time values of pointers statically or at compiletime. Points-to sets are used to store the approximated values of pointers during points-to analysis. Memory usage and running time limit the ability of points-to analysis to analyze large programs. To our knowledge, works which have implemented a bitvector representation of points-to sets so far, allocates bits for each pointer without considering pointers type. By considering the type, we are able to allocate bits only for a subset of all abstract objects which are of compatible type with the pointers type and as a consequence improve the memory usage and running time. To achieve this goal, we number abstract objects in a way that all the abstract objects of a type and all of its sub-types are consecutive in order. Our most efficient implementation uses about 2.5x less memory than hybrid points-to set (default points-to set in Spark) and also improves the analysis time for sufficiently large programs.
Programming Languages Points-to analysis Points-to sets Data structures Bit-vectors Class hierarchy Java
Hamid A. Toussi Ahmed Khademzadeh
Department of Mathematics & Computer Science University of Sistan and Baluchestan Zahedan, Iran Department of Computer Engineering Islamic Azad University, Mashhad Branch Mashhad, Iran
国际会议
2010 International Conference on Software and Computing Technology(2010年软件与计算机技术国际会议 ICSCT 2010)
昆明
英文
798-802
2010-10-17(万方平台首次上网日期,不代表论文的发表时间)