1249259Sdim//===-- AMDGPUAsmPrinter.h - Print AMDGPU assembly code -------------------===//
2249259Sdim//
3249259Sdim//                     The LLVM Compiler Infrastructure
4249259Sdim//
5249259Sdim// This file is distributed under the University of Illinois Open Source
6249259Sdim// License. See LICENSE.TXT for details.
7249259Sdim//
8249259Sdim//===----------------------------------------------------------------------===//
9249259Sdim//
10249259Sdim/// \file
11249259Sdim/// \brief AMDGPU Assembly printer class.
12249259Sdim//
13249259Sdim//===----------------------------------------------------------------------===//
14249259Sdim
15249259Sdim#ifndef AMDGPU_ASMPRINTER_H
16249259Sdim#define AMDGPU_ASMPRINTER_H
17249259Sdim
18249259Sdim#include "llvm/CodeGen/AsmPrinter.h"
19249259Sdim
20249259Sdimnamespace llvm {
21249259Sdim
22249259Sdimclass AMDGPUAsmPrinter : public AsmPrinter {
23249259Sdim
24249259Sdimpublic:
25249259Sdim  explicit AMDGPUAsmPrinter(TargetMachine &TM, MCStreamer &Streamer)
26249259Sdim    : AsmPrinter(TM, Streamer) { }
27249259Sdim
28249259Sdim  virtual bool runOnMachineFunction(MachineFunction &MF);
29249259Sdim
30249259Sdim  virtual const char *getPassName() const {
31249259Sdim    return "AMDGPU Assembly Printer";
32249259Sdim  }
33249259Sdim
34249259Sdim  /// \brief Emit register usage information so that the GPU driver
35249259Sdim  /// can correctly setup the GPU state.
36251662Sdim  void EmitProgramInfoR600(MachineFunction &MF);
37251662Sdim  void EmitProgramInfoSI(MachineFunction &MF);
38249259Sdim
39249259Sdim  /// Implemented in AMDGPUMCInstLower.cpp
40249259Sdim  virtual void EmitInstruction(const MachineInstr *MI);
41249259Sdim};
42249259Sdim
43249259Sdim} // End anonymous llvm
44249259Sdim
45249259Sdim#endif //AMDGPU_ASMPRINTER_H
46