|
LLVM 24.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 |
| PPCABI | TargetABI = PPC_ABI_UNKNOWN |
| The selected ABI variant. | |
| 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, | ||
| StringRef | ABIName, | ||
| const PPCTargetMachine & | TM ) |
This constructor initializes the data members to match that of the specified triple.
Definition at line 54 of file PPCSubtarget.cpp.
References CallLoweringInfo, llvm::createPPCInstructionSelector(), FrameLowering, getRegisterInfo(), getTargetLowering(), initializeSubtargetDependencies(), InstrInfo, InstSelector, Legalizer, RegBankInfo, TargetABI, TLInfo, TM, and TSInfo.
Referenced by initializeSubtargetDependencies().
|
overridedefault |
|
inline |
Definition at line 270 of file PPCSubtarget.h.
References assert(), and usesFunctionDescriptors().
Referenced by prepareDescriptorIndirectCall().
|
inline |
Definition at line 264 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 226 of file PPCSubtarget.h.
|
override |
Pipeliner customization.
Definition at line 156 of file PPCSubtarget.cpp.
References EnableMachinePipeliner.
|
override |
Scheduling customization.
Definition at line 154 of file PPCSubtarget.cpp.
|
override |
This overrides the PostRAScheduler bit in the SchedModel for each CPU.
Definition at line 163 of file PPCSubtarget.cpp.
|
inlineoverride |
Definition at line 246 of file PPCSubtarget.h.
|
override |
Definition at line 192 of file PPCSubtarget.cpp.
|
override |
Definition at line 165 of file PPCSubtarget.cpp.
|
override |
Definition at line 260 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 212 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 136 of file PPCSubtarget.h.
References CPUDirective.
|
override |
Definition at line 169 of file PPCSubtarget.cpp.
|
inline |
Definition at line 276 of file PPCSubtarget.h.
References assert(), and usesFunctionDescriptors().
Referenced by buildCallOperands(), and prepareDescriptorIndirectCall().
|
inlineoverride |
Definition at line 144 of file PPCSubtarget.h.
References FrameLowering.
Referenced by buildCallOperands(), EmitTailCallStoreFPAndRetAddr(), and needStackSlotPassParameters().
|
inline |
Definition at line 298 of file PPCSubtarget.h.
Referenced by buildCallOperands(), and prepareOutOfLineGlueCall().
|
inline |
Definition at line 310 of file PPCSubtarget.h.
References is64BitELFABI(), and isAIXABI().
|
inlineoverride |
Definition at line 147 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 140 of file PPCSubtarget.h.
References InstrItins.
|
override |
Definition at line 272 of file PPCSubtarget.cpp.
References InstSelector.
|
override |
Definition at line 268 of file PPCSubtarget.cpp.
References Legalizer.
|
inline |
Definition at line 186 of file PPCSubtarget.h.
|
inline |
Definition at line 190 of file PPCSubtarget.h.
References isAIXABI().
|
override |
Definition at line 264 of file PPCSubtarget.cpp.
References RegBankInfo.
|
inlineoverride |
Definition at line 154 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 251 of file PPCSubtarget.h.
Referenced by buildCallOperands(), CC_AIX(), convertFPToInt(), EmitTailCallStoreFPAndRetAddr(), and prepareDescriptorIndirectCall().
|
override |
Definition at line 73 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 132 of file PPCSubtarget.h.
References StackAlignment.
|
inline |
Definition at line 294 of file PPCSubtarget.h.
Referenced by buildCallOperands(), and llvm::PPCRegisterInfo::isCallerPreservedPhysReg().
|
inlineoverride |
|
inline |
Definition at line 157 of file PPCSubtarget.h.
References TM.
Referenced by computeBasePointerSaveOffset(), isUsingPCRelativeCalls(), and transformCallee().
|
inline |
Definition at line 288 of file PPCSubtarget.h.
References assert(), is64BitELFABI(), and isAIXABI().
Referenced by isEligibleToFoldADDIForFasterLocalAccesses(), and isThreadPointerAcquisitionNode().
|
inline |
Definition at line 282 of file PPCSubtarget.h.
References assert(), is64BitELFABI(), and isAIXABI().
Referenced by buildCallOperands(), llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), and prepareDescriptorIndirectCall().
|
inline |
Definition at line 204 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 46 of file PPCSubtarget.cpp.
References PPCSubtarget().
Referenced by PPCSubtarget().
|
inline |
Definition at line 221 of file PPCSubtarget.h.
References isSVR4ABI().
Referenced by buildCallOperands(), computeBasePointerSaveOffset(), llvm::PPCRegisterInfo::getReservedRegs(), and transformCallee().
|
inline |
Definition at line 220 of file PPCSubtarget.h.
References isSVR4ABI().
Referenced by buildCallOperands(), getCallOpcode(), getGPRAllocationOrderIdx(), getThreadPointerRegister(), getTOCPointerRegister(), llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), isTOCSaveRestoreRequired(), needStackSlotPassParameters(), and usesFunctionDescriptors().
|
inline |
Definition at line 210 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().
|
inline |
Returns true when the AIX extended Altivec ABI ("vec-extabi") is in effect, allowing use of the nonvolatile vector registers.
Definition at line 216 of file PPCSubtarget.h.
References llvm::PPC_ABI_AIX_EXTABI, and TargetABI.
Referenced by llvm::PPCRegisterInfo::getCalleeSavedRegs(), llvm::PPCRegisterInfo::getCallPreservedMask(), llvm::PPCRegisterInfo::getRegPressureLimit(), and llvm::PPCRegisterInfo::getReservedRegs().
| bool PPCSubtarget::isELFv2ABI | ( | ) | const |
Definition at line 252 of file PPCSubtarget.cpp.
References llvm::PPC_ABI_ELFv2, and TargetABI.
Referenced by computeLinkageSize(), computeTOCSaveOffset(), GetInitialOffset(), llvm::PPCRegisterInfo::getLargestLegalSuperClass(), 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 194 of file PPCSubtarget.cpp.
References llvm::dyn_cast(), isAIXABI(), llvm::CodeModel::Large, and TM.
|
inline |
Definition at line 179 of file PPCSubtarget.h.
References IsLittleEndian.
Referenced by emitAtomicCmpSwapSoftware(), 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 304 of file PPCSubtarget.h.
|
inline |
Definition at line 211 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 206 of file PPCSubtarget.h.
|
inline |
Definition at line 208 of file PPCSubtarget.h.
|
inline |
Definition at line 207 of file PPCSubtarget.h.
| bool PPCSubtarget::isUsingPCRelativeCalls | ( | ) | const |
Definition at line 254 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 302 of file PPCSubtarget.h.
References IsLittleEndian.
|
inline |
Definition at line 200 of file PPCSubtarget.h.
References isLittleEndian().
|
override |
Definition at line 175 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 188 of file PPCSubtarget.cpp.
|
override |
Machine Pipeliner customization.
Definition at line 160 of file PPCSubtarget.cpp.
|
inline |
True if the ABI is descriptor based.
Definition at line 258 of file PPCSubtarget.h.
References is64BitELFABI(), isAIXABI(), and isELFv2ABI().
Referenced by buildCallOperands(), descriptorEnvironmentPointerOffset(), descriptorTOCAnchorOffset(), getEnvironmentPointerRegister(), isIndirectCall(), and transformCallee().
|
inline |
Definition at line 172 of file PPCSubtarget.h.
References isAIXABI(), and llvm::report_fatal_error().
|
protected |
GlobalISel related APIs.
Definition at line 111 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 103 of file PPCSubtarget.h.
Referenced by getFrameLowering(), and PPCSubtarget().
|
protected |
Definition at line 100 of file PPCSubtarget.h.
Referenced by hasPOPCNTD().
|
protected |
Definition at line 104 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 114 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 112 of file PPCSubtarget.h.
Referenced by getLegalizerInfo(), and PPCSubtarget().
|
protected |
Definition at line 113 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 |
The selected ABI variant.
Definition at line 98 of file PPCSubtarget.h.
Referenced by isAIXExtendedAltivecABI(), isELFv2ABI(), and PPCSubtarget().
|
protected |
Definition at line 105 of file PPCSubtarget.h.
Referenced by getTargetLowering(), and PPCSubtarget().
|
protected |
Definition at line 102 of file PPCSubtarget.h.
Referenced by getCodeModel(), getTargetMachine(), isGVIndirectSymbol(), and PPCSubtarget().
|
protected |
Definition at line 108 of file PPCSubtarget.h.
Referenced by getSelectionDAGInfo(), and PPCSubtarget().