CTOC에서 복사 전파

Copy Propagation in CTOC

  • 김기태 (인하대학교 컴퓨터정보공학과) ;
  • 김제민 (인하대학교 컴퓨터정보공학과) ;
  • 유원희 (인하대학교 컴퓨터공학부)
  • 발행 : 2007.03.31

초록

자바 바이트코드는 다양한 장점을 갖지만. 실행속도가 느리고 분석이 어렵다는 단점이 존재한다. 따라서 네트워크와 같은 실행환경에서 효과적으로 실행되기 위해서는 최적화된 코드로 변환이 요구된다. 최적화된 코드로 변환하기 위해 CTOC가 구현되었다. CTOC는 기존의 바이트코드를 이용해서 CFG를 생성한 후 분석과 최적화를 위해 SSA Form을 생성하였다. 하지만 SSA Form으로 변환하는 과정에서 ${\phi}$-함수의 삽입으로 인해 노드의 개수가 늘어나는 현상이 발생하였다. 노드의 개수를 줄이기 위한 한 가지 방법으로 SSA Form에서 적용 가능한 최적화인 복사 전파를 수행하였다. 복사 전파란 하나의 변수 값이 다른 변수의 값으로 복사하는 과정이다. 복사 전파에 의한 변환은 변환 자체로는 큰 효과를 나타내지 못하는 경우가 존재하지만 이후 최적화 과정에서 변수가 사용되지 않는 경우 해당 변수에 대한 복사식을 제거할 수 있는 가능성을 제공하기 때문에 중요한 과정이다. 본 논문은 SSA Form에서 좀 더 최적화된 코드를 얻기 위한 복사 전파 수행을 보인다.

Although the Java bytecode has numerous advantages. there ate also shortcomings such as slow execution speed and difficulty in analysis. Therefore. in order for the Java class file to be effectively executed under the execution environment such as the network, it is necessary to convert it into optimized code. We implements CTOC. CTOC generated CFG using the existing bytecode then created the SSA Form for analysis and optimization. However. due to insertion or the ${\phi}$-function in the process of conversion into the SSA Form, the number of nodes increased. As a means of reducing the number of nodes, we performed copy propagation, which is an optimization method applicable to the SSA form. Copy propagation is the process of a value of a variable being topied to another variable. There are cases where conversion due to copy propagation alone does not yield significant effects. However, when variables are not used in the later optimization stages, copy propagation provides a means for eliminating the copy statement for the corresponding variable, making it an important step. This paper shows the copy propagation to obtain a more optimized code in SSA Form.

키워드