Thesis on 'Small and Fast Optimizing Compilers'

brandis@inf.ethz.ch (Marc-Michael Brandis)
Mon, 13 Mar 1995 15:10:16 GMT

          From comp.compilers

Related articles
Thesis on 'Small and Fast Optimizing Compilers' brandis@inf.ethz.ch (1995-03-13)
| List of all articles for this month |

Newsgroups: comp.compilers
From: brandis@inf.ethz.ch (Marc-Michael Brandis)
Keywords: report, optimize, available, FTP
Organization: Compilers Central
Date: Mon, 13 Mar 1995 15:10:16 GMT

I am happy to announce availability of my thesis 'Optimizing Compilers for
Structured Programming Languages' in electronic form. See below for the
abstract.


anonymous ftp:
ftp.inf.ethz.ch:doc/diss/th11024.ps.gz


This is a Postscript-file compressed with GNU zip. The formatting is such that
it will print on both Letter or A4 paper, but necessarily cannot be optimal for
either one.


Marc Brandis
Institut fuer Computersysteme, ETH Zuerich
CH-8092 Zuerich


Abstract:


Diss. ETH No 11024, 1995
Documentname: th11024.ps
Author: Marc M. Brandis
Organisation: Institute for Computer Systems, ETH Zurich
Title: Optimizing Compilers for Structured Programming Languages
Pages: 153




Modern processor architectures rely on optimizing compilers to
achieve high performance. Such architectures expose details of their
hardware to the compiler, which has to deal with them in generating
machine code. This development has led to complex and slow
compilers, which are difficult to understand, implement, and maintain.


        This thesis reports on methods to simultaneously reduce the
complexity and the compile-time of optimizing compilers by more than
a decimal order of magnitude. It presents a novel intermediate
program representation, which integrates data- and control-flow into
a single data-structure. This provides not just for simpler and
faster optimization algorithms, but also for more powerful
optimization techniques. The thesis also describes single-pass
algorithms to construct this intermediate program representation from
structured source code, as well as single-pass techniques to
transform programs with restricted kinds of unstructured control-flow
like in Oberon into structured form. The integration of these
techniques with the parser allows to implement fast and compact
front-ends for structured programming languages, that avoid the many
auxiliary data structures other optimizing compilers require.


        A description of several optimization algorithms and how they can
be implemented on this intermediate program representation shows the
feasibility of the approach. Most of these techniques have been
implemented in a prototypical optimizing compiler translating a
subset of the programming language Oberon for the PowerPC
architecture. Measurements on this compiler prove that both the
complexity and the compile-time of optimizing compilers can be
reduced by an order of magnitude when translating a structured
programming language and when using this novel intermediate
representation and the associated algorithms. The thesis concludes
with some feedback to the programming language designers, which
language constructs cause undue complications in optimizing compilers
and should therefore be omitted.
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.