LLVM
4.0.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
llvm.src
lib
Target
Hexagon
HexagonTargetObjectFile.h
Go to the documentation of this file.
1
//===-- HexagonTargetObjectFile.h -----------------------------------------===//
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_HEXAGON_HEXAGONTARGETOBJECTFILE_H
11
#define LLVM_LIB_TARGET_HEXAGON_HEXAGONTARGETOBJECTFILE_H
12
13
#include "
llvm/CodeGen/TargetLoweringObjectFileImpl.h
"
14
#include "
llvm/MC/MCSectionELF.h
"
15
16
namespace
llvm {
17
18
class
HexagonTargetObjectFile
:
public
TargetLoweringObjectFileELF
{
19
public
:
20
void
Initialize
(
MCContext
&Ctx,
const
TargetMachine
&
TM
)
override
;
21
22
MCSection
*
SelectSectionForGlobal
(
const
GlobalObject
*GO,
SectionKind
Kind
,
23
const
TargetMachine
&TM)
const override
;
24
25
MCSection
*
getExplicitSectionGlobal
(
const
GlobalObject
*GO,
26
SectionKind
Kind,
27
const
TargetMachine
&TM)
const override
;
28
29
bool
isGlobalInSmallSection
(
const
GlobalObject
*GO,
30
const
TargetMachine
&TM)
const
;
31
32
bool
isSmallDataEnabled
()
const
;
33
34
unsigned
getSmallDataSize
()
const
;
35
36
private
:
37
MCSectionELF
*SmallDataSection;
38
MCSectionELF
*SmallBSSSection;
39
40
unsigned
getSmallestAddressableSize(
const
Type
*Ty,
const
GlobalValue
*GV,
41
const
TargetMachine
&TM)
const
;
42
43
MCSection
*selectSmallSectionForGlobal(
const
GlobalObject
*GO,
44
SectionKind
Kind,
45
const
TargetMachine
&TM)
const
;
46
};
47
48
}
// namespace llvm
49
50
#endif
llvm::MCSection
Instances of this class represent a uniqued identifier for a section in the current translation unit...
Definition:
MCSection.h:40
MCSectionELF.h
llvm::MCContext
Context object for machine code objects.
Definition:
MCContext.h:51
llvm::SystemZISD::TM
Definition:
SystemZISelLowering.h:68
llvm::HexagonTargetObjectFile::getSmallDataSize
unsigned getSmallDataSize() const
Definition:
HexagonTargetObjectFile.cpp:255
llvm::HexagonTargetObjectFile::SelectSectionForGlobal
MCSection * SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const override
Definition:
HexagonTargetObjectFile.cpp:120
llvm::Type
The instances of the Type class are immutable: once they are created, they are never changed...
Definition:
Type.h:45
llvm::HexagonTargetObjectFile
Definition:
HexagonTargetObjectFile.h:18
llvm::SectionKind
SectionKind - This is a simple POD value that classifies the properties of a section.
Definition:
SectionKind.h:23
TargetLoweringObjectFileImpl.h
llvm::GlobalValue
Definition:
GlobalValue.h:45
llvm::HexagonTargetObjectFile::Initialize
void Initialize(MCContext &Ctx, const TargetMachine &TM) override
This method must be called before any actual lowering is done.
Definition:
HexagonTargetObjectFile.cpp:105
llvm::GlobalObject
Definition:
GlobalObject.h:30
llvm::HexagonTargetObjectFile::isSmallDataEnabled
bool isSmallDataEnabled() const
Definition:
HexagonTargetObjectFile.cpp:251
llvm::MCSectionELF
This represents a section on linux, lots of unix variants and some bare metal systems.
Definition:
MCSectionELF.h:30
llvm::TargetLoweringObjectFileELF
Definition:
TargetLoweringObjectFileImpl.h:34
Kind
const unsigned Kind
Definition:
ARMAsmParser.cpp:10239
llvm::TargetMachine
Primary interface to the complete machine description for the target machine.
Definition:
Target/TargetMachine.h:56
llvm::HexagonTargetObjectFile::getExplicitSectionGlobal
MCSection * getExplicitSectionGlobal(const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const override
Targets should implement this method to assign a section to globals with an explicit section specfied...
Definition:
HexagonTargetObjectFile.cpp:151
llvm::HexagonTargetObjectFile::isGlobalInSmallSection
bool isGlobalInSmallSection(const GlobalObject *GO, const TargetMachine &TM) const
Return true if this global value should be placed into small data/bss section.
Definition:
HexagonTargetObjectFile.cpp:185
Generated on Wed Mar 8 2017 17:09:58 for LLVM by
1.8.6