LLVM  7.0.0svn
MipsTargetObjectFile.h
Go to the documentation of this file.
1 //===-- llvm/Target/MipsTargetObjectFile.h - Mips 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_MIPS_MIPSTARGETOBJECTFILE_H
11 #define LLVM_LIB_TARGET_MIPS_MIPSTARGETOBJECTFILE_H
12 
14 
15 namespace llvm {
16 class MipsTargetMachine;
18  MCSection *SmallDataSection;
19  MCSection *SmallBSSSection;
20  const MipsTargetMachine *TM;
21 
22  bool IsGlobalInSmallSection(const GlobalObject *GO, const TargetMachine &TM,
23  SectionKind Kind) const;
24  bool IsGlobalInSmallSectionImpl(const GlobalObject *GO,
25  const TargetMachine &TM) const;
26  public:
27 
28  void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
29 
30  /// Return true if this global address should be placed into small data/bss
31  /// section.
32  bool IsGlobalInSmallSection(const GlobalObject *GO,
33  const TargetMachine &TM) const;
34 
36  const TargetMachine &TM) const override;
37 
38  /// Return true if this constant should be placed into small data section.
39  bool IsConstantInSmallSection(const DataLayout &DL, const Constant *CN,
40  const TargetMachine &TM) const;
41 
43  const Constant *C,
44  unsigned &Align) const override;
45  /// Describe a TLS variable address within debug info.
46  const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const override;
47  };
48 } // end namespace llvm
49 
50 #endif
uint64_t CallInst * C
Instances of this class represent a uniqued identifier for a section in the current translation unit...
Definition: MCSection.h:39
A parsed version of the target data layout string in and methods for querying it. ...
Definition: DataLayout.h:111
constexpr char Align[]
Key for Kernel::Arg::Metadata::mAlign.
Compute iterated dominance frontiers using a linear time algorithm.
Definition: AllocatorList.h:24
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition: MCSymbol.h:42
MCSection * getSectionForConstant(const DataLayout &DL, SectionKind Kind, const Constant *C, unsigned &Align) const override
Return true if this constant should be placed into small data section.
const MCExpr * getDebugThreadLocalSymbol(const MCSymbol *Sym) const override
Describe a TLS variable address within debug info.
Base class for the full range of assembler expressions which are needed for parsing.
Definition: MCExpr.h:36
Context object for machine code objects.
Definition: MCContext.h:63
void Initialize(MCContext &Ctx, const TargetMachine &TM) override
This method must be called before any actual lowering is done.
This is an important base class in LLVM.
Definition: Constant.h:42
bool IsConstantInSmallSection(const DataLayout &DL, const Constant *CN, const TargetMachine &TM) const
Return true if this constant should be placed into small data section.
SectionKind - This is a simple POD value that classifies the properties of a section.
Definition: SectionKind.h:23
MCSection * SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const override
const unsigned Kind
Primary interface to the complete machine description for the target machine.
Definition: TargetMachine.h:59