DOI QR코드

DOI QR Code

경로 압축을 이용한 DJ 그래프의 지연 감축 알고리즘

Delayed Reduction Algorithms of DJ Graph using Path Compression

  • 심손권 (관동대학교 대학원 컴퓨터공학과) ;
  • 안희학 (관동대학교 컴퓨터공학과)
  • 발행 : 2002.06.01

초록

효과적이고 정확한 데이터 흐름 문제 분석은 흐름그래프와 지배자 트리 그리고 DJ 그래프를 사용한다. 데이터 흐름 문제 해결은 흐름 그래프를 안전하게 지배자 트리로 감축하는 것이다. 흐름 그래프는 파스 트리를 대신하고, DJ 그래프는 감축 가능하거나 감축이 불가능한 흐름 그래프를 지배자 트리로 정확하게 감축하는데 이용된다. 본 연구에서는 Tarjan의 경로 압축 알고리즘을 이용하기 위하여 Top 노드 찾기 알고리즘을 제시하고 기존의 지연감축 알고리즘을 경로압축을 이용하여 개선한다. 경로압축을 이용한 지연감축 알고리즘은 DJ 그래프를 지연 감축하면서 노드를 끌어올려 지배자 트리의 경로를 압축시킨다. 실제로 제안된 알고리즘은 22% 정도 노드들을 끌어올렸고, 20% 정도 경로를 압축시켰다. 압축된 지배자 트리는 효과적인 데이터 흐름 분석을 가능하게 하고, 코드 최적화 과정의 노드 끌어올리기 효과를 가져와 코드 최적화 과정의 복잡도를 개선하는 효과를 가져온다.

The effective and accurate data flow problem analysis uses the dominator tree and DJ graphs. The data flow problem solving is to safely reduce the flow graph to the dominator tree. The flow graph replaces a parse tree and used to accurately reduce either reducible or irreducible flow graph to the dominator tree. In this paper, in order to utilize Tarian's path compress algorithm, the Top node finding algorithm is suggested and the existing delay reduction algorithm is improved using Path compression. The delayed reduction a1gorithm using path compression actually compresses the pathway of the dominator tree by hoisting the node while reducing to delay the DJ graph. Realty, the suggested algorithm had hoisted nodes in 22% and had compressed path in 20%. The compressed dominator tree makes it possible to analyze the effective data flow analysis and brings the improved effect for the complexity of code optimization process with the node hoisting effect of code optimization process.

키워드

참고문헌

  1. Aho, A. V., Sethi, R.. and Ullman, J. D., 'Compilers Principles, Techniques, and Tools,' Addison-Wesley Publishing Co., 1986
  2. Carroll, M. and Ryder, B. G., 'Incremental data flow update via attribute and dominator updates,' In ACM SIGPLAN-SIGACT Symposium on the Principles of Programming Languages, pp.274-284, Jan.,1988 https://doi.org/10.1145/73560.73584
  3. Ramalingam, G. and Reps, T., 'An incremental algorithm for maintaining the dominator tree of a reducible flowgraph,' In ACM SIGPLAN-SIGACT Symposium on the Principles of Programming Languages, pp.314-325, Jan., 1994 https://doi.org/10.1145/174675.177905
  4. Ramalingam, G., 'Identifying loops in almost linear time,' ACM Transactions on Programming Languages and Systems, Vol.21, No.2, pp.175-188, 1999 https://doi.org/10.1145/316686.316687
  5. Ryder, B. G. and Paull, M. C., 'Elimination algorithms for data flow analysis,' ACM Comput. Surv., Vol.18, No.3, pp.277-316, Sep., 1986 https://doi.org/10.1145/27632.27649
  6. Sreedhar, V. C. and Gao, G. R., 'A linear time algorithm for placing ${\phi}$-nodes,' In ACM SIGPLAN-SIGACT Symposium on the Principles of programming Languages, pp.62-73, 1995 https://doi.org/10.1145/199448.199464
  7. Sreedhar, V. C., and Gao, G. R., and Lee,Y. F., 'Identifying Loops Using DJ Graphs,' ACM Transactions on Programming Languages and Systems, Vol.18, No.6, pp.649-658, 1996 https://doi.org/10.1145/236114.236115
  8. Sreedhar, V. C., and Gao, G. R., and Lee,Y. F., 'A New Framework for Exhaustive and Incremental Data Flow Analysis Using DJ Graphs,' ACM in Proceedings of the SIGPLAN'96 Conference on Programming Language Design and Implementation, Vol.18, No.6, pp.278-290, 1996 https://doi.org/10.1145/231379.231434
  9. Sreedhar, V. C., Gao, G. R., and Lee, Y. F., 'Incremental Computation of Dominator Trees,' ACM Transactions on Programming Languages and Systems, Vol.19, No.2, pp.239-252, 1997 https://doi.org/10.1145/244795.244799
  10. Tarjan, R. E., 'Fast algorithms for solving path problems,' Journal of ACM, Vol.28, No.3, pp.594-614, 1981 https://doi.org/10.1145/322261.322273