1 / 14

Software Optimization and Analysis Framework

Software Optimization and Analysis Framework. Phoenix. By Joel Messer. Developers. Developed by Microsoft in Redmond, WA Academic Program Launched in 2003 Provided researchers with early access to the latest compiler technology Phoenix RDK (Research Development Kit) Core of the program

tress
Download Presentation

Software Optimization and Analysis Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Optimization and Analysis Framework Phoenix By Joel Messer

  2. Developers • Developed by Microsoft in Redmond, WA • Academic Program • Launched in 2003 • Provided researchers with early access to the latest compiler technology • Phoenix RDK (Research Development Kit) • Core of the program • Launched in Sept. 2003 • Contains the Phoenix framework, samples and API documentation

  3. Phoenix Layout

  4. Source Languages • Developed to read • Binary Code • CIL used in Microsoft’s CLR • Microsoft’s C++ frontend • Readers can also be written to create an intermediate from for Phoenix. • Lex / Yacc (Abstract Syntax Tree)

  5. Architectures • Analysis and code generation through Phoenix can target a particular hardware architecture. • Optimizations and more tools are the selected based on that architecture. • Current • x86 • Future • x64 • ia64 • arm • ppc

  6. Phases

  7. View inside Phoenix-Based C2 S O U R C E O B J E C T CI L HIR AST MIR LIR EIR CIL Reader Type Checker MIR LowerSSA Const SSA Dest Canon Addr Modes Lower Reg Alloc EH Lower Stack Alloc Frame Gen Switch Lower Block Layout Flow Opts Encode Lister C1 C2 From Andy Ayers Microsoft Phoenix

  8. Phoenix Architecture

  9. Uses

  10. Strengths • Accepts a general IR form from the front end • Modular optimizations • 25-30 optimization phases built in. • Can also add additional DLLs for optimizations • Program analysis tools • Code Injection • into .net assemblies • native code • Simple Plug-ins • Made backend compiler’s programmable

  11. Weaknesses • Unable to optimize the JIT compiler • Still in development stages • Only truly directed towards x86 • Possible to adjust it for other architectures fairly quickly (less than 6 months)

  12. Usage in the Real World • Shipping the RDK • 200 downloads worldwide • Well received • Number of papers published using Phoenix • About a dozen research grants given to various universities

  13. Goals • Agile Development • Sprints • Rebuild the Windows OS with Phoenix • slowly turning on more and more optimizations • Current in use with Vista • x64 JIT compilers

  14. Questions?

More Related