My favorites | Sign in
mao
Project Home Downloads Wiki Issues Source
Project Information
Members
Links

Overview

This project seeks to build an infrastructure for micro-architectural optimizations at the instruction level.

MAO is a stand alone tool that takes assembly code as input and translates it to an IR that optimization and analysis passes can work with. MAO can then output information/statistics about the input as well as the transformed assembly code. It reuses code from the binutils project. Please see the wiki-pages below for detailed information.

The current MAO version is a fully functioning prototype targeting x86, with big plans for the future. It is deployed in production at Google.

For discussions, please use mao-project@googlegroups.com

Research Papers

MAO — An extensible micro-architectural optimizer, CGO 2012, Robert Hundt, Easwaran Raman, Martin Thuresson, Neil Vachharajani, Google Inc.

Compiler techniques to improve dynamic branch prediction for indirect jump and call instructions, HiPeac 2012, Jason McCandless, David Gregg, Trinity College Dublin, Ireland

Development

For Users For Developers
How to Build Coding Conventions
How to Run Code Reviews
Option Handling Description of the MAO IR (Intermediate Representation)
How to Write a Pass/Plug-in
Descriptions of Optimization Passes Description of Available Analysis Passes
External Reference Documentation

Powered by Google Project Hosting