Movatterモバイル変換


[0]ホーム

URL:


LLVM 20.0.0git
Public Types |Public Member Functions |Protected Attributes |List of all members
llvm::PPCSubtarget Class Reference

#include "Target/PowerPC/PPCSubtarget.h"

Inheritance diagram for llvm::PPCSubtarget:
Inheritance graph
[legend]

Public Types

enum  POPCNTDKind {POPCNTD_Unavailable,POPCNTD_Slow,POPCNTD_Fast }
 

Public Member Functions

 PPCSubtarget (constTriple &TT,const std::string &CPU,const std::string &TuneCPU,const std::string &FS,constPPCTargetMachine &TM)
 This constructor initializes the data members to match that of the specified triple.
 
 ~PPCSubtarget () override
 
void ParseSubtargetFeatures (StringRef CPU,StringRef TuneCPU,StringRef FS)
 ParseSubtargetFeatures - Parses features string setting specified subtarget options.
 
Align getStackAlignment ()const
 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.
 
unsigned getCPUDirective ()const
 getCPUDirective - Returns the -m directive specified for the cpu.
 
constInstrItineraryDatagetInstrItineraryData ()const override
 getInstrItins - Return the instruction itineraries based on subtarget selection.
 
constPPCFrameLoweringgetFrameLowering ()const override
 
constPPCInstrInfogetInstrInfo ()const override
 
constPPCTargetLoweringgetTargetLowering ()const override
 
constSelectionDAGTargetInfogetSelectionDAGInfo ()const override
 
constPPCRegisterInfogetRegisterInfo ()const override
 
constPPCTargetMachinegetTargetMachine ()const
 
