	Once the program has been converted to the IR, the analysis and optimization tools can operate on that form. Phoenix includes a selection of tools – including block counting, memory analysis, code coverage, code analysis and optimization. The Phoenix SDK can be used to write and plug-in other tools as well. Code generation is handled by providing architecture-specific (either physical architecture of the processor or a virtual machine architecture) "file writers". Phoenix provides the codice_1 compiler backend, which it shares with Visual C++, to handle analysis, optimization and code generation for the x86 architecture. Writers for other architectures must be provided separately. 