UDC 004.43

OORS: An Object-Oriented Rewrite System

Gernot Gebhard1 and Philipp Lucas1

  1. Dept. 6.2 Computer Science, Compiler Design Lab
    Campus E1 3, Saarland University, D-66041 Saarbrucken, Germany
    {gebhard,phlucas}@cs.uni-sb.de

Abstract

Retargeting a compiler's back end to a new architecture is a time-consuming process. This becomes an evident problem in the area of programmable graphics hardware (graphics processing units, GPUs) or embedded processors, where architectural changes are faster than elsewhere. We propose the object-oriented rewrite system OORS to overcome this problem. Using the OORS language, a compiler developer can express the code generation and optimization phase in terms of cost-annotated rewrite rules supporting complex non-linear matching and replacing patterns. Retargetability is achieved by organizing rules into profiles, one for each supported target architecture. Featuring a rule and profile inheritance mechanism, OORS makes the reuse of existing specifications possible. This is an improvement regarding traditional approaches. Altogether OORS increases the maintainability of the compiler's back end and thus both decreases the complexity and reduces the effort of the retargeting process. To show the potential of this approach, we have implemented a code generation and a code optimization pattern matcher supporting different target architectures using the OORS language and introduced them in a compiler of a programming language for CPUs and GPUs.

Publication information

Volume 4, Issue 2 (December 2007)
Advances in Programming Languages
Year of Publication: 2007
ISSN: 1820-0214 (Print) 2406-1018 (Online)
Publisher: ComSIS Consortium

Full text

DownloadAvailable in PDF
Portable Document Format

How to cite

Gebhard, G., Lucas, P.: OORS: An Object-Oriented Rewrite System. Computer Science and Information Systems, Vol. 4, No. 2, 1-28. (2007)