Correcting the dynamic call graph using control-flow constraints

  • Authors:
  • Byeongcheol Lee;Kevin Resnick;Michael D. Bond;Kathryn S. McKinley

  • Affiliations:
  • The University of Texas at Austin;The University of Texas at Austin;The University of Texas at Austin;The University of Texas at Austin

  • Venue:
  • CC'07 Proceedings of the 16th international conference on Compiler construction
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

To reason about programs, dynamic optimizers and analysis tools use sampling to collect a dynamic call graph (DCG). However, sampling has not achieved high accuracy with low runtime overhead. As object-oriented programmers compose increasingly complex programs, inaccurate call graphs will inhibit analysis and optimizations. This paper demonstrates how to use static and dynamic control flow graph (CFG) constraints to improve the accuracy of the DCG. We introduce the frequency dominator (FDOM), a novel CFG relation that extends the dominator relation to expose static relative execution frequencies of basic blocks. We combine conservation of flow and dynamic CFG basic block profiles to further improve the accuracy of the DCG. Together these approaches add minimal overhead (1%) and achieve 85% accuracy compared to a perfect call graph for SPEC JVM98 and DaCapo benchmarks. Compared to sampling alone, accuracy improves by 12 to 36%. These results demonstrate that static and dynamic control-flow information offer accurate information for efficiently improving the DCG.