Browse > Article

Improvement of Iterative Algorithm for Live Variable Analysis based on Computation Reordering  

Yun Jeong-Han (한국과학기술원 전산학과)
Han Taisook (한국과학기술원 전산학과)
Abstract
The classical approaches for computing Live Variable Analysis(LVA) use iterative algorithms across the entire programs based on the Data Flow Analysis framework. In case of Zephyr compiler, average execution time of LVA takes $7\%$ of the compilation time for the benchmark programs. The classical LVA algorithm has many aspects for improvement. The iterative algorithm for LVA scans useless basic blocks and calculates large sets of variables repeatedly. We propose the improvement of Iterative algorithm for LVA based on used variables' upward movement. Our algorithm produces the same result as the previous iterative algorithm. It is based on use-def chain. Reordering of applying the flow equation in DFA reduces the number of visiting basic blocks and redundant flow equation executions, which improves overall processing time. Experimental results say that our algorithm ran reduce $36.4\%\;of\;LVA\;execution\;time\;and\;2.6\%$ of overall computation time in Zephyr compiler with benchmark programs.
Keywords
compiler; optimize; compile time; live variable analysis; data flow analysis;
Citations & Related Records
연도 인용수 순위
  • Reference
1 Michael P. Gerlek, Michael Wolfe, and Eric Stoltz. A Reference Chain Approach for Live Variables. Technical Report CSE 94-029, Oregon Graduate Institute, April 1994
2 Glenn Ammons and James R. Larus. Improving Data-flow Analysis with Path Profiles. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, pages 72-84, 1998   DOI
3 S. W. K. Tjiang and J. L. Hennessy. Sharlit: A tool for builing optimizers, In SIGPLAN Conference on Programming Language Design and Implementation, pages 82-93, 1992   DOI
4 MediaBench Homepage http://www.cs.ucla.edu/-leec/mediabench/
5 A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles. Techniques. and Tools. Addison-Wesley, Reading. MA, 1986
6 Evelyn Duesterwald. Rajiv Gupta. and Mary Lou Soffa. Reducing the Cost of Data Flow Analysis By Congruence Partitioning. In International Conference on Compiler Construction, April 1994
7 Zoran Budimlic, Keith D. Cooper, and Timothy J. Harvey. Fast Copy Coalescing and Live-Range Identification. In SIGPLAN Conference on Programming Language Design and Implementation, pages 25-32, 2002   DOI
8 J. B. Kam and J. D. Ullman. Monotone data flow analysis frameworks. In Acta Informatica, 7(3) pages 305-317, July 1977   DOI
9 Susan L. Graham, Mark N. Wegman. A Fast and Usually Linear Algorithm for Global Flow Analysis. JACM 23(1): 172-202, 1976   DOI   ScienceOn
10 C. Samuel Hsieh. A fine-grained data-flow analysis framework. In Acta Informatica, 34(9) pages 653-665, August 1997   DOI
11 Zephyr Homepage http://www.cs.virginia.edu/zephyr/ May 1999
12 Keith D. Cooper, Timothy J. Harvey, and Linda Torczon. How to Build an Interference Graph. In Software-Practice and Experience, VOL. 1(1), 1, January 1988   DOI   ScienceOn
13 Wankang Zhao, Baosheng Cai, et al. VISTA: A System for Interactive Code Improvement. In Proceddings of Language, Compilers, and Tools for Embedded Systems, 2002   DOI
14 Massimiliano Poletto and Vivek Sarkar. Linear Scan Register Allocation. In ACM Transactions on Programming Languages and Systems, 21(5) pages 895-913, September 1999   DOI   ScienceOn