Line data Source code
1 : //===-------- AMDGPUELFStreamer.h - ELF Object Output -----------*- C++ -*-===//
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 139 : class AMDGPUELFStreamer : public MCELFStreamer {
27 : public:
28 139 : AMDGPUELFStreamer(const Triple &T, MCContext &Context,
29 : std::unique_ptr<MCAsmBackend> MAB, raw_pwrite_stream &OS,
30 : std::unique_ptr<MCCodeEmitter> Emitter)
31 556 : : MCELFStreamer(Context, std::move(MAB), OS, std::move(Emitter)) {}
32 : };
33 :
34 : MCELFStreamer *createAMDGPUELFStreamer(const Triple &T, MCContext &Context,
35 : std::unique_ptr<MCAsmBackend> MAB,
36 : raw_pwrite_stream &OS,
37 : std::unique_ptr<MCCodeEmitter> Emitter,
38 : bool RelaxAll);
39 : } // namespace llvm.
40 :
41 : #endif
|