An Assignment Motion Algorithm to Suppress the Unnecessary Code Motion

불필요한 코드모션 억제를 위한 배정문 모션 알고리즘

  • Shin, Hyun-Deok (Dept.of Computer Science Engineering, Graduate School of Kwandong University) ;
  • Ahn, Heui-Hak (Dept.of Computer Science Engineering, Kwandong University)
  • 신현덕 (관동대학교 대학원 전자계산공학과) ;
  • 안희학 (관동대학교 컴퓨터공학과)
  • Published : 2001.03.01

Abstract

This paper presents the assignment motion algorithm unrestricted for code optimization computationally. So, this algorithm is suppressed the unnecessary code motion in order to avoid the superfluous register pressure, we propose the assignment motion algorithm added to the final optimization phase. This paper improves an ambiguous meaning of the predicated. For mixing the basic block level analysis with the instruction level analysis, an ambiguity occurred in knoop’s algorithm. Also, we eliminate an ambiguity of it. Our proposal algorithm improves the runtime efficiency of a program by avoiding the unnecessary recomputations and reexecutions of expressions and assignment statements.

본 논문에서는 코드 최적화를 위하여 계산적으로나 수명적으로 제한이 없는 배정문 모션 알고리즘을 제안한다. 이 알고리즘은 지나친 레지스터의 사용을 막기 위하여 불필요한 코드 모션을 억제한다. 본 논문은 최종 최적화단계가 추가된 재정문 모션 알고리즘을 제안한다. 또한 기존 알고리즘의 술어의 의미가 명확하지 않은 것을 개선하였고 노드 단위 분석과 명령어 단위 분석을 혼용했기 때문에 발생하는 모호함도 개선하였다. 따라서 제안한 알고리즘은 불필요하게 중복된 수식이나 배정문의 수행을 피하게 함으로써, 프로그램의 불필요한 재계산이나 재실행을 하지 않게 하여 프로그램의 능률 및 실행시간을 향사시킨다.

Keywords

References

  1. Aho, A. V., Sethi, R., and Ullman, J. D., 'Compilers Principles, Techniques, and Tools,' Addison-wesley publishing Co., 1986
  2. 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
  3. Dhamdhere, D. M., Rosen, B. K. and Zadeck, F. K., 'How to analyze large programs efficiently and informatively,' In Proc. ACM SIGPLAN Conference on programming Language Design and Implementation'92, pp. 212-223, San Francisco, CA, 1992 https://doi.org/10.1145/143095.143135
  4. Dhamdhere, D. M., Rosen, B. K. and Zadeck, F. K., 'How to analyze large programs efficiently and informatively,' ACM SIGPLAN Notices, Vol.27, No.7, pp.212-223, 1992 https://doi.org/10.1145/143103.143135
  5. Drechsler, K. H. and Stadel, M. P., 'A variation of Knoop, Ruthing 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., Ruthing, 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
  7. Morel, E. and Renvoise, C., 'Global optimization by suppression of partial redundancies,' Communications of the ACM, Vol.22, No.2, pp.96-103, 1979 https://doi.org/10.1145/359060.359069
  8. Dhamdhere, D. M., 'Register assignment using code placement techniques,' Journal of Computer Languages, Vol.13, No.2, pp.75-180, 1988 https://doi.org/10.1016/0096-0551(88)90011-2
  9. Dhamdhere, D. M., 'A usually linear algorithm for register assignment using edge placement of load and store instructions,' Journal of Computer Languages, Vol.15, No.2, pp.83-94, 1990 https://doi.org/10.1016/0096-0551(90)90012-E
  10. Dhamdhere, D. M., 'Practical adaptation of the global optimization algorithm of Morel and Renvoise,' ACM Transactions on Programming Languages and Systems, Vol.1, No.2, pp.291-294, 1991 https://doi.org/10.1145/103135.214520
  11. 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, San-Francisco, CA, 1995 https://doi.org/10.1145/207110.207150
  12. Knoop, J., Ruthing, O. and Steffen, B., 'Lazy code motion,' In Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation'92, 1992 https://doi.org/10.1145/143095.143136
  13. Knoop, J., Ruthing, O. and Steffen, B., 'Lazy code motion,' ACM SIGPLAN Notices, Vo.27, No.7, pp.224-234, June 1992 https://doi.org/10.1145/143103.143136
  14. Knoop, J., Ruthing, O. and Steffen, B., 'Partial dead code elimination,' Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation'94 , pp.147-158, Orlando, FL, 1994 https://doi.org/10.1145/178243.178256
  15. Knoop, J., Ruthing, O. and Steffen, B., 'Partial dead code elimination,' ACM SIGPLAN Notices, Vol.29,No.6, pp.147-158, June 1994 https://doi.org/10.1145/773473.178256