To go along with the MOSA Framework theme the compiler is not a compiler in a classical sense. It rather provides building blocks, which if combined properly enable the AOT and JIT compilation of CIL images for a managed operating system. These building blocks
Available optimization stages
- A method compiler framework
- An intermediate representation of IL instructions
- A lower level intermediate representation for code generation
- Code generation basics
- A set of independent compiler optimization stages
The MOSA compiler framework is built around individual replaceable compiler stages (see
MOSA Compiler Design
), which can be combined to build compilers with varying levels of optimizations. This allows fine control over the optimization level vs. time and memory costs.
The following optimization stages are available in the MOSA compiler:
- Constant Propagation
- Fast, simple dominance calculation
- SSA Transformation
The set of available optimizations is growing as these can be developed and tested independently. The MOSA compiler is developed to be open for research purposes and we hope to receive some research results as additional optimization stages.
The MOSA source tree includes extensive tests of the MOSA compiler framework. To run the tests you should consult
Running MOSA Compiler Tests
. Note that these tests are rather dependent on the compilation stages setup, so if you use a different set of optimization stages you need to match up the test framework.
A release plan for the MOSA Compiler
has been defined.