PPCSubtargetinitializeSubtargetDependencies (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.
 
bool isPPC64 ()const
 isPPC64 - Return true if we are generating code for 64-bit pointer mode.
 
bool useSoftFloat ()const
 
bool isLittleEndian ()const
 
Align getPlatformStackAlignment ()const
 
unsigned getRedZoneSize ()const
 
bool needsSwapsForVSXMemOps ()const
 
POPCNTDKind hasPOPCNTD ()const
 
constTriplegetTargetTriple ()const
 
bool isTargetELF ()const
 
bool isTargetMachO ()const
 
bool isTargetLinux ()const
 
bool isAIXABI ()const
 
bool isSVR4ABI ()const
 
bool isELFv2ABI ()const
 
bool is64BitELFABI ()const
 
bool is32BitELFABI ()const
 
bool isUsingPCRelativeCalls ()const
 
bool enableEarlyIfConversion ()const override
 Originally, this function return hasISEL().
 
bool enableMachineScheduler ()const override
 Scheduling customization.
 
bool enableMachinePipeliner ()const override
 Pipeliner customization.
 
bool useDFAforSMS ()const override
 Machine Pipeliner customization.
 
bool enablePostRAScheduler ()const override
 This overrides the PostRAScheduler bit in the SchedModel for each CPU.
 
AntiDepBreakMode getAntiDepBreakMode ()const override
 
void getCriticalPathRCs (RegClassVector &CriticalPathRCs)const override
 
void overrideSchedPolicy (MachineSchedPolicy &Policy,unsigned NumRegionInstrs)const override
 
bool useAA ()const override
 
bool enableSubRegLiveness ()const override
 
bool enableSpillageCopyElimination ()const override
 
bool isGVIndirectSymbol (constGlobalValue *GV)const
 True if the GV will be accessed via an indirect symbol.
 
MVT getScalarIntVT ()const
 
CodeModel::Model getCodeModel (constTargetMachine &TM,constGlobalValue *GV)const
 Calculates the effective code model for argument GV.
 
bool usesFunctionDescriptors ()const
 True if the ABI is descriptor based.
 
unsigned descriptorTOCAnchorOffset ()const
 
unsigned descriptorEnvironmentPointerOffset ()const
 
MCRegister getEnvironmentPointerRegister ()const
 
MCRegister getTOCPointerRegister ()const
 
MCRegister getThreadPointerRegister ()const
 
MCRegister getStackPointerRegister ()const
 
bool isXRaySupported ()const override
 
bool isPredictableSelectIsExpensive ()const
 
unsigned getGPRAllocationOrderIdx ()const
 
constCallLoweringgetCallLowering ()const override
 
constRegisterBankInfogetRegBankInfo ()const override
 
constLegalizerInfogetLegalizerInfo ()const override
 
InstructionSelectorgetInstructionSelector ()const override
 

Protected Attributes

Triple TargetTriple
 TargetTriple - What processor and OS we're targeting.
 
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 IsPPC64
 
bool IsLittleEndian
 
POPCNTDKind HasPOPCNTD
 
constPPCTargetMachineTM
 
PPCFrameLowering FrameLowering
 
PPCInstrInfo InstrInfo
 
PPCTargetLowering TLInfo
 
std::unique_ptr<constSelectionDAGTargetInfoTSInfo
 
std::unique_ptr<CallLoweringCallLoweringInfo
 GlobalISel related APIs.
 
std::unique_ptr<LegalizerInfoLegalizer
 
std::unique_ptr<RegisterBankInfoRegBankInfo
 
std::unique_ptr<InstructionSelectorInstSelector
 

Detailed Description

Definition at line72 of filePPCSubtarget.h.

Member Enumeration Documentation

◆ POPCNTDKind

enumllvm::PPCSubtarget::POPCNTDKind
Enumerator
POPCNTD_Unavailable 
POPCNTD_Slow 
POPCNTD_Fast 

Definition at line74 of filePPCSubtarget.h.

Constructor & Destructor Documentation

◆ PPCSubtarget()

PPCSubtarget::PPCSubtarget(constTripleTT,
const std::string & CPU,
const std::string & TuneCPU,
const std::string & FS,
constPPCTargetMachineTM 
)

This constructor initializes the data members to match that of the specified triple.

Definition at line55 of filePPCSubtarget.cpp.

ReferencesCallLoweringInfo,llvm::createPPCInstructionSelector(),getRegisterInfo(),getTargetLowering(),InstSelector,RegBankInfo,TM, andTSInfo.

◆ ~PPCSubtarget()

PPCSubtarget::~PPCSubtarget()
overridedefault

Member Function Documentation

◆ descriptorEnvironmentPointerOffset()

unsigned llvm::PPCSubtarget::descriptorEnvironmentPointerOffset() const
inline

Definition at line272 of filePPCSubtarget.h.

Referencesassert(),IsPPC64, andusesFunctionDescriptors().

Referenced byprepareDescriptorIndirectCall().

◆ descriptorTOCAnchorOffset()

unsigned llvm::PPCSubtarget::descriptorTOCAnchorOffset() const
inline

Definition at line266 of filePPCSubtarget.h.

Referencesassert(),IsPPC64, andusesFunctionDescriptors().

Referenced byprepareDescriptorIndirectCall().

◆ enableEarlyIfConversion()

bool llvm::PPCSubtarget::enableEarlyIfConversion() const
inlineoverride

Originally, this function return hasISEL().

Now we always enable it, but may expand the ISEL instruction later.

Definition at line229 of filePPCSubtarget.h.

◆ enableMachinePipeliner()

bool PPCSubtarget::enableMachinePipeliner() const
override

Pipeliner customization.

Definition at line154 of filePPCSubtarget.cpp.

ReferencesEnableMachinePipeliner.

◆ enableMachineScheduler()

bool PPCSubtarget::enableMachineScheduler() const
override

Scheduling customization.

Definition at line152 of filePPCSubtarget.cpp.

Referenced byllvm::PPCTargetLowering::getSchedulingPreference(), andllvm::PPCTargetLowering::PPCTargetLowering().

◆ enablePostRAScheduler()

bool PPCSubtarget::enablePostRAScheduler() const
override

This overrides the PostRAScheduler bit in the SchedModel for each CPU.

Definition at line161 of filePPCSubtarget.cpp.

◆ enableSpillageCopyElimination()

bool llvm::PPCSubtarget::enableSpillageCopyElimination() const
inlineoverride

Definition at line248 of filePPCSubtarget.h.

◆ enableSubRegLiveness()

bool PPCSubtarget::enableSubRegLiveness() const
override

Definition at line190 of filePPCSubtarget.cpp.

◆ getAntiDepBreakMode()

PPCGenSubtargetInfo::AntiDepBreakMode PPCSubtarget::getAntiDepBreakMode() const
override

Definition at line163 of filePPCSubtarget.cpp.

◆ getCallLowering()

constCallLowering * PPCSubtarget::getCallLowering() const
override

Definition at line259 of filePPCSubtarget.cpp.

ReferencesCallLoweringInfo.

◆ getCodeModel()

CodeModel::Model PPCSubtarget::getCodeModel(constTargetMachineTM,
constGlobalValueGV 
) const

Calculates the effective code model for argument GV.

Definition at line210 of filePPCSubtarget.cpp.

Referencesassert(),llvm::GlobalAlias::getAliaseeObject(),llvm::TargetMachine::getCodeModel(),isAIXABI(),llvm::CodeModel::Large,llvm::CodeModel::Small, andTM.

Referenced bygetCodeModel().

◆ getCPUDirective()

unsigned llvm::PPCSubtarget::getCPUDirective() const
inline

getCPUDirective - Returns the -m directive specified for the cpu.

Definition at line139 of filePPCSubtarget.h.

ReferencesCPUDirective.

Referenced byllvm::PPCTTIImpl::enableAggressiveInterleaving(),llvm::PPCTTIImpl::getCacheLineSize(),llvm::PPCTTIImpl::getMaxInterleaveFactor(),llvm::PPCInstrInfo::getOperandLatency(),llvm::PPCTargetLowering::getPrefLoopAlignment(),llvm::PPCTTIImpl::getUnrollingPreferences(),llvm::PPCTTIImpl::getVPMemoryOpCost(),llvm::PPCInstrInfo::insertNoop(), andllvm::PPCTargetLowering::PPCTargetLowering().

◆ getCriticalPathRCs()

void PPCSubtarget::getCriticalPathRCs(RegClassVector & CriticalPathRCs) const
override

Definition at line167 of filePPCSubtarget.cpp.

ReferencesisPPC64().

◆ getEnvironmentPointerRegister()

MCRegister llvm::PPCSubtarget::getEnvironmentPointerRegister() const
inline

Definition at line278 of filePPCSubtarget.h.

Referencesassert(),IsPPC64, andusesFunctionDescriptors().

Referenced bybuildCallOperands(), andprepareDescriptorIndirectCall().

◆ getFrameLowering()

constPPCFrameLowering * llvm::PPCSubtarget::getFrameLowering() const
inlineoverride

Definition at line147 of filePPCSubtarget.h.

ReferencesFrameLowering.

Referenced bybuildCallOperands(),EmitTailCallStoreFPAndRetAddr(),llvm::PPCTargetLowering::getStackProbeSize(),llvm::PPCInstrInfo::isTOCSaveMI(), andneedStackSlotPassParameters().

◆ getGPRAllocationOrderIdx()

unsigned llvm::PPCSubtarget::getGPRAllocationOrderIdx() const
inline

Definition at line308 of filePPCSubtarget.h.

Referencesis64BitELFABI(), andisAIXABI().

◆ getInstrInfo()

constPPCInstrInfo * llvm::PPCSubtarget::getInstrInfo() const
inlineoverride

Definition at line150 of filePPCSubtarget.h.

ReferencesInstrInfo.

Referenced byllvm::PPCFrameLowering::eliminateCallFramePseudoInstr(),llvm::PPCRegisterInfo::eliminateFrameIndex(),llvm::PPCTargetLowering::EmitAtomicBinary(),llvm::PPCTargetLowering::emitEHSjLjLongJmp(),llvm::PPCTargetLowering::emitEHSjLjSetJmp(),llvm::PPCFrameLowering::emitEpilogue(),llvm::PPCTargetLowering::EmitInstrWithCustomInserter(),llvm::PPCTargetLowering::EmitPartwordAtomicBinary(),llvm::PPCTargetLowering::emitProbedAlloca(),llvm::PPCFrameLowering::emitPrologue(),llvm::PPCTargetLowering::getPrefLoopAlignment(),getRegisterInfo(),llvm::PPCFrameLowering::inlineStackProbe(),llvm::PPCRegisterInfo::lowerACCRestore(),llvm::PPCRegisterInfo::lowerACCSpilling(),llvm::PPCRegisterInfo::lowerCRBitRestore(),llvm::PPCRegisterInfo::lowerCRBitSpilling(),llvm::PPCRegisterInfo::lowerCRRestore(),llvm::PPCRegisterInfo::lowerCRSpilling(),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(),llvm::PPCRegisterInfo::resolveFrameIndex(),llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), andllvm::PPCFrameLowering::spillCalleeSavedRegisters().

