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)
INITIALIZE_PASS (PPCLinuxAsmPrinter, "ppc-linux-asm-printer", "Linux PPC Assembly Printer", false, false) void PPCAIXAsmPrinter
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)
INITIALIZE_PASS (PPCAIXAsmPrinter, "ppc-aix-asm-printer", "AIX PPC Assembly Printer", false, false) extern "C" LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializePowerPCAsmPrinter()
Variables
static cl::opt< bool > EnableSSPCanaryBitInTB ("aix-ssp-tb-bit", cl::init(false), cl::desc("Enable Passing SSP Canary info in Trackback on AIX"), cl::Hidden)

DEBUG_TYPE

#define DEBUG_TYPE "asmprinter"

GENBOOLCOMMENT

#define GENBOOLCOMMENT ( Prefix,
V,
Field )

Value:

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

OptimizedStructLayoutField Field

GENVALUECOMMENT

#define GENVALUECOMMENT ( PrefixAndName,
V,
Field )

Value:

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

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

(TracebackTable::Field##Shift))

collectTOCStats()

void collectTOCStats ( PPCAsmPrinter::TOCEntryType Type) static

convertToSinitPriority()

std::string convertToSinitPriority ( int Priority) static

createMCSymbolForTlsGetAddr()

createPPCAsmPrinterPass()

getCodeModel()

Definition at line 481 of file PPCAsmPrinter.cpp.

References assert(), llvm::PPCSubtarget::getCodeModel(), llvm::TargetMachine::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::LanaiTargetLowering::LowerConstantPool(), 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 755 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 772 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(), Linkage, llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_GlobalAddress, and llvm::MachineOperand::MO_JumpTableIndex.

INITIALIZE_PASS() [1/2]

INITIALIZE_PASS ( PPCAIXAsmPrinter ,
"ppc-aix-asm-printer" ,
"AIX PPC Assembly Printer" ,
false ,
false )

INITIALIZE_PASS() [2/2]

INITIALIZE_PASS ( PPCLinuxAsmPrinter ,
"ppc-linux-asm-printer" ,
"Linux PPC Assembly Printer" ,
false ,
false )

isSpecialLLVMGlobalArrayForStaticInit()

isSpecialLLVMGlobalArrayToSkip()

mapToSinitPriority()

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