DocumentCode
3105533
Title
MAO — An extensible micro-architectural optimizer
Author
Hundt, Robert ; Raman, Easwaran ; Thuresson, Martin ; Vachharajani, Neil
Author_Institution
Google, Mountain View, CA, USA
fYear
2011
fDate
2-6 April 2011
Firstpage
1
Lastpage
10
Abstract
Performance matters, and so does repeatability and predictability. Today´s processors´ micro-architectures have become so complex as to now contain many undocumented, not understood, and even puzzling performance cliffs. Small changes in the instruction stream, such as the insertion of a single NOP instruction, can lead to significant performance deltas, with the effect of exposing compiler and performance optimization efforts to perceived unwanted randomness. This paper presents MAO, an extensible micro-architectural assembly to assembly optimizer, which seeks to address this problem for x86/64 processors. In essence, MAO is a thin wrapper around a common open source assembler infrastructure. It offers basic operations, such as creation or modification of instructions, simple data-flow analysis, and advanced infra-structure, such as loop recognition, and a repeated relaxation algorithm to compute instruction addresses and lengths. This infrastructure enables a plethora of passes for pattern matching, alignment specific optimizations, peep-holes, experiments (such as random insertion of NOPs), and fast prototyping of more sophisticated optimizations. MAO can be integrated into any compiler that emits assembly code, or can be used standalone. MAO can be used to discover micro-architectural details semi-automatically. Initial performance results are encouraging.
Keywords
program assemblers; program compilers; software architecture; MAO; advanced infrastructure; assembly optimizer; extensible micro-architectural optimizer; open source assembler infrastructure; performance optimization; simple data-flow analysis; Assembly; Degradation; Encoding; Hardware; Optimization; Program processors; Registers;
fLanguage
English
Publisher
ieee
Conference_Titel
Code Generation and Optimization (CGO), 2011 9th Annual IEEE/ACM International Symposium on
Conference_Location
Chamonix
Print_ISBN
978-1-61284-356-8
Electronic_ISBN
978-1-61284-358-2
Type
conf
DOI
10.1109/CGO.2011.5764669
Filename
5764669
Link To Document