1*10e730a2SDan Gohman //===-- WebAssemblyTargetObjectFile.h - WebAssembly Object Info -*- C++ -*-===// 2*10e730a2SDan Gohman // 3*10e730a2SDan Gohman // The LLVM Compiler Infrastructure 4*10e730a2SDan Gohman // 5*10e730a2SDan Gohman // This file is distributed under the University of Illinois Open Source 6*10e730a2SDan Gohman // License. See LICENSE.TXT for details. 7*10e730a2SDan Gohman // 8*10e730a2SDan Gohman //===----------------------------------------------------------------------===// 9*10e730a2SDan Gohman /// 10*10e730a2SDan Gohman /// \file 11*10e730a2SDan Gohman /// \brief This file declares the WebAssembly-specific subclass of 12*10e730a2SDan Gohman /// TargetLoweringObjectFile. 13*10e730a2SDan Gohman /// 14*10e730a2SDan Gohman //===----------------------------------------------------------------------===// 15*10e730a2SDan Gohman 16*10e730a2SDan Gohman #ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYTARGETOBJECTFILE_H 17*10e730a2SDan Gohman #define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYTARGETOBJECTFILE_H 18*10e730a2SDan Gohman 19*10e730a2SDan Gohman #include "llvm/Target/TargetLoweringObjectFile.h" 20*10e730a2SDan Gohman 21*10e730a2SDan Gohman namespace llvm { 22*10e730a2SDan Gohman 23*10e730a2SDan Gohman class GlobalVariable; 24*10e730a2SDan Gohman 25*10e730a2SDan Gohman class WebAssemblyTargetObjectFile final : public TargetLoweringObjectFile { 26*10e730a2SDan Gohman public: 27*10e730a2SDan Gohman WebAssemblyTargetObjectFile() { 28*10e730a2SDan Gohman TextSection = nullptr; 29*10e730a2SDan Gohman DataSection = nullptr; 30*10e730a2SDan Gohman BSSSection = nullptr; 31*10e730a2SDan Gohman ReadOnlySection = nullptr; 32*10e730a2SDan Gohman 33*10e730a2SDan Gohman StaticCtorSection = nullptr; 34*10e730a2SDan Gohman StaticDtorSection = nullptr; 35*10e730a2SDan Gohman LSDASection = nullptr; 36*10e730a2SDan Gohman EHFrameSection = nullptr; 37*10e730a2SDan Gohman DwarfAbbrevSection = nullptr; 38*10e730a2SDan Gohman DwarfInfoSection = nullptr; 39*10e730a2SDan Gohman DwarfLineSection = nullptr; 40*10e730a2SDan Gohman DwarfFrameSection = nullptr; 41*10e730a2SDan Gohman DwarfPubTypesSection = nullptr; 42*10e730a2SDan Gohman DwarfDebugInlineSection = nullptr; 43*10e730a2SDan Gohman DwarfStrSection = nullptr; 44*10e730a2SDan Gohman DwarfLocSection = nullptr; 45*10e730a2SDan Gohman DwarfARangesSection = nullptr; 46*10e730a2SDan Gohman DwarfRangesSection = nullptr; 47*10e730a2SDan Gohman } 48*10e730a2SDan Gohman 49*10e730a2SDan Gohman MCSection *getSectionForConstant(SectionKind Kind, 50*10e730a2SDan Gohman const Constant *C) const override { 51*10e730a2SDan Gohman return ReadOnlySection; 52*10e730a2SDan Gohman } 53*10e730a2SDan Gohman 54*10e730a2SDan Gohman MCSection *getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind, 55*10e730a2SDan Gohman Mangler &Mang, 56*10e730a2SDan Gohman const TargetMachine &TM) const override { 57*10e730a2SDan Gohman return DataSection; 58*10e730a2SDan Gohman } 59*10e730a2SDan Gohman 60*10e730a2SDan Gohman MCSection *SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, 61*10e730a2SDan Gohman Mangler &Mang, 62*10e730a2SDan Gohman const TargetMachine &TM) const override; 63*10e730a2SDan Gohman }; 64*10e730a2SDan Gohman 65*10e730a2SDan Gohman } // end namespace llvm 66*10e730a2SDan Gohman 67*10e730a2SDan Gohman #endif 68