◆ getInstrItineraryData()

constInstrItineraryData * llvm::PPCSubtarget::getInstrItineraryData() const
inlineoverride

getInstrItins - Return the instruction itineraries based on subtarget selection.

Definition at line143 of filePPCSubtarget.h.

ReferencesInstrItins.

◆ getInstructionSelector()

InstructionSelector * PPCSubtarget::getInstructionSelector() const
override

Definition at line271 of filePPCSubtarget.cpp.

ReferencesInstSelector.

◆ getLegalizerInfo()

constLegalizerInfo * PPCSubtarget::getLegalizerInfo() const
override

Definition at line267 of filePPCSubtarget.cpp.

◆ getPlatformStackAlignment()

Align llvm::PPCSubtarget::getPlatformStackAlignment() const
inline

Definition at line193 of filePPCSubtarget.h.

◆ getRedZoneSize()

unsigned llvm::PPCSubtarget::getRedZoneSize() const
inline

Definition at line197 of filePPCSubtarget.h.

ReferencesisAIXABI(), andisPPC64().

Referenced byllvm::PPCFrameLowering::determineFrameLayout(), andllvm::PPCFrameLowering::inlineStackProbe().

◆ getRegBankInfo()

constRegisterBankInfo * PPCSubtarget::getRegBankInfo() const
override

Definition at line263 of filePPCSubtarget.cpp.

ReferencesRegBankInfo.

