1f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard//===-- AMDGPUAsmPrinter.h - Print AMDGPU assembly code -------------------===// 2f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 3f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// The LLVM Compiler Infrastructure 4f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 5f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// This file is distributed under the University of Illinois Open Source 6f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// License. See LICENSE.TXT for details. 7f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 8f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard//===----------------------------------------------------------------------===// 9f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 10f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard/// \file 11f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard/// \brief AMDGPU Assembly printer class. 12f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 13f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard//===----------------------------------------------------------------------===// 14f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 15f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#ifndef AMDGPU_ASMPRINTER_H 16f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#define AMDGPU_ASMPRINTER_H 17f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 18f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#include "llvm/CodeGen/AsmPrinter.h" 19f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 20f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardnamespace llvm { 21f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 22f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardclass AMDGPUAsmPrinter : public AsmPrinter { 23f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 24f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardpublic: 25f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard explicit AMDGPUAsmPrinter(TargetMachine &TM, MCStreamer &Streamer) 26f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard : AsmPrinter(TM, Streamer) { } 27f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 28f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard virtual bool runOnMachineFunction(MachineFunction &MF); 29f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 30f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard virtual const char *getPassName() const { 31f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard return "AMDGPU Assembly Printer"; 32f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard } 33f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 34f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard /// \brief Emit register usage information so that the GPU driver 35f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard /// can correctly setup the GPU state. 36f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void EmitProgramInfo(MachineFunction &MF); 37f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 38f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard /// Implemented in AMDGPUMCInstLower.cpp 39f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard virtual void EmitInstruction(const MachineInstr *MI); 40f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard}; 41f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 42f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard} // End anonymous llvm 43f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 44f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#endif //AMDGPU_ASMPRINTER_H 45