LLVM  3.7.0
WebAssemblyTargetObjectFile.h
Go to the documentation of this file.
1 //===-- WebAssemblyTargetObjectFile.h - WebAssembly Object Info -*- 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 /// \file
11 /// \brief This file declares the WebAssembly-specific subclass of
12 /// TargetLoweringObjectFile.
13 ///
14 //===----------------------------------------------------------------------===//
15 
16 #ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYTARGETOBJECTFILE_H
17 #define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYTARGETOBJECTFILE_H
18 
20 
21 namespace llvm {
22 
23 class GlobalVariable;
24 
26 public:
28  TextSection = nullptr;
29  DataSection = nullptr;
30  BSSSection = nullptr;
31  ReadOnlySection = nullptr;
32 
33  StaticCtorSection = nullptr;
34  StaticDtorSection = nullptr;
35  LSDASection = nullptr;
36  EHFrameSection = nullptr;
37  DwarfAbbrevSection = nullptr;
38  DwarfInfoSection = nullptr;
39  DwarfLineSection = nullptr;
40  DwarfFrameSection = nullptr;
41  DwarfPubTypesSection = nullptr;
42  DwarfDebugInlineSection = nullptr;
43  DwarfStrSection = nullptr;
44  DwarfLocSection = nullptr;
45  DwarfARangesSection = nullptr;
46  DwarfRangesSection = nullptr;
47  }
48 
50  const Constant *C) const override {
51  return ReadOnlySection;
52  }
53 
55  Mangler &Mang,
56  const TargetMachine &TM) const override {
57  return DataSection;
58  }
59 
61  Mangler &Mang,
62  const TargetMachine &TM) const override;
63 };
64 
65 } // end namespace llvm
66 
67 #endif
Instances of this class represent a uniqued identifier for a section in the current translation unit...
Definition: MCSection.h:48
MCSection * DwarfPubTypesSection
MCSection * SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, Mangler &Mang, const TargetMachine &TM) const override
MCSection * getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind, Mangler &Mang, const TargetMachine &TM) const override
Targets should implement this method to assign a section to globals with an explicit section specfied...
MCSection * TextSection
Section directive for standard text.
MCSection * StaticDtorSection
This section contains the static destructor pointer list.
const MCSection * DwarfDebugInlineSection
MCSection * DataSection
Section directive for standard data.
MCSection * getSectionForConstant(SectionKind Kind, const Constant *C) const override
Given a constant with the SectionKind, return a section that it should be placed in.
This is an important base class in LLVM.
Definition: Constant.h:41
SectionKind - This is a simple POD value that classifies the properties of a section.
Definition: SectionKind.h:28
MCSection * StaticCtorSection
This section contains the static constructor pointer list.
MCSection * DwarfAbbrevSection
MCSection * EHFrameSection
EH frame section.
MCSection * DwarfRangesSection
MCSection * DwarfARangesSection
MCSection * LSDASection
If exception handling is supported by the target, this is the section the Language Specific Data Area...
const ARM::ArchExtKind Kind
Primary interface to the complete machine description for the target machine.
MCSection * BSSSection
Section that is default initialized to zero.
MCSection * ReadOnlySection
Section that is readonly and can contain arbitrary initialized data.