Home | History | Annotate | Download | only in MCTargetDesc
      1 //===-------- AMDGPUELFStreamer.h - ELF Object Output ---------------------===//
      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 // This is a custom MCELFStreamer which allows us to insert some hooks before
     11 // emitting data into an actual object file.
     12 //
     13 //===----------------------------------------------------------------------===//
     14 
     15 #ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUELFSTREAMER_H
     16 #define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUELFSTREAMER_H
     17 
     18 #include "llvm/MC/MCELFStreamer.h"
     19 
     20 namespace llvm {
     21 class MCAsmBackend;
     22 class MCCodeEmitter;
     23 class MCContext;
     24 class MCSubtargetInfo;
     25 
     26 class AMDGPUELFStreamer : public MCELFStreamer {
     27 public:
     28   AMDGPUELFStreamer(MCContext &Context, MCAsmBackend &MAB, raw_pwrite_stream &OS,
     29                   MCCodeEmitter *Emitter)
     30       : MCELFStreamer(Context, MAB, OS, Emitter) { }
     31 
     32   virtual void InitSections(bool NoExecStac) override;
     33 };
     34 
     35 MCELFStreamer *createAMDGPUELFStreamer(MCContext &Context, MCAsmBackend &MAB,
     36                                      raw_pwrite_stream &OS,
     37                                      MCCodeEmitter *Emitter, bool RelaxAll);
     38 } // namespace llvm.
     39 
     40 #endif
     41