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 :
بازگشت