LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Static Public Member Functions | List of all members
llvm::MCSymbolRefExpr Class Reference

#include <MCExpr.h>

Inheritance diagram for llvm::MCSymbolRefExpr:
Inheritance graph
[legend]
Collaboration diagram for llvm::MCSymbolRefExpr:
Collaboration graph
[legend]

Public Types

enum  VariantKind {
  VK_None, VK_Invalid, VK_GOT, VK_GOTOFF,
  VK_GOTPCREL, VK_GOTTPOFF, VK_INDNTPOFF, VK_NTPOFF,
  VK_GOTNTPOFF, VK_PLT, VK_TLSGD, VK_TLSLD,
  VK_TLSLDM, VK_TPOFF, VK_DTPOFF, VK_TLVP,
  VK_SECREL, VK_ARM_NONE, VK_ARM_PLT, VK_ARM_TLSGD,
  VK_ARM_GOT, VK_ARM_GOTOFF, VK_ARM_TPOFF, VK_ARM_GOTTPOFF,
  VK_ARM_TARGET1, VK_ARM_TARGET2, VK_ARM_PREL31, VK_PPC_LO,
  VK_PPC_HI, VK_PPC_HA, VK_PPC_HIGHER, VK_PPC_HIGHERA,
  VK_PPC_HIGHEST, VK_PPC_HIGHESTA, VK_PPC_GOT_LO, VK_PPC_GOT_HI,
  VK_PPC_GOT_HA, VK_PPC_TOCBASE, VK_PPC_TOC, VK_PPC_TOC_LO,
  VK_PPC_TOC_HI, VK_PPC_TOC_HA, VK_PPC_DTPMOD, VK_PPC_TPREL,
  VK_PPC_TPREL_LO, VK_PPC_TPREL_HI, VK_PPC_TPREL_HA, VK_PPC_TPREL_HIGHER,
  VK_PPC_TPREL_HIGHERA, VK_PPC_TPREL_HIGHEST, VK_PPC_TPREL_HIGHESTA, VK_PPC_DTPREL,
  VK_PPC_DTPREL_LO, VK_PPC_DTPREL_HI, VK_PPC_DTPREL_HA, VK_PPC_DTPREL_HIGHER,
  VK_PPC_DTPREL_HIGHERA, VK_PPC_DTPREL_HIGHEST, VK_PPC_DTPREL_HIGHESTA, VK_PPC_GOT_TPREL,
  VK_PPC_GOT_TPREL_LO, VK_PPC_GOT_TPREL_HI, VK_PPC_GOT_TPREL_HA, VK_PPC_GOT_DTPREL,
  VK_PPC_GOT_DTPREL_LO, VK_PPC_GOT_DTPREL_HI, VK_PPC_GOT_DTPREL_HA, VK_PPC_TLS,
  VK_PPC_GOT_TLSGD, VK_PPC_GOT_TLSGD_LO, VK_PPC_GOT_TLSGD_HI, VK_PPC_GOT_TLSGD_HA,
  VK_PPC_TLSGD, VK_PPC_GOT_TLSLD, VK_PPC_GOT_TLSLD_LO, VK_PPC_GOT_TLSLD_HI,
  VK_PPC_GOT_TLSLD_HA, VK_PPC_TLSLD, VK_Mips_GPREL, VK_Mips_GOT_CALL,
  VK_Mips_GOT16, VK_Mips_GOT, VK_Mips_ABS_HI, VK_Mips_ABS_LO,
  VK_Mips_TLSGD, VK_Mips_TLSLDM, VK_Mips_DTPREL_HI, VK_Mips_DTPREL_LO,
  VK_Mips_GOTTPREL, VK_Mips_TPREL_HI, VK_Mips_TPREL_LO, VK_Mips_GPOFF_HI,
  VK_Mips_GPOFF_LO, VK_Mips_GOT_DISP, VK_Mips_GOT_PAGE, VK_Mips_GOT_OFST,
  VK_Mips_HIGHER, VK_Mips_HIGHEST, VK_Mips_GOT_HI16, VK_Mips_GOT_LO16,
  VK_Mips_CALL_HI16, VK_Mips_CALL_LO16, VK_COFF_IMGREL32
}
 
- Public Types inherited from llvm::MCExpr
enum  ExprKind {
  Binary, Constant, SymbolRef, Unary,
  Target
}
 

Public Member Functions

Accessors
const MCSymbolgetSymbol () const
 
VariantKind getKind () const
 
- Public Member Functions inherited from llvm::MCExpr
ExprKind getKind () const
 
void print (raw_ostream &OS) const
 
void dump () const
 
bool EvaluateAsAbsolute (int64_t &Res, const MCAsmLayout &Layout, const SectionAddrMap &Addrs) const
 
bool EvaluateAsAbsolute (int64_t &Res) const
 
bool EvaluateAsAbsolute (int64_t &Res, const MCAssembler &Asm) const
 
