DOI QR코드

DOI QR Code

Optimization Using Partial Redundancy Elimination in SSA Form

SSA Form에서 부분 중복 제거를 이용한 최적화

  • 김기태 (인하대학교 컴퓨터 공학부) ;
  • 유원희 (인하대학교 컴퓨터 공학부)
  • Published : 2007.04.30

Abstract

In order to determine the value and type statically. CTOC uses the SSA Form which separates the variable according to assignment. The SSA Form is widely being used as the intermediate expression of the compiler for data flow analysis as well as code optimization. However, the conventional SSA Form is more associated with variables rather than expressions. Accordingly, the redundant expressions are eliminated to optimize expressions of the SSA From. This paper defines the partial redundant expression to obtain a more optimized code and also implements the technique for eliminating such expressions.

CTOC에서는 정적으로 값과 타입을 결정하기 위해 변수를 배정에 따라 분리하는 SSA Form을 사용한다. SSA Form은 최근 데이터 흐름분석과 코드 최적화를 위해 컴파일러의 중간 표현으로 많이 사용되고 있다. 하지만 기존의 SSA Form은 표현적보다는 주로 변수에 관련된 것이다. 따라서 SSA Form 형태의 표현식에 대해 최적화를 적용하기 위해 중복된 표현식을 제거한다. 본 논문에서는 좀더 최적화된 코드를 얻기 위해 부분 중복 표현식을 정의하고, 부분 중복 표현식을 제거하는 방법을 구현한다.

Keywords

References

  1. Tim Linholm and Frank Yellin. The Java Virtual Machine Specification. The Java Series. Addison Wesley, Reading, MA, USA. Jan, 1997
  2. James Gosling, Bill Joy, and Guy Steel, The Java Language Specification, The Java Series, Addison Wesely, 1997
  3. Taiana Shpeismans, Mustafa Tikir, 'Generating Efficient Stack Code for Java', Technical report, University of Maryland, 1999
  4. 김기태, 유원희, 'CTOC에서 자바 바이트코드를 이용한 제어 흐름 분석에 관한 연구', 한국콘텐츠학회 논문지 제6권 제1호, pp.160-169, 2006
  5. 김기태, 유원희, 'CTOC에서 자바 바이트코드를 위한 정적 단일 배정 형태', 정보처리학회논문지 D 제13-D권 제7호, pp.939-946 https://doi.org/10.3745/KIPSTD.2006.13D.7.939
  6. 김기태, 유원희, '정적 단일 배정 형태를 위한 정적 타입 배정에 관한 연구', 한국콘텐츠학회 논문지 제6권 제2호, pp.117-126, 2006
  7. 김기태, 김지민, 김제민, 유원희, 'CTOC에서 자바 바이트코드 최적화를 위한 Value Numbering', 한국컴퓨터정보학회논문지, 11권6호, pp.19-26, 2006
  8. Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Compilers Principles, Techniques and Tools, Addison Wesley, 1986
  9. Andrew W. appel, Modem Compiler Implementation in Java. CAMBRIDGE UNIVERSITY PRESS, pp.437-477, 1998
  10. Muchnick, S. Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, San Francisco. 1997
  11. Morel, E and Renvoise, C. 'Global optimization by suppression of partial redundancies'. Comm. ACM 22, 2(Feb.) pp. 96-103, 1979 https://doi.org/10.1145/359060.359069
  12. Knoop, J., Ruthing, O., and Steffen, B. 'Optimal code motion: Theory and practice'. ACM Trans. on Programming Languages and Systems 16, 4 (Oct.), pp.1117-1155. 1994 https://doi.org/10.1145/183432.183443
  13. Knoop. J, Collard, J.F., and Ju. H. D. 'Partial redundancy elimination on predicated code'. In Proceedings of the 7th Static Analysis Symposium (SAS'00). pp.260-279, 2000
  14. Hailpcrin, M, 'Cost optimal code motion'. ACM Transactions on Proceedings Languages and Systems 20, 6, pp.1297-1322, 1998 https://doi.org/10.1145/295656.295664
  15. Chow. F., Chan, S., Kennedy, R, Liu, S., Lo, R., and Tu, P.A. 'new algorithm for partial redundancy elimination based on SSA form', In Proceedings of the ACM SIGPLAN '97 Conference on Programming Language Design and Implementation, pp.273-286, 1997 https://doi.org/10.1145/258915.258940
  16. Kennedy, R., Chow, F. C., Dahl, P., Liu, S. M., Lo, R., and Streich, M. 'Strength reduction via SSAPHE'. In Proceedings of the 7th International Conference on Compiler Construction. Springer Verlag, New York. 144-158, 1998
  17. Kennedy, R, Chan, S., Liu, S. M., Lo, R, and Tu. P. 'Partial redundancy elimination in SSA form'. ACM Transactions on Programming Languages and Systems https://doi.org/10.1145/319301.319348
  18. Cai, Q. and Xue, J. 'Optimal and efficient speculation based partial redundancy elimination'. In 1st IEEE/ACM International Symposium on Code Generation and Optimization, pp91-104, 2003 https://doi.org/10.1109/CGO.2003.1191536
  19. Scholl, B., Horspool, R. N., and Knoop, J. 'Optimizing for space and time usage with speculative partial redundancy' elimination'. In Proceedings of the 2004 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems. pp.221-230. 2004 https://doi.org/10.1145/998300.997195
  20. Xue, J. and Cai, Q. 'Lifetime Optimal Algorithm for Speculative PRE', ACM Transaction on Architecture and Code Optimization, Vol.3, No.2, pp.115-155, 2006 https://doi.org/10.1145/1138035.1138036
  21. http://www.graphviz.org/
  22. Don Lance, 'Java Program Analysis: A New Approach Using Java Virtual Machine Bytecodes', http://www.mtsu.edu/-java