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.
- 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 ScholarDigital Library
- Agrawal, H., DeMillo, R., and Spafford, E. 1993. Debugging with dynamic slicing and backtracking. Software Practice and Experience 23, 6, 589--616. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Burtscher, M. 2004. VPC3: A fast and effective trace-compression algorithm. In Proceedings of the SIGMETRICS Conference. ACM, New York. 167--176. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Kamkar, M. 1993. Interprocedural dynamic slicing with applications to debugging and testing. PhD Thesis, Linkoping University, Sweden.Google Scholar
- Korel, B. and Laski, J. 1988. Dynamic program slicing. Information Processing Letters 29, 3, 155--163. Google ScholarDigital Library
- Korel, B. and Rilling, J. 1997. Application of dynamic slicing in program debugging. In Proceedings of the Automated and Algorithmic Debugging. 43--59.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Sazeides, Y. 2003. Instruction-isomorphism in program execution. In Proceedings of the Value Prediction Workshop.Google Scholar
- 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 ScholarDigital Library
- Weiser, M. 1982. Program slicing. IEEE Transactions on Software Engineering SE-10, 4, 352--357.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Unified control flow and data dependence traces
Recommendations
The design and evaluation of path matching schemes on compressed control flow traces
A control flow trace captures the complete sequence of dynamically executed basic blocks and function calls. It is usually of very large size and therefore commonly stored in compressed format. On the other hand, control flow traces are frequently ...
Conversion of control dependence to data dependence
POPL '83: Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languagesProgram analysis methods, especially those which support automatic vectorization, are based on the concept of interstatement dependence where a dependence holds between two statements when one of the statements computes values needed by the other. ...
Computation of interprocedural control dependence
ISSTA '98: Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysisProgram dependence information is useful for a variety of software testing and maintenance tasks. Properly defined, control and data dependencies can be used to identify semantic dependencies. To function effectively on whole programs, tools that ...
Comments