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
Report
Transcript 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