12ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard//===-- AMDGPUAsmPrinter.h - Print AMDGPU assembly code -------------------===//
22ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard//
32ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard//                     The LLVM Compiler Infrastructure
42ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard//
52ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard// This file is distributed under the University of Illinois Open Source
62ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard// License. See LICENSE.TXT for details.
72ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard//
82ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard//===----------------------------------------------------------------------===//
92ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard//
102ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard// AMDGPU Assembly printer class.
112ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard//
122ad8608cb3e6a8d2f375ad2295504167b082711fTom Stellard//===----------------------------------------------------------------------===//
13e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard
14e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard#ifndef AMDGPU_ASMPRINTER_H
15e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard#define AMDGPU_ASMPRINTER_H
16e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard
17e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard#include "llvm/CodeGen/AsmPrinter.h"
18e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard
19e30b4644b613a130318cdf240ad237b0afbc525aTom Stellardnamespace llvm {
20e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard
21e30b4644b613a130318cdf240ad237b0afbc525aTom Stellardclass AMDGPUAsmPrinter : public AsmPrinter {
22e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard
23e30b4644b613a130318cdf240ad237b0afbc525aTom Stellardpublic:
24e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard  explicit AMDGPUAsmPrinter(TargetMachine &TM, MCStreamer &Streamer)
25e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard    : AsmPrinter(TM, Streamer) { }
26e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard
27235318a578b3d7772a60590c7e76791ed6d1a78eTom Stellard  virtual bool runOnMachineFunction(MachineFunction &MF);
28235318a578b3d7772a60590c7e76791ed6d1a78eTom Stellard
29e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard  virtual const char *getPassName() const {
30e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard    return "AMDGPU Assembly Printer";
31e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard  }
32e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard
33235318a578b3d7772a60590c7e76791ed6d1a78eTom Stellard  /// EmitProgramInfo - Emit register usage information so that the GPU driver
34235318a578b3d7772a60590c7e76791ed6d1a78eTom Stellard  /// can correctly setup the GPU state.
35235318a578b3d7772a60590c7e76791ed6d1a78eTom Stellard  void EmitProgramInfo(MachineFunction &MF);
36235318a578b3d7772a60590c7e76791ed6d1a78eTom Stellard
37e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard  /// EmitInstuction - Implemented in AMDGPUMCInstLower.cpp
38e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard  virtual void EmitInstruction(const MachineInstr *MI);
39e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard};
40e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard
41e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard} // End anonymous llvm
42e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard
43e30b4644b613a130318cdf240ad237b0afbc525aTom Stellard#endif //AMDGPU_ASMPRINTER_H
44