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