bool EvaluateAsAbsolute (int64_t &Res, const MCAsmLayout &Layout) const
 
bool EvaluateAsRelocatable (MCValue &Res, const MCAsmLayout &Layout) const
 
const MCSectionFindAssociatedSection () const
 

Static Public Member Functions

static bool classof (const MCExpr *E)
 
Construction
static const MCSymbolRefExprCreate (const MCSymbol *Symbol, MCContext &Ctx)
 
static const MCSymbolRefExprCreate (const MCSymbol *Symbol, VariantKind Kind, MCContext &Ctx)
 
static const MCSymbolRefExprCreate (StringRef Name, VariantKind Kind, MCContext &Ctx)
 
Static Utility Functions
static StringRef getVariantKindName (VariantKind Kind)
 
static VariantKind getVariantKindForName (StringRef Name)
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::MCExpr
 MCExpr (ExprKind _Kind)
 
bool EvaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCAsmLayout *Layout, const SectionAddrMap *Addrs, bool InSet) const
 

Detailed Description

MCSymbolRefExpr - Represent a reference to a symbol from inside an expression.

A symbol reference in an expression may be a use of a label, a use of an assembler variable (defined constant), or constitute an implicit definition of the symbol as external.

Definition at line 141 of file MCExpr.h.

Member Enumeration Documentation

Enumerator
VK_None 
VK_Invalid 
VK_GOT 
VK_GOTOFF 
VK_GOTPCREL 
VK_GOTTPOFF 
VK_INDNTPOFF 
VK_NTPOFF 
VK_GOTNTPOFF 
VK_PLT 
VK_TLSGD 
VK_TLSLD 
VK_TLSLDM 
VK_TPOFF 
VK_DTPOFF 
VK_TLVP 
VK_SECREL 
VK_ARM_NONE 
VK_ARM_PLT 
VK_ARM_TLSGD 
VK_ARM_GOT 
VK_ARM_GOTOFF 
VK_ARM_TPOFF 
VK_ARM_GOTTPOFF 
VK_ARM_TARGET1 
VK_ARM_TARGET2 
VK_ARM_PREL31 
VK_PPC_LO 
VK_PPC_HI 
VK_PPC_HA 
VK_PPC_HIGHER 
VK_PPC_HIGHERA 
VK_PPC_HIGHEST 
VK_PPC_HIGHESTA 
VK_PPC_GOT_LO 
VK_PPC_GOT_HI 
VK_PPC_GOT_HA 
VK_PPC_TOCBASE 
VK_PPC_TOC 
VK_PPC_TOC_LO 
VK_PPC_TOC_HI 
VK_PPC_TOC_HA 
VK_PPC_DTPMOD 
VK_PPC_TPREL 
VK_PPC_TPREL_LO 
VK_PPC_TPREL_HI 
VK_PPC_TPREL_HA 
VK_PPC_TPREL_HIGHER 
VK_PPC_TPREL_HIGHERA 
VK_PPC_TPREL_HIGHEST 
VK_PPC_TPREL_HIGHESTA 
VK_PPC_DTPREL 
VK_PPC_DTPREL_LO 
VK_PPC_DTPREL_HI 
VK_PPC_DTPREL_HA 
VK_PPC_DTPREL_HIGHER 
VK_PPC_DTPREL_HIGHERA 
VK_PPC_DTPREL_HIGHEST 
VK_PPC_DTPREL_HIGHESTA 
VK_PPC_GOT_TPREL 
VK_PPC_GOT_TPREL_LO 
VK_PPC_GOT_TPREL_HI 
VK_PPC_GOT_TPREL_HA 
VK_PPC_GOT_DTPREL 
VK_PPC_GOT_DTPREL_LO 
VK_PPC_GOT_DTPREL_HI 
VK_PPC_GOT_DTPREL_HA 
VK_PPC_TLS 
VK_PPC_GOT_TLSGD 
VK_PPC_GOT_TLSGD_LO 
VK_PPC_GOT_TLSGD_HI 
VK_PPC_GOT_TLSGD_HA 
VK_PPC_TLSGD 
VK_PPC_GOT_TLSLD 
VK_PPC_GOT_TLSLD_LO 
VK_PPC_GOT_TLSLD_HI 
VK_PPC_GOT_TLSLD_HA 
VK_PPC_TLSLD 
VK_Mips_GPREL 
VK_Mips_GOT_CALL 
VK_Mips_GOT16 
VK_Mips_GOT 
VK_Mips_ABS_HI 
VK_Mips_ABS_LO 
VK_Mips_TLSGD 
VK_Mips_TLSLDM 
VK_Mips_DTPREL_HI 
VK_Mips_DTPREL_LO 
VK_Mips_GOTTPREL 
VK_Mips_TPREL_HI 
VK_Mips_TPREL_LO 
VK_Mips_GPOFF_HI 
VK_Mips_GPOFF_LO 
VK_Mips_GOT_DISP 
VK_Mips_GOT_PAGE 
VK_Mips_GOT_OFST 
VK_Mips_HIGHER 
VK_Mips_HIGHEST 
VK_Mips_GOT_HI16 
VK_Mips_GOT_LO16 
VK_Mips_CALL_HI16 
VK_Mips_CALL_LO16 
VK_COFF_IMGREL32 

Definition at line 143 of file MCExpr.h.

Member Function Documentation

static bool llvm::MCSymbolRefExpr::classof ( const MCExpr E)
inlinestatic

Definition at line 297 of file MCExpr.h.

References llvm::MCExpr::getKind(), and llvm::MCExpr::SymbolRef.

static const MCSymbolRefExpr* llvm::MCSymbolRefExpr::Create ( const MCSymbol Symbol,
MCContext Ctx 
)
inlinestatic

Definition at line 270 of file MCExpr.h.

References VK_None.

Referenced by llvm::MCStreamer::BuildSymbolDiff(), llvm::AsmPrinter::doFinalization(), llvm::EmitAbsDifference(), llvm::X86AsmPrinter::EmitEndOfAsmFile(), llvm::ARMAsmPrinter::EmitEndOfAsmFile(), llvm::AsmPrinter::EmitFunctionBody(), EmitGenDwarfAranges(), EmitGenDwarfInfo(), llvm::X86AsmPrinter::EmitInstruction(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::ARMAsmPrinter::EmitJump2Table(), llvm::ARMAsmPrinter::EmitJumpTable(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::AsmPrinter::EmitLabelDifference(), llvm::AsmPrinter::EmitLabelOffsetDifference(), llvm::AsmPrinter::EmitLabelPlusOffset(), llvm::SystemZAsmPrinter::EmitMachineConstantPoolValue(), llvm::ARMAsmPrinter::EmitMachineConstantPoolValue(), llvm::EmitRuntimeFunction(), llvm::EmitSymbolRefWithOfs(), llvm::MCStreamer::EmitSymbolValue(), llvm::EmitUnwindInfo(), llvm::MCObjectStreamer::EmitValueToOffset(), llvm::MCELFStreamer::EmitWeakReference(), llvm::ARMAsmPrinter::EmitXXStructor(), llvm::Win64Exception::EndFunction(), llvm::PPCMCExpr::EvaluateAsRelocatableImpl(), llvm::MCStreamer::ForceExpAbs(), llvm::DwarfUnits::getAddrPoolIndex(), llvm::TargetLoweringObjectFile::getDebugThreadLocalSymbol(), llvm::SystemZMCInstLower::getExpr(), llvm::MCAsmInfo::getExprForFDESymbol(), llvm::X86_64MCAsmInfoDarwin::getExprForPersonalitySymbol(), llvm::X86TargetLowering::getPICJumpTableRelocBaseExpr(), llvm::TargetLowering::getPICJumpTableRelocBaseExpr(), GetSymbolRef(), llvm::X86_64MachoTargetObjectFile::getTTypeGlobalReference(), llvm::ARMElfTargetObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFileELF::getTTypeGlobalReference(), llvm::TargetLoweringObjectFileMachO::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeReference(), llvm::HexagonLowerToMC(), llvm::AMDGPUMCInstLower::lower(), llvm::MSP430MCInstLower::Lower(), nvptx::LowerConstant(), lowerConstant(), llvm::X86TargetLowering::LowerCustomJumpTableEntry(), llvm::AArch64AsmPrinter::lowerOperand(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerPPCMachineInstrToMCInst(), llvm::MSP430MCInstLower::LowerSymbolOperand(), llvm::AArch64AsmPrinter::lowerSymbolOperand(), MakeStartMinusEndExpr(), llvm::MCExternalSymbolizer::tryAddingSymbolicOperand(), and llvm::MCObjectSymbolizer::tryAddingSymbolicOperand().

const MCSymbolRefExpr * MCSymbolRefExpr::Create ( const MCSymbol Symbol,
VariantKind  Kind,
MCContext Ctx 
)
static

Definition at line 158 of file MCExpr.cpp.

const MCSymbolRefExpr * MCSymbolRefExpr::Create ( StringRef  Name,
VariantKind  Kind,
MCContext Ctx 
)
static

Definition at line 164 of file MCExpr.cpp.

VariantKind llvm::MCSymbolRefExpr::getKind ( ) const
inline
const MCSymbol& llvm::MCSymbolRefExpr::getSymbol ( ) const
inline
MCSymbolRefExpr::VariantKind MCSymbolRefExpr::getVariantKindForName ( StringRef  Name)
static

Definition at line 280 of file MCExpr.cpp.

StringRef MCSymbolRefExpr::getVariantKindName ( VariantKind  Kind)
static

Definition at line 169 of file MCExpr.cpp.

Referenced by llvm::MCExpr::print().


The documentation for this class was generated from the following files: