1 / 15

Phoenix Compiler And Tools Infrastructure Update

Phoenix Compiler And Tools Infrastructure Update. Chuck Mitchell Senior Architect, Phoenix Product Unit Microsoft Corporation. Phoenix Update. Review Goals Project Overview Project Status Why use Phoenix for Research? Engagement with UIUC/IMPACT. Phoenix Goals.

milos
Download Presentation

Phoenix Compiler And Tools Infrastructure Update

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. Phoenix Compiler And Tools Infrastructure Update Chuck Mitchell Senior Architect, Phoenix Product Unit Microsoft Corporation

  2. Phoenix Update • Review Goals • Project Overview • Project Status • Why use Phoenix for Research? • Engagement with UIUC/IMPACT

  3. Phoenix Goals • Provide industry leading compilation and tools infrastructure: “VC++ and .NET compilers and tools” • Build research/development community around infrastructure: “the Phoenix Platform” • Make the infrastructure scalable, configurable, and extensible: “JIT to WPO, compilation and analysis” • Make the infrastructure quick to retarget and rehost

  4. Phoenix Overview Analysis & Profiling • Static Analysis Tools • Profilers • Defect Detection MSR Adv Lang .Net CodeGen • Language Research • Direct xfer to Phoenix • Research Insulated from code generation • Runtime JITs • Pre-JIT • OO and .Net optimizations Phoenix Infrastructure Native CodeGen MSR & Partner Tools • Advanced C++/OO Optimizations • FP optimizations • OpenMP, Concurrency • Built on Phoenix Managed API’s • Both HL and LL API’s • Program Analysis • Program Rewrite Academic RDK Retargetable • Full sources (future) • Managed API’s • IP as DLLs • Docs • “Machine Models” • ~3 months: -Od • ~3 months: -O2 Chip Vendor CDK • ~6 month ports • Sample port + docs • Key ports still done at msft

  5. Phoenix Compilers Phoenix Tools Browser Visualizer Lint HL Opts HL Opts HL Opts LL Opts LL Opts LL Opts Code Gen Code Gen Formatter Obfuscator Refactor Xlator Profiler SecurityChecker Phoenix Managed APIs Phoenix Core IR Syms Types FlowGraph RegionGraph Expressions SSA Simulation Dataflow Alias EH Readers Writers Basic Utilities .NETassembly Native Image C++ IL C++AST Phx AST Profile C++ PreFast Lex/Yacc C# VB C++ Delphi Cobol Eiffel Tiger

  6. The Phoenix Building Blocks Machine Abstractions Core Structures And Utilities Low Level Optimizations High Level Optimizations CLR CLR VC++ Static Tools VC++ BE PreJITer Analysis JIT Phoenix Building Blocks Dynamic Tools Locaity opts

  7. Phoenix Based Compiler And Tool Object Model ProgramUnit or ModuleUnit (whole program) (single compiland) FuncUnit DataUnit Type Table Symbol Table FuncUnit DataUnit FuncUnit DataUnit FuncUnit FuncUnit FuncUnit FuncUnit Symbol Table Data Instrs FuncUnit FuncUnit Instruction Stream Flow Graph Region Graph Alias Info Exception Handling Info Framework supports multi-threaded compilation at the function level.

  8. Phoenix IR Example: *p += (a + 1) FuncUnit FirstInstr START ADD VarOpnd VarOpnd ImmOpnd t1 a 1 Use/Def chaining for expression temp ADD MemOpnd VarOpnd MemOpnd LabelOpnd [p](1) [p](1) t1 p Handler VarOpnd LastInstr END Exception Handler LabelInstr

  9. Phoenix Key Features • Written in C++, usable by any .NET language • Dual-Mode: Entire platform compiles to run native on top of Win32/64 or on top of .NET • Phase & Plug-in model for third party extensions to: • VC++ Compiler, Binary Reader/Writer, Analysis Tools, … • Support for Multi-threaded clients • Support for Code and Data extensibility • A single, strongly typed, explicit dataflow/control flow IR used throughout framework • IR and Type system capable of processing native and/or managed code • Strong inter-phase consistency checking • Many diverse compilers and tools reuse the common core

  10. Phoenix Status • We have transitioned from incubation to productization • We created the Phoenix Product Unit with 60+ people • We are delivering X64 build compiler for Win7 and VS10 • We are delivering the platform for Developer Division static analysis tools (PREfast, FxCop, security checker, …)

  11. Phoenix Status (cont.) • X64 Code Quality at 93% of VS9, parity by 2H07, surpass in 1H08 • Multi-threaded compiler on 8 cores up to 3.5X faster than VS9 today • Interprocedural framework is coming on line now • Profile guided optimizations coming on line (still the long pole) • Building and running stress on 118 million lines of Windows code every night

  12. Why Use Phoenix For Research? • Researchers should do research, not plumbing! • Leverage production quality infrastructure, stop re-inventing the wheel • Microsoft backed, we are betting our future on it, so you will be able to rely on it • Research can be proven on by processing real world code (Windows, Office, …) • Internal: Transfer of technologybecomes simple and straight forward

  13. Phoenix Engagement With UIUC/IMPACT • Received proposal for funding late last year • Original proposal was centered around bridging frameworks Phoenix/IMPACT • Met with Wen-Mei and his staff to present Phoenix and review their current work • The bulk of each students work was focused on supporting infrastructure, not research • Conclusion: Rehost IMPACT on Phoenix and focus IMPACT staff on new research

  14. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related