Affiliation:
1. IBM T.J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY
2. Dept. of Computer Science, Purdue University, West Lafayette, IN
Abstract
Propagation-based call graph construction algorithms have been studied intensively in the 199Os, and differ primarily in the number of sets that are used to approximate run-time values of expressions. In practice, algorithms such as RTA that use a single set for the whole program scale well. The scalability of algorithms such as 0-CFA that use one set per expression remains doubtful.In this paper, we investigate the design space between RTA and 0-CFA. We have implemented various novel algorithms in the context of
Jax
, an application extractor for Java, and shown that they all scale to a 325,000-line program. A key property of these algorithms is that they do not analyze values on the run-time stack, which makes them efficient and easy to implement. Surprisingly, for detecting unreachable methods, the inexpensive RTA algorithm does almost as well as the seemingly more powerful algorithms. However, for determining call sites with a single target, one of our new algorithms obtains the current best tradeoff between speed and precision.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
78 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Challenges of software verification: the past, the present, the future;International Journal on Software Tools for Technology Transfer;2024-08
2. Seneca: Taint-Based Call Graph Construction for Java Object Deserialization;Proceedings of the ACM on Programming Languages;2024-04-29
3. Frankenstein: fast and lightweight call graph generation for software builds;Empirical Software Engineering;2023-11-16
4. Comparing Rapid Type Analysis with Points-To Analysis in GraalVM Native Image;Proceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes;2023-10-19
5. ACER: An AST-based Call Graph Generator Framework;2023 IEEE 23rd International Working Conference on Source Code Analysis and Manipulation (SCAM);2023-10-02