DOI QR코드

DOI QR Code

Static Single Assignment Form for Java Bytecodes in CTOC

CTOC에서 자바 바이트코드를 위한 정적 단일 배정 형태

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

Abstract

Although the Java bytecode has numerous advantages, there are also shortcomings such as slow execution speed and difficulty in analysis. In order to overcome such disadvantages, bytecode analysis and optimization must be performed. We implements CTOC for optimized codes. An extended CFG must be first created in order to analyze and optimize a bytecode. Due to unique bytecode properties, the existing CFG must be expanded according to the bytecode. Furthermore, the CFG must be converted into SSA Form for a static analysis, for which calculation is required for various information such as the dominate relation, dominator tree, immediate dominator, $\phi$-function, rename, and dominance frontier. This paper describes the algorithm and the process for converting the existing CFG into the SSA From. The graph that incorporates the SSA Form is later used for type inference and optimization.

자바 바이트코드는 많은 장점을 갖지만 수행 속도가 느리고 분석이 어렵다는 단점을 갖는다. 이를 극복하기 위해 바이트코드에 대한 분석과 최적화가 수행되어야 한다. 최적화된 코드를 위해 CTOC를 구현하였다. 바이트코드에 대해 분석과 최적화를 수행하기 위해서는 우선 CFG를 생성해야 한다. 바이트코드의 특성 때문에 기존의 제어 흐름 분석 기술을 바이트코드에 적합하게 확장해야 한다. 또한 정적으로 분석하기 위해 CFG를 SSA Form으로 변환한다. SSA Form으로 변환하기 위해서는 지배 관계, 지배자 트리, 직접 지배자, $\phi$-함수, 재명명, 지배자 경계 등 많은 정보에 대한 계산을 수행한다. 본 논문은 기존의 CFG로부터 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. Soot, http://www.sable.mcgill.ca/soot
  4. JAristotle, http://www.mtsu.edu/~java
  5. Bloat, http://www.cs.purdue.edu/s3/projects/bloat
  6. Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, 'Compilers Principles, Techniques and Tools,' Addison Wesley, 1986
  7. Andrew W. appel, 'Modern Compiler Implementation in Java.' CAMBRIDGE UNIVERSITY PRESS, 1998
  8. Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck, 'Efficiently Computing; Static Single Assignment Form and the Control Dependence Graph,' Mar. pp.451-490, 1991 https://doi.org/10.1145/115372.115320
  9. 김경수,김기태,조선문,유원회,'CTOC에서 스택 기반 코드를 효율적인 중간 코드로 변환기 설계' 제 22회 한국정보처리학회 추계발표대회 논문집 제 11권 제 2호,pp.429-432,2004. 11
  10. 김기태, 이갑래, 유원희, 'CTOC에서 정적 단일 배정문 형태를 이용한 지역 변수 분리' 한국콘텐츠학회 논문지 제 5권 제3호,pp.73-81,2005. 6