◆ getRegisterInfo()

constPPCRegisterInfo * llvm::PPCSubtarget::getRegisterInfo() const
inlineoverride

Definition at line157 of filePPCSubtarget.h.

ReferencesgetInstrInfo(), andllvm::PPCInstrInfo::getRegisterInfo().

Referenced byllvm::PPCFrameLowering::addScavengingSpillSlot(),llvm::PPCFrameLowering::assignCalleeSavedSpillSlots(),buildCallOperands(),llvm::PPCFrameLowering::determineCalleeSaves(),llvm::PPCFrameLowering::determineFrameLayout(),llvm::PPCTargetLowering::emitEHSjLjSetJmp(),llvm::PPCFrameLowering::emitEpilogue(),llvm::PPCFrameLowering::emitPrologue(),llvm::PPCFrameLowering::inlineStackProbe(),llvm::PPCRegisterInfo::lowerCRBitSpilling(),PPCSubtarget(),llvm::PPCTargetLowering::PPCTargetLowering(),llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(),llvm::PPCFrameLowering::replaceFPWithRealFP(), andllvm::PPCFrameLowering::updateCalleeSaves().

◆ getScalarIntVT()

MVT llvm::PPCSubtarget::getScalarIntVT() const
inline

Definition at line253 of filePPCSubtarget.h.

ReferencesisPPC64().

Referenced bybuildCallOperands(),CC_AIX(),convertFPToInt(),EmitTailCallStoreFPAndRetAddr(),llvm::PPCTargetLowering::PPCTargetLowering(), andprepareDescriptorIndirectCall().

◆ getSelectionDAGInfo()

constSelectionDAGTargetInfo * PPCSubtarget::getSelectionDAGInfo() const
override

Definition at line75 of filePPCSubtarget.cpp.

ReferencesTSInfo.

◆ getStackAlignment()

Align llvm::PPCSubtarget::getStackAlignment() const
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 line135 of filePPCSubtarget.h.

ReferencesStackAlignment.

◆ getStackPointerRegister()

MCRegister llvm::PPCSubtarget::getStackPointerRegister() const
inline

Definition at line296 of filePPCSubtarget.h.

ReferencesIsPPC64.

Referenced bybuildCallOperands(), andllvm::PPCRegisterInfo::isCallerPreservedPhysReg().

◆ getTargetLowering()

constPPCTargetLowering * llvm::PPCSubtarget::getTargetLowering() const
inlineoverride

Definition at line151 of filePPCSubtarget.h.

ReferencesTLInfo.

Referenced byllvm::PPCFrameLowering::emitPrologue(),llvm::PPCFrameLowering::inlineStackProbe(), andPPCSubtarget().

◆ getTargetMachine()

constPPCTargetMachine & llvm::PPCSubtarget::getTargetMachine() const
inline

Definition at line160 of filePPCSubtarget.h.

ReferencesTM.

Referenced bycomputeBasePointerSaveOffset(),llvm::PPCInstrInfo::expandPostRAPseudo(),llvm::PPCInstrInfo::getMachineCombinerPatterns(),llvm::PPCTTIImpl::isHardwareLoopProfitable(),isUsingPCRelativeCalls(),llvm::PPCTTIImpl::shouldBuildRelLookupTables(),llvm::PPCInstrInfo::shouldReduceRegisterPressure(), andtransformCallee().

◆ getTargetTriple()

constTriple & llvm::PPCSubtarget::getTargetTriple() const
inline

Definition at line213 of filePPCSubtarget.h.

ReferencesTargetTriple.

Referenced byllvm::PPCInstrInfo::expandPostRAPseudo().

◆ getThreadPointerRegister()

MCRegister llvm::PPCSubtarget::getThreadPointerRegister() const
inline

Definition at line290 of filePPCSubtarget.h.

Referencesassert(),is64BitELFABI(),isAIXABI(), andIsPPC64.

Referenced byisEligibleToFoldADDIForFasterLocalAccesses(), andisThreadPointerAcquisitionNode().

◆ getTOCPointerRegister()

MCRegister llvm::PPCSubtarget::getTOCPointerRegister() const
inline

Definition at line284 of filePPCSubtarget.h.

Referencesassert(),is64BitELFABI(),isAIXABI(), andIsPPC64.

Referenced bybuildCallOperands(),llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), andprepareDescriptorIndirectCall().

◆ hasPOPCNTD()

POPCNTDKind llvm::PPCSubtarget::hasPOPCNTD() const
inline

Definition at line211 of filePPCSubtarget.h.

ReferencesHasPOPCNTD.

Referenced byllvm::PPCTTIImpl::getPopcntSupport(), andllvm::PPCTargetLowering::PPCTargetLowering().

◆ initializeSubtargetDependencies()

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 line47 of filePPCSubtarget.cpp.

