12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- .TL
- The design and implementation of
- the EM Global Optimizer
- .AU
- H.E. Bal
- .AI
- Vrije Universiteit
- Wiskundig Seminarium, Amsterdam
- .AB
- The EM Global Optimizer is part of the Amsterdam Compiler Kit,
- a toolkit for making retargetable compilers.
- It optimizes the intermediate code common to all compilers of
- the toolkit (EM),
- so it can be used for all programming languages and
- all processors supported by the kit.
- .PP
- The optimizer is based on well-understood concepts like
- control flow analysis and data flow analysis.
- It performs the following optimizations:
- Inline Substitution, Strength Reduction, Common Subexpression Elimination,
- Stack Pollution, Cross Jumping, Branch Optimization, Copy Propagation,
- Constant Propagation, Dead Code Elimination and Register Allocation.
- .PP
- This report describes the design of the optimizer and several
- of its implementation issues.
- .AE
- .bp
- .NH 1
- Introduction
- .PP
- .FS
- This work was supported by the
- Stichting Technische Wetenschappen (STW)
- under grant VWI00.0001.
- .FE
- The EM Global Optimizer is part of a software toolkit
- for making production-quality retargetable compilers.
- This toolkit,
- called the Amsterdam Compiler Kit
- .[
- tanenbaum toolkit rapport
- .]
- .[
- tanenbaum toolkit cacm
- .]
- runs under the Unix*
- .FS
- *Unix is a Trademark of Bell Laboratories
- .FE
- operating system.
- .sp 0
- The main design philosophy of the toolkit is to use
- a language- and machine-independent
- intermediate code, called EM.
- .[
- keizer architecture
- .]
- The basic compilation process can be split up into
- two parts.
- A language-specific front end translates the source program into EM.
- A machine-specific back end transforms EM to assembly code
- of the target machine.
- .PP
- The global optimizer is an optional phase of the
- compilation process, and can be used to obtain
- machine code of a higher quality.
- The optimizer transforms EM-code to better EM-code,
- so it comes between the front end and the back end.
- It can be used with any combination of languages
- and machines, as far as they are supported by
- the compiler kit.
- .PP
- This report describes the design of the
- global optimizer and several of its
- implementation issues.
- Measurements can be found in.
- .[
- bal tanenbaum global
- .]
|