LLVM: llvm::PPCSubtarget Class Reference (original) (raw)

#include "[Target/PowerPC/PPCSubtarget.h](PPCSubtarget%5F8h%5Fsource.html)"

Public Types
enum POPCNTDKind { POPCNTD_Unavailable, POPCNTD_Slow, POPCNTD_Fast }
Public Member Functions
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.
~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.
const InstrItineraryData * getInstrItineraryData () const override
getInstrItins - Return the instruction itineraries based on subtarget selection.
const PPCFrameLowering * getFrameLowering () const override
const PPCInstrInfo * getInstrInfo () const override
const PPCTargetLowering * getTargetLowering () const override
const SelectionDAGTargetInfo * getSelectionDAGInfo () const override
const PPCRegisterInfo * getRegisterInfo () const override
const PPCTargetMachine & getTargetMachine () const
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.
bool useSoftFloat () const
bool isLittleEndian () const
Align getPlatformStackAlignment () const
unsigned getRedZoneSize () const
bool needsSwapsForVSXMemOps () const
POPCNTDKind hasPOPCNTD () 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, const SchedRegion &Region) const override
bool useAA () const override
bool enableSubRegLiveness () const override
bool enableSpillageCopyElimination () const override
bool isGVIndirectSymbol (const GlobalValue *GV) const
True if the GV will be accessed via an indirect symbol.
MVT getScalarIntVT () const
CodeModel::Model getCodeModel (const TargetMachine &TM, const GlobalValue *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
const CallLowering * getCallLowering () const override
const RegisterBankInfo * getRegBankInfo () const override
const LegalizerInfo * getLegalizerInfo () const override
InstructionSelector * getInstructionSelector () const override
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.

POPCNTDKind

Enumerator
POPCNTD_Unavailable
POPCNTD_Slow
POPCNTD_Fast

Definition at line 73 of file PPCSubtarget.h.

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().

~PPCSubtarget()

PPCSubtarget::~PPCSubtarget ( ) overridedefault

descriptorEnvironmentPointerOffset()

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

descriptorTOCAnchorOffset()

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

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 line 217 of file PPCSubtarget.h.

enableMachinePipeliner()

bool PPCSubtarget::enableMachinePipeliner ( ) const override

enableMachineScheduler()

bool PPCSubtarget::enableMachineScheduler ( ) const override

enablePostRAScheduler()

bool PPCSubtarget::enablePostRAScheduler ( ) const override

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

Definition at line 158 of file PPCSubtarget.cpp.

enableSpillageCopyElimination()

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

enableSubRegLiveness()

bool PPCSubtarget::enableSubRegLiveness ( ) const override

getAntiDepBreakMode()

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

getCallLowering()

getCodeModel()

getCPUDirective()

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

getCriticalPathRCs()

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

getEnvironmentPointerRegister()

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

getFrameLowering()

getGPRAllocationOrderIdx()

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

getInstrInfo()

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().

getInstrItineraryData()

getInstrItins - Return the instruction itineraries based on subtarget selection.

Definition at line 137 of file PPCSubtarget.h.

References InstrItins.

getInstructionSelector()

getLegalizerInfo()

getPlatformStackAlignment()

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

getRedZoneSize()

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

getRegBankInfo()

getRegisterInfo()

getScalarIntVT()

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

getSelectionDAGInfo()

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 line 129 of file PPCSubtarget.h.

References StackAlignment.

getStackPointerRegister()

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

getTargetLowering()

getTargetMachine()

getThreadPointerRegister()

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

getTOCPointerRegister()

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

hasPOPCNTD()

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

initializeSubtargetDependencies()

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().

is32BitELFABI()

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

is64BitELFABI()

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

isAIXABI()

bool llvm::PPCSubtarget::isAIXABI ( ) const 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().

isELFv2ABI()

bool PPCSubtarget::isELFv2ABI ( ) const

isGVIndirectSymbol()

isLittleEndian()

bool llvm::PPCSubtarget::isLittleEndian ( ) const 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().

isPredictableSelectIsExpensive()

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

isSVR4ABI()

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

isTargetELF()

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

isTargetLinux()

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

isTargetMachO()

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

isUsingPCRelativeCalls()

bool PPCSubtarget::isUsingPCRelativeCalls ( ) const

isXRaySupported()

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

needsSwapsForVSXMemOps()

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

overrideSchedPolicy()

ParseSubtargetFeatures()

ParseSubtargetFeatures - Parses features string setting specified subtarget options.

Definition of function is auto generated by tblgen.

useAA()

bool PPCSubtarget::useAA ( ) const override

useDFAforSMS()

bool PPCSubtarget::useDFAforSMS ( ) const override

usesFunctionDescriptors()

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

useSoftFloat()

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

CallLoweringInfo

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

CPUDirective

unsigned llvm::PPCSubtarget::CPUDirective protected

FrameLowering

HasPOPCNTD

POPCNTDKind llvm::PPCSubtarget::HasPOPCNTD protected

InstrInfo

InstrItins

InstSelector

IsLittleEndian

bool llvm::PPCSubtarget::IsLittleEndian protected

Legalizer

RegBankInfo

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 line 82 of file PPCSubtarget.h.

Referenced by getStackAlignment().

TLInfo

TM

TSInfo


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