◆ is32BitELFABI()

bool llvm::PPCSubtarget::is32BitELFABI() const
inline

Definition at line224 of filePPCSubtarget.h.

ReferencesisPPC64(), andisSVR4ABI().

Referenced bybuildCallOperands(),computeBasePointerSaveOffset(),llvm::PPCFrameLowering::getCalleeSavedSpillSlots(),llvm::PPCRegisterInfo::getReservedRegs(),llvm::PPCTargetLowering::isAccessedAsGotIndirect(),llvm::PPCTargetLowering::PPCTargetLowering(),llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(),llvm::PPCFrameLowering::restoreCalleeSavedRegisters(),llvm::PPCFrameLowering::spillCalleeSavedRegisters(), andtransformCallee().

◆ is64BitELFABI()

bool llvm::PPCSubtarget::is64BitELFABI() const
inline

Definition at line223 of filePPCSubtarget.h.

ReferencesisPPC64(), andisSVR4ABI().

Referenced bybuildCallOperands(),llvm::PPCTargetLowering::emitEHSjLjSetJmp(),llvm::PPCTargetLowering::EmitInstrWithCustomInserter(),llvm::PPCFrameLowering::getCalleeSavedSpillSlots(),getCallOpcode(),getGPRAllocationOrderIdx(),getThreadPointerRegister(),getTOCPointerRegister(),llvm::PPCRegisterInfo::isCallerPreservedPhysReg(),isTOCSaveRestoreRequired(),needStackSlotPassParameters(),llvm::PPCTargetLowering::PPCTargetLowering(), andusesFunctionDescriptors().

◆ isAIXABI()

bool llvm::PPCSubtarget::isAIXABI() const
inline

Definition at line219 of filePPCSubtarget.h.

Referencesllvm::Triple::isOSAIX(), andTargetTriple.

Referenced bybuildCallOperands(),computeCRSaveOffset(),computeLinkageSize(),computeReturnSaveOffset(),computeTOCSaveOffset(),llvm::PPCFrameLowering::determineCalleeSaves(),llvm::PPCFrameLowering::emitPrologue(),llvm::PPCRegisterInfo::getCalleeSavedRegs(),llvm::PPCFrameLowering::getCalleeSavedSpillSlots(),getCallOpcode(),llvm::PPCRegisterInfo::getCallPreservedMask(),getCodeModel(),getGPRAllocationOrderIdx(),llvm::PPCRegisterInfo::getLargestLegalSuperClass(),llvm::PPCTargetLowering::getPICJumpTableRelocBase(),llvm::PPCTargetLowering::getPICJumpTableRelocBaseExpr(),getRedZoneSize(),llvm::PPCTargetLowering::getRegForInlineAsmConstraint(),llvm::PPCRegisterInfo::getRegPressureLimit(),llvm::PPCRegisterInfo::getReservedRegs(),llvm::PPCTargetLowering::getSDagStackGuard(),getThreadPointerRegister(),getTOCPointerRegister(),llvm::PPCFrameLowering::inlineStackProbe(),llvm::PPCTargetLowering::insertSSPDeclarations(),llvm::PPCTargetLowering::isAccessedAsGotIndirect(),llvm::PPCRegisterInfo::isCallerPreservedPhysReg(),isGVIndirectSymbol(),llvm::PPCTargetLowering::isJumpTableRelative(),isSVR4ABI(),isTOCSaveRestoreRequired(),llvm::PPCTargetLowering::PPCTargetLowering(),prepareDescriptorIndirectCall(),transformCallee(),llvm::PPCFrameLowering::updateCalleeSaves(),usesFunctionDescriptors(), anduseSoftFloat().

◆ isELFv2ABI()

bool PPCSubtarget::isELFv2ABI() const

Definition at line250 of filePPCSubtarget.cpp.

Referencesllvm::PPCTargetMachine::isELFv2ABI(), andTM.

Referenced bycomputeLinkageSize(),computeTOCSaveOffset(),llvm::PPCFrameLowering::emitPrologue(),GetInitialOffset(),isIndirectCall(),isUsingPCRelativeCalls(),transformCallee(), andusesFunctionDescriptors().

◆ isGVIndirectSymbol()

bool PPCSubtarget::isGVIndirectSymbol(constGlobalValueGV) const

True if the GV will be accessed via an indirect symbol.

Definition at line192 of filePPCSubtarget.cpp.

Referencesllvm::TargetMachine::getCodeModel(),isAIXABI(),llvm::CodeModel::Large,llvm::TargetMachine::shouldAssumeDSOLocal(), andTM.

Referenced byllvm::PPCTargetLowering::isAccessedAsGotIndirect().

◆ isLittleEndian()

bool llvm::PPCSubtarget::isLittleEndian() const
inline

Definition at line186 of filePPCSubtarget.h.

ReferencesIsLittleEndian.

