LLVM  3.7.0
NVPTXTargetObjectFile.h
Go to the documentation of this file.
1 //===-- NVPTXTargetObjectFile.h - NVPTX 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 #ifndef LLVM_LIB_TARGET_NVPTX_NVPTXTARGETOBJECTFILE_H
11 #define LLVM_LIB_TARGET_NVPTX_NVPTXTARGETOBJECTFILE_H
12 
13 #include "NVPTXSection.h"
15 #include <string>
16 
17 namespace llvm {
18 class GlobalVariable;
19 class Module;
20 
22 
23 public:
25  TextSection = nullptr;
26  DataSection = nullptr;
27  BSSSection = nullptr;
28  ReadOnlySection = nullptr;
29 
30  StaticCtorSection = nullptr;
31  StaticDtorSection = nullptr;
32  LSDASection = nullptr;
33  EHFrameSection = nullptr;
34  DwarfAbbrevSection = nullptr;
35  DwarfInfoSection = nullptr;
36  DwarfLineSection = nullptr;
37  DwarfFrameSection = nullptr;
38  DwarfPubTypesSection = nullptr;
39  DwarfDebugInlineSection = nullptr;
40  DwarfStrSection = nullptr;
41  DwarfLocSection = nullptr;
42  DwarfARangesSection = nullptr;
43  DwarfRangesSection = nullptr;
44  }
45 
46  virtual ~NVPTXTargetObjectFile();
47 
48  void Initialize(MCContext &ctx, const TargetMachine &TM) override {
51  DataSection =
56 
61  LSDASection =
85  }
86 
88  const Constant *C) const override {
89  return ReadOnlySection;
90  }
91 
93  Mangler &Mang,
94  const TargetMachine &TM) const override {
95  return DataSection;
96  }
97 
99  Mangler &Mang,
100  const TargetMachine &TM) const override;
101 };
102 
103 } // end namespace llvm
104 
105 #endif
Instances of this class represent a uniqued identifier for a section in the current translation unit...
Definition: MCSection.h:48
MCSection * DwarfPubTypesSection
MCSection * TextSection
Section directive for standard text.
static SectionKind getDataRel()
Definition: SectionKind.h:227
static SectionKind getBSS()
Definition: SectionKind.h:223
virtual void Initialize(MCContext &ctx, const TargetMachine &TM)
This method must be called before any actual lowering is done.
MCSection * StaticDtorSection
This section contains the static destructor pointer list.
Context object for machine code objects.
Definition: MCContext.h:48
const MCSection * DwarfDebugInlineSection
MCSection * DataSection
Section directive for standard data.
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...
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
void Initialize(MCContext &ctx, const TargetMachine &TM) override
This method must be called before any actual lowering is done.
MCSection * StaticCtorSection
This section contains the static constructor pointer list.
MCSection * DwarfAbbrevSection
MCSection * EHFrameSection
EH frame section.
MCSection * SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, Mangler &Mang, const TargetMachine &TM) const override
MCSection * getSectionForConstant(SectionKind Kind, const Constant *C) const override
Given a constant with the SectionKind, return a section that it should be placed in.
MCSection * DwarfRangesSection
static SectionKind getMetadata()
Definition: SectionKind.h:206
MCSection * DwarfARangesSection
MCSection * LSDASection
If exception handling is supported by the target, this is the section the Language Specific Data Area...
NVPTXSection - Represents a section in PTX PTX does not have sections.
Definition: NVPTXSection.h:26
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.
static SectionKind getReadOnly()
Definition: SectionKind.h:208
static SectionKind getText()
Definition: SectionKind.h:207