A Study on the Optimization and Parallelism Information Representation using Ideograph

Ideograph를 이용한 최적화 및 병렬성 정보 표현에 관한 연구

  • 정성옥 (광주여자대학교 컴퓨터학부) ;
  • 고광만 (광주여자대학교 컴퓨터학부)
  • Published : 2000.12.01

Abstract

Ideograph is a truly unifies data and procedural dependencies. Ideograph can be used to assist various program optimization, such as common expression elimination, code motion, constant folding etc. In this paper, we propose an improved representation of the data and control flow dependencies information for the efficient program execution. In pursuing this goal, we propose a model and in particularly implement a dependency information extractor and information table, which contains data and control flow information per a basic block And then we design and implementation of the optimized abstract syntax tree using Ideograph which has a control flow information and data flow information for source program.

최적화란 비효율적인 코드를 구분해 내서 실행 속도 및 기억 공간의 효율성을 높여 주는 방법으로 컴파일러의 각 단계에서 수행된다. Augustus K. Uht에 의해 제안된 Ideograph는 입력 프로그램에 대한 제어 의존성과 자료 의존성에 관한 정보를 동시에 표현할 수 있어 코드 최적화 단계에서 효과 적으로 이용될 수 있으며 프로그램에 존재하는 병렬성을 표현하는데 효과적이다. 구문 트리는 원시 프로그램을 정보를 효율적으로 표현할 수 있는 중간 표현으로서 컴파일러 구 현에 널리 사용되고 있다. 본 논문에서는 원시 프로그램의 중간 표현이 구문 트리를 입력으로 받아 최적화 정보를 추출한 후 제어 흐름 및 자료 흐름 분석 정보를 추출하여 제어 의존성과 자료 의 존성을 Ideograph에 동시에 표현한다.

Keywords

References

  1. Compilers : Principles, Techniques, and Tools Alfred V. Aho;Ravi Sethi;Jeffrey D. Ullman
  2. ACM TOPLAS v.9 no.3 The program dependence Graph and Its Use in Optimization J. Ferrante;K. Ottenstein;J. Warren
  3. Design of Compilers : Techniques of Programmign Language Translation Karen A. Lemone
  4. International Conference on parallel Processing v.2 issues in the Optimization of Parallel Programs S. P. Midkiff;D. A. Pauda
  5. Compiler Writing Jean-Paul Tremblay;Paul G. Sorenson
  6. International Conference on Parallel Processing v.2 Program Optimization with Ideograph S. ShouHan Wang;Augustus K. Uta
  7. Advanced Compiler Design and Implementation Steven S. Muchnick
  8. Concurent Programming : Fundamental Techniques for Real-Time and Parallel Software Design Tom Axford
  9. Concurrent Programming : Principles and Practice Gregory R. Andrews
  10. Concurent Programming : Fundamental Techniques for Real-Time and Parallel Software Design Tom Axford