1*0b57cec5SDimitry Andric //===-------- AMDGPUELFStreamer.cpp - ELF Object Output -------------------===//
2*0b57cec5SDimitry Andric //
3*0b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*0b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*0b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*0b57cec5SDimitry Andric //
7*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
8*0b57cec5SDimitry Andric
9*0b57cec5SDimitry Andric #include "AMDGPUELFStreamer.h"
10*0b57cec5SDimitry Andric #include "llvm/MC/MCAsmBackend.h"
11*0b57cec5SDimitry Andric #include "llvm/MC/MCCodeEmitter.h"
12*0b57cec5SDimitry Andric #include "llvm/MC/MCELFStreamer.h"
13*0b57cec5SDimitry Andric #include "llvm/MC/MCObjectWriter.h"
14*0b57cec5SDimitry Andric
15*0b57cec5SDimitry Andric using namespace llvm;
16*0b57cec5SDimitry Andric
17*0b57cec5SDimitry Andric namespace {
18*0b57cec5SDimitry Andric
19*0b57cec5SDimitry Andric class AMDGPUELFStreamer : public MCELFStreamer {
20*0b57cec5SDimitry Andric public:
AMDGPUELFStreamer(const Triple & T,MCContext & Context,std::unique_ptr<MCAsmBackend> MAB,std::unique_ptr<MCObjectWriter> OW,std::unique_ptr<MCCodeEmitter> Emitter)21*0b57cec5SDimitry Andric AMDGPUELFStreamer(const Triple &T, MCContext &Context,
22*0b57cec5SDimitry Andric std::unique_ptr<MCAsmBackend> MAB,
23*0b57cec5SDimitry Andric std::unique_ptr<MCObjectWriter> OW,
24*0b57cec5SDimitry Andric std::unique_ptr<MCCodeEmitter> Emitter)
25*0b57cec5SDimitry Andric : MCELFStreamer(Context, std::move(MAB), std::move(OW),
26*0b57cec5SDimitry Andric std::move(Emitter)) {}
27*0b57cec5SDimitry Andric };
28*0b57cec5SDimitry Andric
29*0b57cec5SDimitry Andric }
30*0b57cec5SDimitry Andric
createAMDGPUELFStreamer(const Triple & T,MCContext & Context,std::unique_ptr<MCAsmBackend> MAB,std::unique_ptr<MCObjectWriter> OW,std::unique_ptr<MCCodeEmitter> Emitter,bool RelaxAll)31*0b57cec5SDimitry Andric MCELFStreamer *llvm::createAMDGPUELFStreamer(
32*0b57cec5SDimitry Andric const Triple &T, MCContext &Context, std::unique_ptr<MCAsmBackend> MAB,
33*0b57cec5SDimitry Andric std::unique_ptr<MCObjectWriter> OW, std::unique_ptr<MCCodeEmitter> Emitter,
34*0b57cec5SDimitry Andric bool RelaxAll) {
35*0b57cec5SDimitry Andric return new AMDGPUELFStreamer(T, Context, std::move(MAB), std::move(OW),
36*0b57cec5SDimitry Andric std::move(Emitter));
37*0b57cec5SDimitry Andric }
38*0b57cec5SDimitry Andric