Precise call graph construction for OO programs in the presence of virtual functions

被引:35
作者
Bairagi, D
Kumar, S
Agrawal, DP
机构
来源
PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING | 1997年
关键词
D O I
10.1109/ICPP.1997.622674
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Several intra- and inter-procedural program analysis techniques form the backbone of an optimizing and parallelizing compiler. The efficacy of these analyses depends upon how precise the call graph is. However, due to lack of exact type information for objects in an object-oriented (OO) program, the existing call graph construction algorithms are rendered imprecise. In this paper, we present an algorithm for constructing a more precise call graph by exploiting the static class hierarchy of an OO program. The information collected during the class hierarchy analysis helps in avoiding unnecessary addition of many spurious call graph edges for virtual-function calls. We have implemented our algorithm for handling C++ programs within a restructuring tool, Sage++. With our precise algorithm for call graph construction, the percentage reduction in the number of nodes and edges in the call graphs for the benchmark programs we had selected, ranged between 4% to 5% and between 22% to 58%, respectively.
引用
收藏
页码:412 / 416
页数:5
相关论文
empty
未找到相关数据