Chuck Mitchell Senior Architect, Phoenix Product Unit Microsoft Corporation Review Goals Project Overview Project Status Why use Phoenix for Research? Engagement with UIUC/IMPACT.
Download ReportTranscript Chuck Mitchell Senior Architect, Phoenix Product Unit Microsoft Corporation Review Goals Project Overview Project Status Why use Phoenix for Research? Engagement with UIUC/IMPACT.
Chuck Mitchell Senior Architect, Phoenix Product Unit Microsoft Corporation Review Goals Project Overview Project Status Why use Phoenix for Research? Engagement with UIUC/IMPACT 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 Analysis & Profiling .Net CodeGen Static Analysis Tools Profilers Defect Detection MSR Adv Lang Language Research Direct xfer to Phoenix Research Insulated from code generation Runtime JITs Pre-JIT OO and .Net optimizations 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 Phoenix Infrastructure Academic RDK Retargetable “Machine Models” ~3 months: -Od ~3 months: -O2 Chip Vendor CDK ~6 month ports Sample port + docs Key ports still done at msft Full sources (future) Managed API’s IP as DLLs Docs Code Gen Code Gen LL Opts LL Opts LL Opts HL Opts HL Opts HL Opts Browser Visuali zer Lint Formatter Obfuscator Refactor Xlator Profiler Security Checker Phoenix Managed APIs Phoenix Core IR Syms Types FlowGraph RegionGraph Expressions SSA Simulation Dataflow Alias EH Readers Writers Basic Utilities .NET assembly C# VB Delphi Cobol C++ Native Image C++ IL C++AST Phx AST C++ PreFast Lex/Yacc Eiffel Tiger Profile The Phoenix Building Blocks Machine Abstractions Core Structures And Utilities Low Level Optimizations Dynamic Tools Locaity opts VC++ BE VC++ PreJITer CLR JIT CLR Static Tools Analysis High Level Optimizations ProgramUnit or (whole program) ModuleUnit (single compiland) FuncUnit Type Table Symbol Table FuncUnit FuncUnit FuncUnit FuncUnit FuncUnit FuncUnit Symbol Table FuncUnit FuncUnit Instruction Stream DataUnit DataUnit DataUnit Data Instrs Flow Graph Region Graph Alias Info Exception Handling Info Framework supports multi-threaded compilation at the function level. *p += (a + 1) FirstInstr START VarOpnd ADD VarOpnd t1 ImmOpnd a 1 FuncUnit Use/Def chaining for expression temp MemOpnd ADD [p](1) MemOpnd [p](1) VarOpnd t1 p VarOpnd LastInstr END Exception Handler LabelInstr LabelOpnd Handler 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 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, …) 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 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 technology becomes simple and straight forward 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 © 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. Microsoft Research Faculty Summit 2007