LLVM: lib/Target/PowerPC/PPCAsmPrinter.cpp File Reference (original) (raw)

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
Macros
#define DEBUG_TYPE "asmprinter"
#define GENBOOLCOMMENT(Prefix, V, Field)
#define GENVALUECOMMENT(PrefixAndName, V, Field)
Functions
STATISTIC (NumTOCEntries, "Number of Total TOC Entries Emitted.")
STATISTIC (NumTOCConstPool, "Number of Constant Pool TOC Entries.")
STATISTIC (NumTOCGlobalInternal, "Number of Internal Linkage Global TOC Entries.")
STATISTIC (NumTOCGlobalExternal, "Number of External Linkage Global TOC Entries.")
STATISTIC (NumTOCJumpTable, "Number of Jump Table TOC Entries.")
STATISTIC (NumTOCThreadLocal, "Number of Thread Local TOC Entries.")
STATISTIC (NumTOCBlockAddress, "Number of Block Address TOC Entries.")
STATISTIC (NumTOCEHBlock, "Number of EH Block TOC Entries.")
static void collectTOCStats (PPCAsmPrinter::TOCEntryType Type)
static CodeModel::Model getCodeModel (const PPCSubtarget &S, const TargetMachine &TM, const MachineOperand &MO)
static void setOptionalCodeModel (MCSymbolXCOFF *XSym, CodeModel::Model CM)
static MCSymbol * createMCSymbolForTlsGetAddr (MCContext &Ctx, unsigned MIOpc)
This helper function creates the TlsGetAddr/TlsGetMod MCSymbol for AIX.
static MCSymbol * getMCSymbolForTOCPseudoMO (const MachineOperand &MO, AsmPrinter &AP)
Map a machine operand for a TOC pseudo-machine instruction to its corresponding MCSymbol.
static PPCAsmPrinter::TOCEntryType getTOCEntryTypeForMO (const MachineOperand &MO)
static bool isSpecialLLVMGlobalArrayToSkip (const GlobalVariable *GV)
static bool isSpecialLLVMGlobalArrayForStaticInit (const GlobalVariable *GV)
static void tocDataChecks (unsigned PointerSize, const GlobalVariable *GV)
static unsigned mapToSinitPriority (int P)
static std::string convertToSinitPriority (int Priority)
static AsmPrinter * createPPCAsmPrinterPass (TargetMachine &tm, std::unique_ptr< MCStreamer > &&Streamer)
LLVM_EXTERNAL_VISIBILITY void LLVMInitializePowerPCAsmPrinter ()

DEBUG_TYPE

#define DEBUG_TYPE "asmprinter"

GENBOOLCOMMENT

| #define GENBOOLCOMMENT | ( | | Prefix, | | ------------------------------------------------------------------------------- | - | | ------- | | | V, | | | | | | Field | | | | | ) | | | |

Value:

CommentOS << (Prefix) << ((V) & (TracebackTable::Field##Mask) ? "+" : "-") \

GENVALUECOMMENT

| #define GENVALUECOMMENT | ( | | PrefixAndName, | | ------------------------------------------------------------------------------- | - | | -------------- | | | V, | | | | | | Field | | | | | ) | | | |

Value:

CommentOS << (PrefixAndName) << " = " \

<< static_cast<unsigned>(((V) & (TracebackTable::Field##Mask)) >> \

(TracebackTable::Field##Shift))

collectTOCStats()

static void collectTOCStats ( PPCAsmPrinter::TOCEntryType Type) static

convertToSinitPriority()

static std::string convertToSinitPriority ( int Priority) static

createMCSymbolForTlsGetAddr()

createPPCAsmPrinterPass()

getCodeModel()

Definition at line 479 of file PPCAsmPrinter.cpp.

References assert(), llvm::PPCSubtarget::getCodeModel(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getType(), and llvm::MachineOperand::MO_GlobalAddress.

Referenced by llvm::RISCVTargetLowering::getJumpTableEncoding(), llvm::X86TargetLowering::getJumpTableEncoding(), llvm::PPCTargetLowering::getPICJumpTableRelocBase(), llvm::PPCTargetLowering::getPICJumpTableRelocBaseExpr(), llvm::X86TargetLowering::getPICJumpTableRelocBaseExpr(), llvm::RISCVTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCustomJumpTableEntry(), llvm::LanaiTargetLowering::LowerJumpTable(), llvm::SparcTargetLowering::makeAddress(), and llvm::VETargetLowering::makeAddress().

getMCSymbolForTOCPseudoMO()

Map a machine operand for a TOC pseudo-machine instruction to its corresponding MCSymbol.

Definition at line 754 of file PPCAsmPrinter.cpp.

References llvm::MachineOperand::getBlockAddress(), llvm::AsmPrinter::GetBlockAddressSymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getIndex(), llvm::AsmPrinter::GetJTISymbol(), llvm::AsmPrinter::getSymbol(), llvm::MachineOperand::getType(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_GlobalAddress, and llvm::MachineOperand::MO_JumpTableIndex.

getTOCEntryTypeForMO()

Definition at line 771 of file PPCAsmPrinter.cpp.

References llvm::GlobalValue::AvailableExternallyLinkage, llvm::GlobalValue::ExternalLinkage, llvm::GlobalValue::ExternalWeakLinkage, llvm::MachineOperand::getGlobal(), llvm::GlobalValue::getLinkage(), llvm::MachineOperand::getTargetFlags(), llvm::MachineOperand::getType(), llvm::PPCInstrInfo::hasTLSFlag(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_GlobalAddress, and llvm::MachineOperand::MO_JumpTableIndex.

isSpecialLLVMGlobalArrayForStaticInit()

isSpecialLLVMGlobalArrayToSkip()

LLVMInitializePowerPCAsmPrinter()

mapToSinitPriority()

static unsigned mapToSinitPriority ( int P) static

setOptionalCodeModel()

STATISTIC() [1/8]

STATISTIC ( NumTOCBlockAddress ,
"Number of Block Address TOC Entries."
)

STATISTIC() [2/8]

STATISTIC ( NumTOCConstPool ,
"Number of Constant Pool TOC Entries."
)

STATISTIC() [3/8]

STATISTIC ( NumTOCEHBlock ,
"Number of EH Block TOC Entries."
)

STATISTIC() [4/8]

STATISTIC ( NumTOCEntries ,
"Number of Total TOC Entries Emitted."
)

STATISTIC() [5/8]

STATISTIC ( NumTOCGlobalExternal ,
"Number of External Linkage Global TOC Entries."
)

STATISTIC() [6/8]

STATISTIC ( NumTOCGlobalInternal ,
"Number of Internal Linkage Global TOC Entries."
)

STATISTIC() [7/8]

STATISTIC ( NumTOCJumpTable ,
"Number of Jump Table TOC Entries."
)

STATISTIC() [8/8]

STATISTIC ( NumTOCThreadLocal ,
"Number of Thread Local TOC Entries."
)

tocDataChecks()

EnableSSPCanaryBitInTB

cl::opt< bool > EnableSSPCanaryBitInTB("aix-ssp-tb-bit", cl::init(false), cl::desc("Enable Passing SSP Canary info in Trackback on AIX"), cl::Hidden) ( "aix-ssp-tb-bit" , cl::init(false) , cl::desc("Enable Passing SSP Canary info in Trackback on AIX") , cl::Hidden ) static