DOI QR코드

DOI QR Code

An Efficient Algorithm for Sparse Code Motion

희소코드모션을 위한 효율적인 알고리즘

  • 신현덕 (관동대학교 대학원 컴퓨터공학과) ;
  • 유희종 (관동대학교 대학원 컴퓨터공학과) ;
  • 안희학 (관동대학교 컴퓨터공학과)
  • Published : 2005.02.01

Abstract

This paper suggests that sparse code motion algorithm should be used to make the code optimal in the respect of computation and lifetime. This algorithm Is SpCM algorithm, which expand BCM and LCM algorithm. BCM algorithm carries out the optimal code motion computationally and LCM algorithm reduces the register pressure in SpCM algorithm. Generally, code motion algorithm accomplishes the run-time optimal connected with the optimum of computation and the register pressure. Computational cost and consideration of the code size in the register pressure are also added in the paper. The optimum of code motion could be obtained through SpCM algorithm, which considers the code size, in audition to computational optimal and lifetime optimal. The algorithm presented in this paper is the most optimal algorithm in the respect of computation and lifetime, as all the unnecessary code motions are restrained.

이 논문에서는 계산적으로나 수명적으로 코드를 최적화 하기 위해 절제된 코드 모션 알고리즘을 제안한다. 제한한 알고리즘은 BCM과 LCM 알고리즘을 확장한 SpCM 알고리즘이다. SpCM 알고리즘에서 BCM 알고리즘은 계산적으로 최적의 코드 모션을 수행하며, LCM 알고리즘은 레지스터 압박을 감소시킨다. 일반적으로, 코트 모션 알고리즘은 계산의 최적화와 레지스터 압박에 관련된 실행시간 최적화를 실행한다. 이 논문에서는 계산 비용과 레지스터 압박에 코드의 크기를 고려하는 부분을 추가하였다. 코드의 계산적 최적화와 수명적 최적화에 이어 코드의 크기를 고려하는 SpCM 알고리즘에 의해 코드 모션의 최적화 결과를 얻을 수 있다. 이 논문에서 제안한 알고리즘은 모든 불필요한 코드 모션을 억제시키기 때문에 계산적으로나 수명적으로 최적인 알고리즘이라 할 수 있다.

Keywords

References

  1. Aho, A. V., Sethi, R., and Ullman. J. D, 'Compilers Principles, Techniques, and Tools', Addison-Wesley publishing Co., 1986
  2. Briggs, P. and Cooper, K. D., 'Effective partial redundancy elimination', In Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation '94, ACM SIGPLAN Notices, Vol. 29, No.6, pp.159-170, Orlando, FL, June, 1994 https://doi.org/10.1145/178243.178257
  3. Dhamdhere, D. M., 'A fast algorithm for code movement optimization', ACM SIGPLAN Notices, Vol.23, No. 10, pp.172-180, 1998 https://doi.org/10.1145/51607.51621
  4. Dhamdhere, D. M. and Pati!o H., 'An elimination algorithm for bidirectional data flow problems using edge placement', ACM Transactions of Programming languages and Systems, Vol.15, No.2, pp.312- 336, April, 1993 https://doi.org/10.1145/169701.169684
  5. Drechsler, K. H. and Stadel, M. P., 'A variation of Knoop, Riithing and Steffen's lazy code motion', ACM SIGPLAN Notices, Vol.28, No.5, pp.29-38, 1993 https://doi.org/10.1145/152819.152823
  6. Knoop, J., Rtithing, O. and Steffen, B., 'Lazy code motion', In Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation'92, ACM SIGPLAN Notices, Vol.27, No.7, pp.224-234, San Francisco. CA, June, 1992 https://doi.org/10.1145/143095.143136
  7. Knoop, J., Rtithing, O. and Steffen, B., 'Optimal Code motion: Theory and Practice', ACM Transactions on Programming Languages and Systems, Vol.16, No.4, pp.1117-1155, 1994 https://doi.org/10.1145/183432.183443
  8. Knoop, J., Ruthing, O. and Steffen, B., 'The Power of Assignment Motion', Proceedings of the Conference on Programming Language Design and Implementation, Vol.30, No.6, pp.233-245, 1995 https://doi.org/10.1145/207110.207150
  9. Knoop, J. and Steffen, B., 'Sparse Code Motion', Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of Programming languages, pp.170-183, January, 2000 https://doi.org/10.1145/325694.325715