• 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