Referenced byllvm::PPCTargetLowering::EmitInstrWithCustomInserter(),llvm::PPCTargetLowering::EmitPartwordAtomicBinary(),llvm::PPCInstrInfo::expandPostRAPseudo(),fixupShuffleMaskForPermutedSToV(),getDataClassTest(),getSToVPermuted(),llvm::PPCTTIImpl::getVectorInstrCost(),llvm::PPCRegisterInfo::lowerACCRestore(),llvm::PPCRegisterInfo::lowerACCSpilling(),llvm::PPCRegisterInfo::lowerOctWordSpilling(),llvm::PPCRegisterInfo::lowerQuadwordRestore(),llvm::PPCRegisterInfo::lowerQuadwordSpilling(),llvm::PPCRegisterInfo::lowerWACCRestore(),llvm::PPCRegisterInfo::lowerWACCSpilling(),needsSwapsForVSXMemOps(),llvm::PPCTargetLowering::PerformDAGCombine(),llvm::PPCTargetLowering::PPCTargetLowering(), andllvm::PPCTargetLowering::shallExtractConstSplatVectorElementToStore().

◆ isPPC64()

bool PPCSubtarget::isPPC64() const

isPPC64 - Return true if we are generating code for 64-bit pointer mode.

Definition at line251 of filePPCSubtarget.cpp.

Referencesllvm::PPCTargetMachine::isPPC64(), andTM.

Referenced byllvm::PPCFrameLowering::addScavengingSpillSlot(),llvm::PPCInstrInfo::analyzeBranch(),buildCallOperands(),llvm::PPCTargetLowering::BuildSDIVPow2(),CC_AIX(),combineADDToADDZE(),computeBasePointerSaveOffset(),computeCRSaveOffset(),computeFramePointerSaveOffset(),computeLinkageSize(),computeReturnSaveOffset(),computeTOCSaveOffset(),llvm::PPC::createFastISel(),llvm::PPCFrameLowering::determineCalleeSaves(),llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(),llvm::PPCTargetLowering::emitEHSjLjSetJmp(),llvm::PPCFrameLowering::emitEpilogue(),llvm::PPCTargetLowering::EmitInstrWithCustomInserter(),llvm::PPCTargetLowering::EmitPartwordAtomicBinary(),llvm::PPCTargetLowering::emitProbedAlloca(),llvm::PPCFrameLowering::emitPrologue(),EmitTailCallStoreFPAndRetAddr(),llvm::PPCInstrInfo::expandPostRAPseudo(),llvm::PPCInstrInfo::findLoopInstr(),llvm::PPCTargetLowering::getByValTypeAlignment(),llvm::PPCFrameLowering::getCalleeSavedSpillSlots(),getCriticalPathRCs(),getDataClassTest(),llvm::PPCTargetLowering::getExceptionPointerRegister(),llvm::PPCTargetLowering::getExceptionSelectorRegister(),llvm::PPCTTIImpl::getIntImmCostInst(),llvm::PPCTargetLowering::getOptimalMemOpType(),llvm::PPCTargetLowering::getPICJumpTableRelocBase(),llvm::PPCTargetLowering::getPICJumpTableRelocBaseExpr(),getRedZoneSize(),llvm::PPCTargetLowering::getRegForInlineAsmConstraint(),llvm::PPCTTIImpl::getRegisterBitWidth(),llvm::PPCTargetLowering::getRegisterByName(),getScalarIntVT(),llvm::PPCFrameLowering::getStackThreshold(),llvm::PPCTTIImpl::hasActiveVectorLength(),llvm::PPCFrameLowering::inlineStackProbe(),llvm::PPCInstrInfo::insertBranch(),is32BitELFABI(),is64BitELFABI(),llvm::PPCInstrInfo::isBDNZ(),llvm::PPCTargetLowering::isJumpTableRelative(),llvm::PPCInstrInfo::isTOCSaveMI(),isUsingPCRelativeCalls(),llvm::PPCTargetLowering::isZExtFree(),llvm::PPCInstrInfo::materializeImmPostRA(),llvm::PPCInstrInfo::onlyFoldImmediate(),llvm::PPCInstrInfo::optimizeCmpPostRA(),llvm::PPCInstrInfo::optimizeCompareInstr(),llvm::PPCTargetLowering::PerformDAGCombine(),llvm::PPCTargetLowering::PPCTargetLowering(),llvm::PPCInstrInfo::PredicateInstruction(),prepareDescriptorIndirectCall(),llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(),llvm::PPCTargetLowering::ReplaceNodeResults(),llvm::PPCTargetLowering::SelectAddressRegImm(),llvm::PPCTargetLowering::SelectAddressRegRegOnly(),llvm::PPCTargetLowering::SelectForceXFormMode(),llvm::PPCTargetLowering::SelectOptimalAddrMode(),llvm::PPCTargetLowering::shallExtractConstSplatVectorElementToStore(),llvm::PPCTargetLowering::shouldInlineQuadwordAtomics(), andllvm::PPCInstrInfo::shouldReduceRegisterPressure().

