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_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
const MCAsmInfogetMCAsmInfo () const
VariantKind getKind () 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_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 329 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(), llvm::AsmPrinter::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 153 of file MCExpr.cpp.

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

Definition at line 159 of file MCExpr.cpp.

Definition at line 317 of file MCExpr.h.

Referenced by llvm::MCExpr::EvaluateAsRelocatableImpl(), and llvm::MCExpr::print().

Definition at line 282 of file MCExpr.cpp.

Definition at line 164 of file MCExpr.cpp.

Referenced by llvm::MCExpr::print(), and llvm::PPCInstPrinter::printTLSCall().


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