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