|
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 71 of file PPCSubtarget.h.
| Enumerator | |
|---|---|
| POPCNTD_Unavailable | |
| POPCNTD_Slow | |
| POPCNTD_Fast | |
Definition at line 73 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 261 of file PPCSubtarget.h.
References assert(), and usesFunctionDescriptors().
Referenced by prepareDescriptorIndirectCall().
|
inline |
Definition at line 255 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 217 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 237 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 133 of file PPCSubtarget.h.
References CPUDirective.
|
override |
Definition at line 164 of file PPCSubtarget.cpp.
|
inline |
Definition at line 267 of file PPCSubtarget.h.
References assert(), and usesFunctionDescriptors().
Referenced by buildCallOperands(), and prepareDescriptorIndirectCall().
|
inlineoverride |
Definition at line 141 of file PPCSubtarget.h.
References FrameLowering.
Referenced by buildCallOperands(), EmitTailCallStoreFPAndRetAddr(), and needStackSlotPassParameters().
|
inline |
Definition at line 297 of file PPCSubtarget.h.
References is64BitELFABI(), and isAIXABI().
|
inlineoverride |
Definition at line 144 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 137 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 183 of file PPCSubtarget.h.
|
inline |
Definition at line 187 of file PPCSubtarget.h.
References isAIXABI().
|
override |
Definition at line 259 of file PPCSubtarget.cpp.
References RegBankInfo.
|
inlineoverride |
Definition at line 151 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 242 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 129 of file PPCSubtarget.h.
References StackAlignment.
|
inline |
Definition at line 285 of file PPCSubtarget.h.
Referenced by buildCallOperands(), and llvm::PPCRegisterInfo::isCallerPreservedPhysReg().
|
inlineoverride |
|
inline |
Definition at line 154 of file PPCSubtarget.h.
References TM.
Referenced by computeBasePointerSaveOffset(), isUsingPCRelativeCalls(), and transformCallee().
|
inline |
Definition at line 279 of file PPCSubtarget.h.
References assert(), is64BitELFABI(), and isAIXABI().
Referenced by isEligibleToFoldADDIForFasterLocalAccesses(), and isThreadPointerAcquisitionNode().
|
inline |
Definition at line 273 of file PPCSubtarget.h.
References assert(), is64BitELFABI(), and isAIXABI().
Referenced by buildCallOperands(), llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), and prepareDescriptorIndirectCall().
|
inline |
Definition at line 201 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 212 of file PPCSubtarget.h.
References isSVR4ABI().
Referenced by buildCallOperands(), computeBasePointerSaveOffset(), llvm::PPCRegisterInfo::getReservedRegs(), and transformCallee().
|
inline |
Definition at line 211 of file PPCSubtarget.h.
References isSVR4ABI().
Referenced by buildCallOperands(), getCallOpcode(), getGPRAllocationOrderIdx(), getThreadPointerRegister(), getTOCPointerRegister(), llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), isTOCSaveRestoreRequired(), needStackSlotPassParameters(), and usesFunctionDescriptors().
|
inline |
Definition at line 207 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 176 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 291 of file PPCSubtarget.h.
|
inline |
Definition at line 208 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 203 of file PPCSubtarget.h.
|
inline |
Definition at line 205 of file PPCSubtarget.h.
|
inline |
Definition at line 204 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 289 of file PPCSubtarget.h.
References IsLittleEndian.
|
inline |
Definition at line 197 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 249 of file PPCSubtarget.h.
References is64BitELFABI(), isAIXABI(), and isELFv2ABI().
Referenced by buildCallOperands(), descriptorEnvironmentPointerOffset(), descriptorTOCAnchorOffset(), getEnvironmentPointerRegister(), isIndirectCall(), and transformCallee().
|
inline |
Definition at line 169 of file PPCSubtarget.h.
References isAIXABI(), and llvm::report_fatal_error().
|
protected |
GlobalISel related APIs.
Definition at line 108 of file PPCSubtarget.h.
Referenced by getCallLowering(), and PPCSubtarget().
|
protected |
Which cpu directive was used.
Definition at line 93 of file PPCSubtarget.h.
Referenced by getCPUDirective().
|
protected |
Definition at line 100 of file PPCSubtarget.h.
Referenced by getFrameLowering(), and PPCSubtarget().
|
protected |
Definition at line 97 of file PPCSubtarget.h.
Referenced by hasPOPCNTD().
|
protected |
Definition at line 101 of file PPCSubtarget.h.
Referenced by getInstrInfo(), and PPCSubtarget().
|
protected |
Selected instruction itineraries (one entry per itinerary class.)
Definition at line 85 of file PPCSubtarget.h.
Referenced by getInstrItineraryData().
|
protected |
Definition at line 111 of file PPCSubtarget.h.
Referenced by getInstructionSelector(), and PPCSubtarget().
|
protected |
Definition at line 95 of file PPCSubtarget.h.
Referenced by isLittleEndian(), and isXRaySupported().
|
protected |
Definition at line 109 of file PPCSubtarget.h.
Referenced by getLegalizerInfo(), and PPCSubtarget().
|
protected |
Definition at line 110 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 82 of file PPCSubtarget.h.
Referenced by getStackAlignment().
|
protected |
Definition at line 102 of file PPCSubtarget.h.
Referenced by getTargetLowering(), and PPCSubtarget().
|
protected |
Definition at line 99 of file PPCSubtarget.h.
Referenced by getCodeModel(), getTargetMachine(), isELFv2ABI(), isGVIndirectSymbol(), and PPCSubtarget().
|
protected |
Definition at line 105 of file PPCSubtarget.h.
Referenced by getSelectionDAGInfo(), and PPCSubtarget().