LLVM 22.0.0git
|
#include "Target/PowerPC/PPCSubtarget.h"
Public Types | |
enum | POPCNTDKind { POPCNTD_Unavailable , POPCNTD_Slow , POPCNTD_Fast } |
Protected Attributes | |
Align | StackAlignment |
stackAlignment - The minimum alignment known to hold of the stack frame on entry to the function and which must be maintained by every function. | |
InstrItineraryData | InstrItins |
Selected instruction itineraries (one entry per itinerary class.) | |
unsigned | CPUDirective |
Which cpu directive was used. | |
bool | IsLittleEndian |
POPCNTDKind | HasPOPCNTD |
const PPCTargetMachine & | TM |
PPCFrameLowering | FrameLowering |
PPCInstrInfo | InstrInfo |
PPCTargetLowering | TLInfo |
std::unique_ptr< const SelectionDAGTargetInfo > | TSInfo |
std::unique_ptr< CallLowering > | CallLoweringInfo |
GlobalISel related APIs. | |
std::unique_ptr< LegalizerInfo > | Legalizer |
std::unique_ptr< RegisterBankInfo > | RegBankInfo |
std::unique_ptr< InstructionSelector > | InstSelector |
Definition at line 72 of file PPCSubtarget.h.
Enumerator | |
---|---|
POPCNTD_Unavailable | |
POPCNTD_Slow | |
POPCNTD_Fast |
Definition at line 74 of file PPCSubtarget.h.
PPCSubtarget::PPCSubtarget | ( | const Triple & | TT, |
StringRef | CPU, | ||
StringRef | TuneCPU, | ||
StringRef | FS, | ||
const PPCTargetMachine & | TM ) |
This constructor initializes the data members to match that of the specified triple.
Definition at line 55 of file PPCSubtarget.cpp.
References CallLoweringInfo, llvm::createPPCInstructionSelector(), FrameLowering, getRegisterInfo(), getTargetLowering(), initializeSubtargetDependencies(), InstrInfo, InstSelector, Legalizer, RegBankInfo, TLInfo, TM, and TSInfo.
Referenced by initializeSubtargetDependencies().
|
overridedefault |
|
inline |
Definition at line 262 of file PPCSubtarget.h.
References assert(), and usesFunctionDescriptors().
Referenced by prepareDescriptorIndirectCall().
|
inline |
Definition at line 256 of file PPCSubtarget.h.
References assert(), and usesFunctionDescriptors().
Referenced by prepareDescriptorIndirectCall().
|
inlineoverride |
Originally, this function return hasISEL().
Now we always enable it, but may expand the ISEL instruction later.
Definition at line 218 of file PPCSubtarget.h.
|
override |
Pipeliner customization.
Definition at line 151 of file PPCSubtarget.cpp.
References EnableMachinePipeliner.
|
override |
Scheduling customization.
Definition at line 149 of file PPCSubtarget.cpp.
|
override |
This overrides the PostRAScheduler bit in the SchedModel for each CPU.
Definition at line 158 of file PPCSubtarget.cpp.
|
inlineoverride |
Definition at line 238 of file PPCSubtarget.h.
|
override |
Definition at line 187 of file PPCSubtarget.cpp.
|
override |
Definition at line 160 of file PPCSubtarget.cpp.
|
override |
Definition at line 255 of file PPCSubtarget.cpp.
References CallLoweringInfo.
CodeModel::Model PPCSubtarget::getCodeModel | ( | const TargetMachine & | TM, |
const GlobalValue * | GV ) const |
Calculates the effective code model for argument GV.
Definition at line 207 of file PPCSubtarget.cpp.
References assert(), llvm::dyn_cast(), llvm::GlobalAlias::getAliaseeObject(), isAIXABI(), llvm::CodeModel::Large, llvm::CodeModel::Small, and TM.
Referenced by getCodeModel(), and getCodeModel().
|
inline |
getCPUDirective - Returns the -m directive specified for the cpu.
Definition at line 134 of file PPCSubtarget.h.
References CPUDirective.
|
override |
Definition at line 164 of file PPCSubtarget.cpp.
|
inline |
Definition at line 268 of file PPCSubtarget.h.
References assert(), and usesFunctionDescriptors().
Referenced by buildCallOperands(), and prepareDescriptorIndirectCall().
|
inlineoverride |
Definition at line 142 of file PPCSubtarget.h.
References FrameLowering.
Referenced by buildCallOperands(), EmitTailCallStoreFPAndRetAddr(), and needStackSlotPassParameters().
|
inline |
Definition at line 298 of file PPCSubtarget.h.
References is64BitELFABI(), and isAIXABI().
|
inlineoverride |
Definition at line 145 of file PPCSubtarget.h.
References InstrInfo.
Referenced by llvm::PPCRegisterInfo::eliminateFrameIndex(), getRegisterInfo(), llvm::PPCRegisterInfo::lowerACCRestore(), llvm::PPCRegisterInfo::lowerACCSpilling(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDMRRestore(), llvm::PPCRegisterInfo::lowerDMRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), llvm::PPCRegisterInfo::lowerOctWordSpilling(), llvm::PPCRegisterInfo::lowerPrepareProbedAlloca(), llvm::PPCRegisterInfo::lowerQuadwordRestore(), llvm::PPCRegisterInfo::lowerQuadwordSpilling(), llvm::PPCRegisterInfo::lowerWACCRestore(), llvm::PPCRegisterInfo::lowerWACCSpilling(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::prepareDynamicAlloca(), llvm::PPCRegisterInfo::requiresFrameIndexScavenging(), and llvm::PPCRegisterInfo::resolveFrameIndex().
|
inlineoverride |
getInstrItins - Return the instruction itineraries based on subtarget selection.
Definition at line 138 of file PPCSubtarget.h.
References InstrItins.
|
override |
Definition at line 267 of file PPCSubtarget.cpp.
References InstSelector.
|
override |
Definition at line 263 of file PPCSubtarget.cpp.
References Legalizer.
|
inline |
Definition at line 184 of file PPCSubtarget.h.
|
inline |
Definition at line 188 of file PPCSubtarget.h.
References isAIXABI().
|
override |
Definition at line 259 of file PPCSubtarget.cpp.
References RegBankInfo.
|
inlineoverride |
Definition at line 152 of file PPCSubtarget.h.
References getInstrInfo(), and llvm::PPCInstrInfo::getRegisterInfo().
Referenced by buildCallOperands(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), PPCSubtarget(), and llvm::PPCTargetLowering::PPCTargetLowering().
|
inline |
Definition at line 243 of file PPCSubtarget.h.
Referenced by buildCallOperands(), CC_AIX(), convertFPToInt(), EmitTailCallStoreFPAndRetAddr(), and prepareDescriptorIndirectCall().
|
override |
Definition at line 72 of file PPCSubtarget.cpp.
References TSInfo.
|
inline |
getStackAlignment - Returns the minimum alignment known to hold of the stack frame on entry to the function and which must be maintained by every function for this subtarget.
Definition at line 130 of file PPCSubtarget.h.
References StackAlignment.
|
inline |
Definition at line 286 of file PPCSubtarget.h.
Referenced by buildCallOperands(), and llvm::PPCRegisterInfo::isCallerPreservedPhysReg().
|
inlineoverride |
|
inline |
Definition at line 155 of file PPCSubtarget.h.
References TM.
Referenced by computeBasePointerSaveOffset(), isUsingPCRelativeCalls(), and transformCallee().
|
inline |
Definition at line 280 of file PPCSubtarget.h.
References assert(), is64BitELFABI(), and isAIXABI().
Referenced by isEligibleToFoldADDIForFasterLocalAccesses(), and isThreadPointerAcquisitionNode().
|
inline |
Definition at line 274 of file PPCSubtarget.h.
References assert(), is64BitELFABI(), and isAIXABI().
Referenced by buildCallOperands(), llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), and prepareDescriptorIndirectCall().
|
inline |
Definition at line 202 of file PPCSubtarget.h.
References HasPOPCNTD.
PPCSubtarget & PPCSubtarget::initializeSubtargetDependencies | ( | StringRef | CPU, |
StringRef | TuneCPU, | ||
StringRef | FS ) |
initializeSubtargetDependencies - Initializes using a CPU, a TuneCPU, and feature string so that we can use initializer lists for subtarget initialization.
Definition at line 47 of file PPCSubtarget.cpp.
References PPCSubtarget().
Referenced by PPCSubtarget().
|
inline |
Definition at line 213 of file PPCSubtarget.h.
References isSVR4ABI().
Referenced by buildCallOperands(), computeBasePointerSaveOffset(), llvm::PPCRegisterInfo::getReservedRegs(), and transformCallee().
|
inline |
Definition at line 212 of file PPCSubtarget.h.
References isSVR4ABI().
Referenced by buildCallOperands(), getCallOpcode(), getGPRAllocationOrderIdx(), getThreadPointerRegister(), getTOCPointerRegister(), llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), isTOCSaveRestoreRequired(), needStackSlotPassParameters(), and usesFunctionDescriptors().
|
inline |
Definition at line 208 of file PPCSubtarget.h.
Referenced by buildCallOperands(), computeCRSaveOffset(), computeLinkageSize(), computeReturnSaveOffset(), computeTOCSaveOffset(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), getCallOpcode(), llvm::PPCRegisterInfo::getCallPreservedMask(), getCodeModel(), getGPRAllocationOrderIdx(), llvm::PPCRegisterInfo::getLargestLegalSuperClass(), getRedZoneSize(), llvm::PPCRegisterInfo::getRegPressureLimit(), llvm::PPCRegisterInfo::getReservedRegs(), getThreadPointerRegister(), getTOCPointerRegister(), llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), isGVIndirectSymbol(), isSVR4ABI(), isTOCSaveRestoreRequired(), prepareDescriptorIndirectCall(), transformCallee(), usesFunctionDescriptors(), and useSoftFloat().
bool PPCSubtarget::isELFv2ABI | ( | ) | const |
Definition at line 247 of file PPCSubtarget.cpp.
References TM.
Referenced by computeLinkageSize(), computeTOCSaveOffset(), GetInitialOffset(), isIndirectCall(), isUsingPCRelativeCalls(), transformCallee(), and usesFunctionDescriptors().
bool PPCSubtarget::isGVIndirectSymbol | ( | const GlobalValue * | GV | ) | const |
True if the GV will be accessed via an indirect symbol.
Definition at line 189 of file PPCSubtarget.cpp.
References llvm::dyn_cast(), isAIXABI(), llvm::CodeModel::Large, and TM.
|
inline |
Definition at line 177 of file PPCSubtarget.h.
References IsLittleEndian.
Referenced by fixupShuffleMaskForPermutedSToV(), getDataClassTest(), getSToVPermuted(), llvm::PPCRegisterInfo::lowerACCRestore(), llvm::PPCRegisterInfo::lowerACCSpilling(), llvm::PPCRegisterInfo::lowerDMRRestore(), llvm::PPCRegisterInfo::lowerDMRSpilling(), llvm::PPCRegisterInfo::lowerOctWordSpilling(), llvm::PPCRegisterInfo::lowerQuadwordRestore(), llvm::PPCRegisterInfo::lowerQuadwordSpilling(), llvm::PPCRegisterInfo::lowerWACCRestore(), llvm::PPCRegisterInfo::lowerWACCSpilling(), and needsSwapsForVSXMemOps().
|
inline |
Definition at line 292 of file PPCSubtarget.h.
|
inline |
Definition at line 209 of file PPCSubtarget.h.
References isAIXABI().
Referenced by llvm::PPCRegisterInfo::getBaseRegister(), llvm::PPCRegisterInfo::getReservedRegs(), is32BitELFABI(), is64BitELFABI(), llvm::PPCInstrInfo::isSignOrZeroExtended(), and llvm::PPCInstrInfo::promoteInstr32To64ForElimEXTSW().
|
inline |
Definition at line 204 of file PPCSubtarget.h.
|
inline |
Definition at line 206 of file PPCSubtarget.h.
|
inline |
Definition at line 205 of file PPCSubtarget.h.
bool PPCSubtarget::isUsingPCRelativeCalls | ( | ) | const |
Definition at line 249 of file PPCSubtarget.cpp.
References llvm::TargetMachine::getCodeModel(), getTargetMachine(), isELFv2ABI(), and llvm::CodeModel::Medium.
Referenced by buildCallOperands(), callsShareTOCBase(), combineADDToMAT_PCREL_ADDR(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), getCallOpcode(), GetSymbolRef(), and isTOCSaveRestoreRequired().
|
inlineoverride |
Definition at line 290 of file PPCSubtarget.h.
References IsLittleEndian.
|
inline |
Definition at line 198 of file PPCSubtarget.h.
References isLittleEndian().
|
override |
Definition at line 170 of file PPCSubtarget.cpp.
References llvm::MachineSchedPolicy::OnlyBottomUp, and llvm::MachineSchedPolicy::ShouldTrackPressure.
ParseSubtargetFeatures - Parses features string setting specified subtarget options.
Definition of function is auto generated by tblgen.
|
override |
Definition at line 183 of file PPCSubtarget.cpp.
|
override |
Machine Pipeliner customization.
Definition at line 155 of file PPCSubtarget.cpp.
|
inline |
True if the ABI is descriptor based.
Definition at line 250 of file PPCSubtarget.h.
References is64BitELFABI(), isAIXABI(), and isELFv2ABI().
Referenced by buildCallOperands(), descriptorEnvironmentPointerOffset(), descriptorTOCAnchorOffset(), getEnvironmentPointerRegister(), isIndirectCall(), and transformCallee().
|
inline |
Definition at line 170 of file PPCSubtarget.h.
References isAIXABI(), and llvm::report_fatal_error().
|
protected |
GlobalISel related APIs.
Definition at line 109 of file PPCSubtarget.h.
Referenced by getCallLowering(), and PPCSubtarget().
|
protected |
Which cpu directive was used.
Definition at line 94 of file PPCSubtarget.h.
Referenced by getCPUDirective().
|
protected |
Definition at line 101 of file PPCSubtarget.h.
Referenced by getFrameLowering(), and PPCSubtarget().
|
protected |
Definition at line 98 of file PPCSubtarget.h.
Referenced by hasPOPCNTD().
|
protected |
Definition at line 102 of file PPCSubtarget.h.
Referenced by getInstrInfo(), and PPCSubtarget().
|
protected |
Selected instruction itineraries (one entry per itinerary class.)
Definition at line 86 of file PPCSubtarget.h.
Referenced by getInstrItineraryData().
|
protected |
Definition at line 112 of file PPCSubtarget.h.
Referenced by getInstructionSelector(), and PPCSubtarget().
|
protected |
Definition at line 96 of file PPCSubtarget.h.
Referenced by isLittleEndian(), and isXRaySupported().
|
protected |
Definition at line 110 of file PPCSubtarget.h.
Referenced by getLegalizerInfo(), and PPCSubtarget().
|
protected |
Definition at line 111 of file PPCSubtarget.h.
Referenced by getRegBankInfo(), and PPCSubtarget().
|
protected |
stackAlignment - The minimum alignment known to hold of the stack frame on entry to the function and which must be maintained by every function.
Definition at line 83 of file PPCSubtarget.h.
Referenced by getStackAlignment().
|
protected |
Definition at line 103 of file PPCSubtarget.h.
Referenced by getTargetLowering(), and PPCSubtarget().
|
protected |
Definition at line 100 of file PPCSubtarget.h.
Referenced by getCodeModel(), getTargetMachine(), isELFv2ABI(), isGVIndirectSymbol(), and PPCSubtarget().
|
protected |
Definition at line 106 of file PPCSubtarget.h.
Referenced by getSelectionDAGInfo(), and PPCSubtarget().