Zheng, BixiaYew, Pen-Chung2020-09-022020-09-021999-04-21https://hdl.handle.net/11299/215375In this paper, we present a hierarchical flow-sensitive alias analysis algorithm which parameterizes the context-sensitive level. Our approach groups the pointers in a program by their maximum possible dereference levels. It then orders the analysis of each pointer group by its pointer level, starting from the highest level down to the lowest level. During the analysis of each pointer group by its pointer level, starting from the highest level down to the lowest level. During the analysis of each pointer group, a bottom-up traversal of a program call graph is followed by a top-down traversal with the necessary interprocedural information propagated along the way. The interprocedudral inforamtion is tagged with call-chains, which are the program call graph paths, to achieve context-sensitivity. We also provide empirical results to quantify how different context-sensitive levels affect the precision and the efficiency of the algorithm. Our studies show that (1) the precision improvement achieved by increasing the context-sensitive level of the analysis varies significantly depending on the programs analyzed; (2) increasing the maxium call-chain length for a higher degree of context sensitivity may trigger the exponential complexity problem [15, 10, 23]. Thus, it is very desirable for an algorithm to allow users to select an appropriate context-sensistive level that works best for a particular program. By parameterizing the maxiumum call-chain length used in tagging the interprocedural information, our approach provides this type of flexibility.en-USA Hierarchical Approach to Context-Sensitive Interprocedural Alias AnalysisReport