skip to main content
article
Free Access

Unified control flow and data dependence traces

Published:01 September 2007Publication History
Skip Abstract Section

Abstract

We describe the design, generation, and compression of the extended whole program path (eWPP), representation that not only captures the control flow history of a program execution but also its data dependence history. This representation is motivated by the observation that, typically, a significant fraction of data dependence history can be recovered from the control flow trace. To capture the remainder of the data dependence history, we introduce disambiguation checks in the program whose control flow signatures capture the results of the checks. The resulting extended control flow trace enables the recovery of otherwise irrecoverable data dependences. The code for the checks is designed to minimize the increase in program execution time and the extended control flow trace size when compared to directly collecting control flow and address traces. Our experiments show that compressed eWPPs are only one-quarter of the size of combined compressed control flow and address traces. However, their collection incurs a 5× increase in runtime overhead relative to the overhead required for directly collecting the control flow and address traces, respectively.

References

  1. Agrawal, H. and Horgan, J. 1990. Dynamic program slicing. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York. 246--256. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Agrawal, H., DeMillo, R., and Spafford, E. 1993. Debugging with dynamic slicing and backtracking. Software Practice and Experience 23, 6, 589--616. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ammons, G. and Larus, J.R. 1998. Improving data flow analysis with path profiles. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York. 72--84. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Ball, T. and Larus, J.R. 1996. Efficient path profiling. In Proceedings of the IEEE/ACM International Symposium on Microarchitecture. IEEE/ACM, New York. 46--57. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bodik, R., Gupta, R., and Soffa, M.L. 1998. Complete removal of redundant expressions. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York. 1--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Burtscher, M. 2004. VPC3: A fast and effective trace-compression algorithm. In Proceedings of the SIGMETRICS Conference. ACM, New York. 167--176. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Burtscher, M. and Jeeradit, M. 2003. Compressing extended program traces using value predictors. In Proceedings of the 12th International Conference on Parallel Architectures and Compilation Techniques. IEEE, Los Alamitos, CA. 159--169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Chen, T., Lin, J., Dai, X., Hsu, W.-C., and Yew, P.-C. 2004. Data Dependence Profiling for Speculative Optimization. In Proceedings of the 13th International Conference on Compiler Construction. 57--72.Google ScholarGoogle Scholar
  9. Gupta, R., Berson, D., and Fang, J.Z. 1998. Path profile guided partial redundancy elimination using speculation. In Proceedings of the IEEE International Conference on Computer Languages. IEEE, Los Alamitos, CA. 230--239. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Jacobson, Q., Rotenberg, E., and Smith, J.E. 1997. Path-based next trace prediction. In Proceedings of the 30th IEEE/ACM International Symposium on Microarchitecture. IEEE/ACM, New York. 14--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Kamkar, M. 1993. Interprocedural dynamic slicing with applications to debugging and testing. PhD Thesis, Linkoping University, Sweden.Google ScholarGoogle Scholar
  12. Korel, B. and Laski, J. 1988. Dynamic program slicing. Information Processing Letters 29, 3, 155--163. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Korel, B. and Rilling, J. 1997. Application of dynamic slicing in program debugging. In Proceedings of the Automated and Algorithmic Debugging. 43--59.Google ScholarGoogle Scholar
  14. Larus, J.R. 1999. Whole program paths. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York. 259--269. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Liao, S. W., Wang, P. H., Wang, H., Shen, J. P., Hoflehner, G., Lavery, D. M., and Zhang, X. 2002. Post-Pass Binary Adaptation for Software Speculative Precomputation. In ACM SIGPLAN Conference on Programming Language Design and Implementation. 117--128. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lin, J., Chen, T., Hsu, W.C., Yew, P.C., Ju, R.D.C., Ngai, T.F., and Chan, S. 2003. A Compiler Framework for Speculative Analysis and Optimizations. In ACM SIGPLAN Conference on Programming Language Design and Implementation. 289--299. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Lin, J., Hsu, W.C., Yew, P.C., Ju, R.D.C., Ngai, T.F. 2004. A Compiler Framework for Recovery Code Generation in General Speculative Optimizations. In 14th International Conference on Parallel Architectures and Compilation Techniques. 17--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Nevil-Manning, C.G. and Witten, I.H. 1997. Linear-time, incremental hierarchy inference for compression. In Proceedings of the Data Compression Conference. IEEE-CS, Los Alamitos, CA. 3--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Sazeides, Y. 2003. Instruction-isomorphism in program execution. In Proceedings of the Value Prediction Workshop.Google ScholarGoogle Scholar
  20. Tallam, S., Gupta, R., and Zhang, X. 2005. Extended Whole Program Paths. In 14th International Conference on Parallel Architectures and Compilation Techniques. 17--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Weiser, M. 1982. Program slicing. IEEE Transactions on Software Engineering SE-10, 4, 352--357.Google ScholarGoogle Scholar
  22. Young, C. and Smith, M.D. 1998. Better global scheduling using path profiles. In Proceedings of the IEEE/ACM International Symposium on Microarchitecture. IEEE/ACM, New York. 115--123. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Zhang, X. and Gupta, R. 2004. Cost effective dynamic program slicing. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York. 94--106. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Zhang, X., He, H., Gupta, N. and Gupta, R. 2005. Experimental Evaluation of using Dynamic Slices for Fault Location. In SIGSOFT-SIGPLAN Sixth International Symposium on Automated and Analysis-Driven Debugging. ACM, New York. 33--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Zhang, X., Gupta, N. and Gupta, R. 2006. Pruning Dynamic Slices with Confidence. In ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York. 169--180. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Zhang, Y. and Gupta, R. 2001. Timestamped whole program path representation and its applications. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York. 180--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Zhao, Q., Sim, J.E., Wong, W.F., and Rudolph, L. 2006. DEP: detailed execution profile. In 15th International Conference on Parallel Architectures and Compilation Techniques. 154--163. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Zilles, C.B. and Sohi, G. 2000. Understanding the backward slices of performance degrading instructions. In Proceedings of the IEEE/ACM 27th International Symposium on Computer Architecture. IEEE/ACM, New York. 172--181. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Unified control flow and data dependence traces

      Recommendations

      Reviews

      Vladimir Stantchev

      The extended whole program path (eWPP) representation is described in this paper. It captures both control flow history and data dependence history of program execution. The objective is to capture data dependence history that cannot be recovered from the control trace. For this, the authors use disambiguation checks. The approach is described clearly and thoroughly with test data. A positive result is the reduced size (one-fourth) of eWPP, as compared to combined compressed control flow and address traces. The runtime overhead (five times) for their collection makes the approach not universally applicable?keeping in mind that this is an already optimized solution (for example, the authors use binary search instead of linear search). The use of tools, such as Phoenix CF, can automate instrumentation code insertion. Overall, there is no clear statement of benefits from the approach. Specifically, what is the trade-off between smaller size versus high-runtime overhead__?__ Online Computing Reviews Service

      Access critical reviews of Computing literature here

      Become a reviewer for Computing Reviews.

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Transactions on Architecture and Code Optimization
        ACM Transactions on Architecture and Code Optimization  Volume 4, Issue 3
        September 2007
        191 pages
        ISSN:1544-3566
        EISSN:1544-3973
        DOI:10.1145/1275937
        Issue’s Table of Contents

        Copyright © 2007 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 September 2007
        Published in taco Volume 4, Issue 3

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader