LLVM API Documentation

Public Types | Public Member Functions | Static Public Member Functions
llvm::MCSymbolRefExpr Class Reference

#include <MCExpr.h>

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

List of all members.

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_TLVPPAGE, VK_TLVPPAGEOFF, VK_PAGE, VK_PAGEOFF,
  VK_GOTPAGE, VK_GOTPAGEOFF, VK_SECREL, VK_WEAKREF,
  VK_ARM_NONE, VK_ARM_TARGET1, VK_ARM_TARGET2, VK_ARM_PREL31,
  VK_ARM_TLSLDO, VK_ARM_TLSCALL, VK_ARM_TLSDESC, VK_ARM_TLSDESCSEQ,
  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_PPC_LOCAL,
  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_Mips_PCREL_HI16, VK_Mips_PCREL_LO16, VK_COFF_IMGREL32
}

Public Member Functions

const MCSymbolgetSymbol () const
VariantKind getKind () const
void printVariantKind (raw_ostream &OS) const
bool hasSubsectionsViaSymbols () const

Static Public Member Functions

static StringRef getVariantKindName (VariantKind Kind)
static VariantKind getVariantKindForName (StringRef Name)
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)

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 164 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_TLVPPAGE 
VK_TLVPPAGEOFF 
VK_PAGE 
VK_PAGEOFF 
VK_GOTPAGE 
VK_GOTPAGEOFF 
VK_SECREL 
VK_WEAKREF 
VK_ARM_NONE 
VK_ARM_TARGET1 
VK_ARM_TARGET2 
VK_ARM_PREL31 
VK_ARM_TLSLDO 
VK_ARM_TLSCALL 
VK_ARM_TLSDESC 
VK_ARM_TLSDESCSEQ 
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_PPC_LOCAL 
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_Mips_PCREL_HI16 
VK_Mips_PCREL_LO16 
VK_COFF_IMGREL32 

Definition at line 166 of file MCExpr.h.


Member Function Documentation

static bool llvm::MCSymbolRefExpr::classof ( const MCExpr E) [inline, static]

Definition at line 332 of file MCExpr.h.

static const MCSymbolRefExpr* llvm::MCSymbolRefExpr::Create ( const MCSymbol Symbol,
MCContext Ctx 
) [inline, static]

Definition at line 305 of file MCExpr.h.

References VK_None.

Referenced by llvm::ConstantPool::addEntry(), llvm::DwarfCFIException::beginFunction(), buildSymbolDiff(), createPCXRelExprOp(), createSparcMCOperand(), llvm::AsmPrinter::doFinalization(), llvm::AddressPool::emit(), llvm::EmitAbsDifference(), llvm::MCWinCOFFStreamer::EmitCOFFSecRel32(), llvm::MCWinCOFFStreamer::EmitCOFFSectionIndex(), llvm::MipsTargetELFStreamer::emitDirectiveCpLoad(), llvm::MipsTargetELFStreamer::emitDirectiveCpsetup(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::AsmPrinter::EmitFunctionBody(), EmitGenDwarfAranges(), EmitGenDwarfInfo(), EmitGenDwarfRanges(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::X86AsmPrinter::EmitInstruction(), llvm::ARMAsmPrinter::EmitJump2Table(), llvm::ARMAsmPrinter::EmitJumpTable(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::EmitLabelDiff(), llvm::AsmPrinter::EmitLabelDifference(), emitLabelOffsetDifference(), llvm::AsmPrinter::EmitLabelPlusOffset(), llvm::SystemZAsmPrinter::EmitMachineConstantPoolValue(), llvm::ARMAsmPrinter::EmitMachineConstantPoolValue(), emitNonLazySymbolPointer(), llvm::EmitRuntimeFunction(), llvm::EmitSymbolRefWithOfs(), llvm::MCStreamer::EmitSymbolValue(), llvm::EmitUnwindInfo(), llvm::MCObjectStreamer::EmitValueToOffset(), llvm::MCELFStreamer::EmitWeakReference(), llvm::ARMAsmPrinter::EmitXXStructor(), forceExpAbs(), llvm::ARMElfTargetObjectFile::getDebugThreadLocalSymbol(), llvm::TargetLoweringObjectFile::getDebugThreadLocalSymbol(), llvm::SystemZMCInstLower::getExpr(), llvm::SparcELFMCAsmInfo::getExprForFDESymbol(), llvm::MCAsmInfo::getExprForFDESymbol(), llvm::AArch64MCAsmInfoDarwin::getExprForPersonalitySymbol(), llvm::SparcELFMCAsmInfo::getExprForPersonalitySymbol(), llvm::X86_64MCAsmInfoDarwin::getExprForPersonalitySymbol(), llvm::TargetLowering::getPICJumpTableRelocBaseExpr(), GetSymbolRef(), llvm::X86_64MachoTargetObjectFile::getTTypeGlobalReference(), llvm::SparcELFTargetObjectFile::getTTypeGlobalReference(), llvm::AArch64_MachoTargetObjectFile::getTTypeGlobalReference(), llvm::ARMElfTargetObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFileELF::getTTypeGlobalReference(), llvm::TargetLoweringObjectFileMachO::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeReference(), llvm::HexagonLowerToMC(), llvm::MSP430MCInstLower::Lower(), llvm::AMDGPUMCInstLower::lower(), nvptx::LowerConstant(), lowerConstant(), llvm::AArch64MCInstLower::lowerOperand(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LowerPPCMachineInstrToMCInst(), LowerSymbolOperand(), llvm::MSP430MCInstLower::LowerSymbolOperand(), llvm::AArch64MCInstLower::lowerSymbolOperandDarwin(), llvm::AArch64MCInstLower::lowerSymbolOperandELF(), MakeStartMinusEndExpr(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), and llvm::MCExternalSymbolizer::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.

Definition at line 288 of file MCExpr.cpp.

Definition at line 169 of file MCExpr.cpp.

Referenced by llvm::PPCInstPrinter::printTLSCall().

Definition at line 322 of file MCExpr.h.

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

Definition at line 451 of file MCExpr.cpp.

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


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