◆ isPredictableSelectIsExpensive()

bool llvm::PPCSubtarget::isPredictableSelectIsExpensive() const
inline

Definition at line302 of filePPCSubtarget.h.

Referenced byllvm::PPCTargetLowering::PPCTargetLowering().

◆ isSVR4ABI()

bool llvm::PPCSubtarget::isSVR4ABI() const
inline

Definition at line220 of filePPCSubtarget.h.

ReferencesisAIXABI().

Referenced byllvm::PPCTargetLowering::emitEHSjLjLongJmp(),llvm::PPCFrameLowering::emitEpilogue(),llvm::PPCFrameLowering::emitPrologue(),llvm::PPCRegisterInfo::getBaseRegister(),llvm::PPCRegisterInfo::getReservedRegs(),llvm::PPCFrameLowering::inlineStackProbe(),is32BitELFABI(),is64BitELFABI(),llvm::PPCInstrInfo::isSignOrZeroExtended(),llvm::PPCInstrInfo::promoteInstr32To64ForElimEXTSW(), andllvm::PPCTargetLowering::ReplaceNodeResults().

◆ isTargetELF()

bool llvm::PPCSubtarget::isTargetELF() const
inline

Definition at line215 of filePPCSubtarget.h.

Referencesllvm::Triple::isOSBinFormatELF(), andTargetTriple.

◆ isTargetLinux()

bool llvm::PPCSubtarget::isTargetLinux() const
inline

Definition at line217 of filePPCSubtarget.h.

Referencesllvm::Triple::isOSLinux(), andTargetTriple.

Referenced byllvm::PPCInstrInfo::expandPostRAPseudo(),llvm::PPCTargetLowering::insertSSPDeclarations(), andllvm::PPCTargetLowering::useLoadStackGuardNode().

◆ isTargetMachO()

bool llvm::PPCSubtarget::isTargetMachO() const
inline

Definition at line216 of filePPCSubtarget.h.

Referencesllvm::Triple::isOSBinFormatMachO(), andTargetTriple.

◆ isUsingPCRelativeCalls()

bool PPCSubtarget::isUsingPCRelativeCalls() const

Definition at line253 of filePPCSubtarget.cpp.

Referencesllvm::TargetMachine::getCodeModel(),getTargetMachine(),isELFv2ABI(),isPPC64(), andllvm::CodeModel::Medium.

Referenced bybuildCallOperands(),callsShareTOCBase(),combineADDToMAT_PCREL_ADDR(),llvm::PPCTargetLowering::EmitInstrWithCustomInserter(),llvm::PPCRegisterInfo::getCalleeSavedRegs(),getCallOpcode(),GetSymbolRef(),isTOCSaveRestoreRequired(), andllvm::PPCTargetLowering::SelectOptimalAddrMode().

◆ isXRaySupported()

bool llvm::PPCSubtarget::isXRaySupported() const
inlineoverride

Definition at line300 of filePPCSubtarget.h.

ReferencesIsLittleEndian, andIsPPC64.

◆ needsSwapsForVSXMemOps()

bool llvm::PPCSubtarget::needsSwapsForVSXMemOps() const
inline

Definition at line207 of filePPCSubtarget.h.

ReferencesisLittleEndian().

Referenced byllvm::PPCTargetLowering::PerformDAGCombine(),llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), andllvm::PPCFrameLowering::spillCalleeSavedRegisters().

◆ overrideSchedPolicy()

void PPCSubtarget::overrideSchedPolicy(MachineSchedPolicyPolicy,
unsigned NumRegionInstrs 
) const
override

Definition at line173 of filePPCSubtarget.cpp.

Referencesllvm::MachineSchedPolicy::OnlyBottomUp, andllvm::MachineSchedPolicy::ShouldTrackPressure.

◆ ParseSubtargetFeatures()

void llvm::PPCSubtarget::ParseSubtargetFeatures(StringRef CPU,
StringRef TuneCPU,
StringRef FS 
)

ParseSubtargetFeatures - Parses features string setting specified subtarget options.

Definition of function is auto generated by tblgen.

◆ useAA()

bool PPCSubtarget::useAA() const
override

Definition at line186 of filePPCSubtarget.cpp.

◆ useDFAforSMS()

bool PPCSubtarget::useDFAforSMS() const
override

Machine Pipeliner customization.

Definition at line158 of filePPCSubtarget.cpp.

◆ usesFunctionDescriptors()

bool llvm::PPCSubtarget::usesFunctionDescriptors() const
inline

True if the ABI is descriptor based.

Definition at line260 of filePPCSubtarget.h.

Referencesis64BitELFABI(),isAIXABI(), andisELFv2ABI().

Referenced bybuildCallOperands(),descriptorEnvironmentPointerOffset(),descriptorTOCAnchorOffset(),getEnvironmentPointerRegister(),isIndirectCall(), andtransformCallee().

◆ useSoftFloat()

bool llvm::PPCSubtarget::useSoftFloat() const
inline

Definition at line179 of filePPCSubtarget.h.

ReferencesisAIXABI(), andllvm::report_fatal_error().

Referenced byllvm::PPCTargetLowering::isFMAFasterThanFMulAndFAdd(), andllvm::PPCTargetLowering::useSoftFloat().

Member Data Documentation

◆ CallLoweringInfo

std::unique_ptr<CallLowering> llvm::PPCSubtarget::CallLoweringInfo
protected

GlobalISel related APIs.

Definition at line113 of filePPCSubtarget.h.

Referenced bygetCallLowering(), andPPCSubtarget().

◆ CPUDirective

unsigned llvm::PPCSubtarget::CPUDirective
protected

Which cpu directive was used.

Definition at line97 of filePPCSubtarget.h.

Referenced bygetCPUDirective().

◆ FrameLowering

PPCFrameLowering llvm::PPCSubtarget::FrameLowering
protected

Definition at line105 of filePPCSubtarget.h.

Referenced bygetFrameLowering().

◆ HasPOPCNTD

POPCNTDKind llvm::PPCSubtarget::HasPOPCNTD
protected

Definition at line102 of filePPCSubtarget.h.

Referenced byhasPOPCNTD().

◆ InstrInfo

PPCInstrInfo llvm::PPCSubtarget::InstrInfo
protected

Definition at line106 of filePPCSubtarget.h.

Referenced bygetInstrInfo().

◆ InstrItins

InstrItineraryData llvm::PPCSubtarget::InstrItins
protected

Selected instruction itineraries (one entry per itinerary class.)

Definition at line89 of filePPCSubtarget.h.

Referenced bygetInstrItineraryData().

◆ InstSelector

std::unique_ptr<InstructionSelector> llvm::PPCSubtarget::InstSelector
protected

Definition at line116 of filePPCSubtarget.h.

Referenced bygetInstructionSelector(), andPPCSubtarget().

◆ IsLittleEndian

bool llvm::PPCSubtarget::IsLittleEndian
protected

Definition at line100 of filePPCSubtarget.h.

Referenced byisLittleEndian(), andisXRaySupported().

◆ IsPPC64

bool llvm::PPCSubtarget::IsPPC64
protected

Definition at line99 of filePPCSubtarget.h.

Referenced bydescriptorEnvironmentPointerOffset(),descriptorTOCAnchorOffset(),getEnvironmentPointerRegister(),getStackPointerRegister(),getThreadPointerRegister(),getTOCPointerRegister(), andisXRaySupported().

◆ Legalizer

std::unique_ptr<LegalizerInfo> llvm::PPCSubtarget::Legalizer
protected

Definition at line114 of filePPCSubtarget.h.

◆ RegBankInfo

std::unique_ptr<RegisterBankInfo> llvm::PPCSubtarget::RegBankInfo
protected

Definition at line115 of filePPCSubtarget.h.

Referenced bygetRegBankInfo(), andPPCSubtarget().

◆ StackAlignment

Align llvm::PPCSubtarget::StackAlignment
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 line86 of filePPCSubtarget.h.

Referenced bygetStackAlignment().

◆ TargetTriple

Triple llvm::PPCSubtarget::TargetTriple
protected

TargetTriple - What processor and OS we're targeting.

Definition at line82 of filePPCSubtarget.h.

Referenced bygetTargetTriple(),isAIXABI(),isTargetELF(),isTargetLinux(), andisTargetMachO().

◆ TLInfo

PPCTargetLowering llvm::PPCSubtarget::TLInfo
protected

Definition at line107 of filePPCSubtarget.h.

Referenced bygetTargetLowering().

◆ TM

constPPCTargetMachine& llvm::PPCSubtarget::TM
protected

Definition at line104 of filePPCSubtarget.h.

Referenced bygetCodeModel(),getTargetMachine(),isELFv2ABI(),isGVIndirectSymbol(),isPPC64(), andPPCSubtarget().

◆ TSInfo

std::unique_ptr<constSelectionDAGTargetInfo> llvm::PPCSubtarget::TSInfo
protected

Definition at line110 of filePPCSubtarget.h.

Referenced bygetSelectionDAGInfo(), andPPCSubtarget().


The documentation for this class was generated from the following files:

Generated on Sun Jul 20 2025 19:35:06 for LLVM by doxygen 1.9.6
[8]ページ先頭

©2009-2025 Movatter.jp