1//===-------- AMDGPUELFStreamer.h - ELF Object Output -----------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This is a custom MCELFStreamer which allows us to insert some hooks before 10// emitting data into an actual object file. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUELFSTREAMER_H 15#define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUELFSTREAMER_H 16 17#include <memory> 18namespace llvm { 19class MCAsmBackend; 20class MCCodeEmitter; 21class MCContext; 22class MCSubtargetInfo; 23class MCELFStreamer; 24class Triple; 25class MCObjectWriter; 26 27MCELFStreamer *createAMDGPUELFStreamer(const Triple &T, MCContext &Context, 28 std::unique_ptr<MCAsmBackend> MAB, 29 std::unique_ptr<MCObjectWriter> OW, 30 std::unique_ptr<MCCodeEmitter> Emitter, 31 bool RelaxAll); 32} // namespace llvm. 33 34#endif 35