Phoenix framework (http://research.microsoft.com/Phoenix/) , developed at Microsoft Research, is a framework for developing compilers as well as for developing tools for program analysis, testing and optimization, to be used as the backend for future compiler technologies from Microsoft. Phoenix provides the c2.exe compiler backend, which it shares with Visual C++, to handle analysis, optimization and code generation for uniprocessors like x86 processors.

The objective of this project is to extend the phoenix compiler to work as an auto-parallelizing compiler and to generate code for multi-core processors like x86 processors. It will take input as a sequential source code written in some programming language (that is supported by Phoenix) and produce a binary which can run on multiple cores. This can be done by adding some modules (called “plugins” in phoenix technology) in the phoenix compiler backend. These plugins will do some dependence analysis, transformations and will partition the IR into various execution threads (such that some of these threads can execute in parallel). When the machine code(binary) generated by the backend is taken upon by the Windows OS, the OS will distribute the threads among different cores.

Last edited May 2, 2008 at 6:07 AM by aksheyjawa, version 4