• DocumentCode
    2437630
  • Title

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

  • Author

    Bairagi, Ieepankar ; Kumar, Sandeep ; Agrawal, Dharma P.

  • Author_Institution
    Dept. of Electr. & Comput. Eng., North Carolina State Univ., Raleigh, NC, USA
  • fYear
    1997
  • fDate
    11-15 Aug 1997
  • Firstpage
    412
  • Lastpage
    416
  • Abstract
    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 56% and between 22% to 58%, respectively
  • Keywords
    object-oriented programming; optimising compilers; parallelising compilers; C++ programs; Sage++; exact type information; object oriented programming; optimizing compiler; parallelizing compiler; precise call graph construction; program analysis techniques; restructuring tool; static class hierarchy; virtual functions; virtual-function calls; Algorithm design and analysis; Data analysis; Dynamic programming; Functional programming; Information analysis; Optimizing compilers; Parallel processing; Parallel programming; Program processors; Spine;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel Processing, 1997., Proceedings of the 1997 International Conference on
  • Conference_Location
    Bloomington, IL
  • ISSN
    0190-3918
  • Print_ISBN
    0-8186-8108-X
  • Type

    conf

  • DOI
    10.1109/ICPP.1997.622674
  • Filename
    622674