LLVM  6.0.0svn
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]
Collaboration diagram for llvm::PPCSubtarget:
Collaboration graph
[legend]

Public Types

enum  POPCNTDKind { POPCNTD_Unavailable, POPCNTD_Slow, POPCNTD_Fast }
 

Public Member Functions

 PPCSubtarget (const Triple &TT, const std::string &CPU, const std::string &FS, const PPCTargetMachine &TM)
 This constructor initializes the data members to match that of the specified triple. More...
 
void ParseSubtargetFeatures (StringRef CPU, StringRef FS)
 ParseSubtargetFeatures - Parses features string setting specified subtarget options. More...
 
unsigned 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. More...
 
unsigned getDarwinDirective () const
 getDarwinDirective - Returns the -m directive specified for the cpu. More...
 
const InstrItineraryDatagetInstrItineraryData () const override
 getInstrItins - Return the instruction itineraries based on subtarget selection. More...
 
const PPCFrameLoweringgetFrameLowering () const override
 
const PPCInstrInfogetInstrInfo () const override
 
const PPCTargetLoweringgetTargetLowering () const override
 
const SelectionDAGTargetInfogetSelectionDAGInfo () const override
 
const PPCRegisterInfogetRegisterInfo () const override
 
const PPCTargetMachinegetTargetMachine () const
 
PPCSubtargetinitializeSubtargetDependencies (StringRef CPU, StringRef FS)
 initializeSubtargetDependencies - Initializes using a CPU and feature string so that we can use initializer lists for subtarget initialization. More...
 
bool isPPC64 () const
 isPPC64 - Return true if we are generating code for 64-bit pointer mode. More...
 
bool has64BitSupport () const
 has64BitSupport - Return true if the selected CPU supports 64-bit instructions, regardless of whether we are in 32-bit or 64-bit mode. More...
 
bool useSoftFloat () const
 
bool use64BitRegs () const
 use64BitRegs - Return true if in 64-bit mode or if we should use 64-bit registers in 32-bit mode when possible. More...
 
bool useCRBits () const
 useCRBits - Return true if we should store and manipulate i1 values in the individual condition register bits. More...
 
bool hasLazyResolverStub (const GlobalValue *GV) const
 hasLazyResolverStub - Return true if accesses to the specified global have to go through a dyld lazy resolution stub. More...
 
bool isLittleEndian () const
 
bool hasFCPSGN () const
 
bool hasFSQRT () const
 
bool hasFRE () const
 
bool hasFRES () const
 
bool hasFRSQRTE () const
 
bool hasFRSQRTES () const
 
bool hasRecipPrec () const
 
bool hasSTFIWX () const
 
bool hasLFIWAX () const
 
bool hasFPRND () const
 
bool hasFPCVT () const
 
bool hasAltivec () const
 
bool hasSPE () const
 
bool hasQPX () const
 
bool hasVSX () const
 
bool hasP8Vector () const
 
bool hasP8Altivec () const
 
bool hasP8Crypto () const
 
bool hasP9Vector () const
 
bool hasP9Altivec () const
 
bool hasMFOCRF () const
 
bool hasISEL () const
 
bool hasBPERMD () const
 
bool hasExtDiv () const
 
bool hasCMPB () const
 
bool hasLDBRX () const
 
bool isBookE () const
 
bool hasOnlyMSYNC () const
 
bool isPPC4xx () const
 
bool isPPC6xx () const
 
bool isE500 () const
 
bool isFeatureMFTB () const
 
bool isDeprecatedDST () const
 
bool hasICBT () const
 
bool hasInvariantFunctionDescriptors () const
 
bool hasPartwordAtomics () const
 
bool hasDirectMove () const
 
bool isQPXStackUnaligned () const
 
unsigned getPlatformStackAlignment () const
 
unsigned getRedZoneSize () const
 
bool hasHTM () const
 
bool hasFusion () const
 
bool hasFloat128 () const
 
bool isISA3_0 () const
 
bool useLongCalls () const
 
bool needsSwapsForVSXMemOps () const
 
POPCNTDKind hasPOPCNTD () const
 
const TriplegetTargetTriple () const
 
bool isDarwin () const
 isDarwin - True if this is any darwin platform. More...
 
bool isBGQ () const
 isBGQ - True if this is a BG/Q platform. More...
 
bool isTargetELF () const
 
bool isTargetMachO () const
 
bool isTargetLinux () const
 
bool isDarwinABI () const
 
bool isSVR4ABI () const
 
bool isELFv2ABI () const
 
bool enableEarlyIfConversion () const override
 Originally, this function return hasISEL(). More...
 
bool enableMachineScheduler () const override
 
bool enablePostRAScheduler () const override
 
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
 
unsigned char classifyGlobalReference (const GlobalValue *GV) const
 classifyGlobalReference - Classify a global variable reference for the current subtarget accourding to how we should reference it. More...
 
bool isXRaySupported () const override
 

Protected Attributes

Triple TargetTriple
 TargetTriple - What processor and OS we're targeting. More...
 
unsigned 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. More...
 
InstrItineraryData InstrItins
 Selected instruction itineraries (one entry per itinerary class.) More...
 
unsigned DarwinDirective
 Which cpu directive was used. More...
 
bool HasMFOCRF
 Used by the ISel to turn in optimizations for POWER4-derived architectures. More...
 
bool Has64BitSupport
 
bool Use64BitRegs
 
bool UseCRBits
 
bool HasHardFloat
 
bool IsPPC64
 
bool HasAltivec
 
bool HasSPE
 
bool HasQPX
 
bool HasVSX
 
bool HasP8Vector
 
bool HasP8Altivec
 
bool HasP8Crypto
 
bool HasP9Vector
 
bool HasP9Altivec
 
bool HasFCPSGN
 
bool HasFSQRT
 
bool HasFRE
 
bool HasFRES
 
bool HasFRSQRTE
 
bool HasFRSQRTES
 
bool HasRecipPrec
 
bool HasSTFIWX
 
bool HasLFIWAX
 
bool HasFPRND
 
bool HasFPCVT
 
bool HasISEL
 
bool HasBPERMD
 
bool HasExtDiv
 
bool HasCMPB
 
bool HasLDBRX
 
bool IsBookE
 
bool HasOnlyMSYNC
 
bool IsE500
 
bool IsPPC4xx
 
bool IsPPC6xx
 
bool FeatureMFTB
 
bool DeprecatedDST
 
bool HasLazyResolverStubs
 
bool IsLittleEndian
 
bool HasICBT
 
bool HasInvariantFunctionDescriptors
 
bool HasPartwordAtomics
 
bool HasDirectMove
 
bool HasHTM
 
bool HasFusion
 
bool HasFloat128
 
bool IsISA3_0
 
bool UseLongCalls
 
POPCNTDKind HasPOPCNTD
 
bool IsQPXStackUnaligned
 When targeting QPX running a stock PPC64 Linux kernel where the stack alignment has not been changed, we need to keep the 16-byte alignment of the stack. More...
 
const PPCTargetMachineTM
 
PPCFrameLowering FrameLowering
 
PPCInstrInfo InstrInfo
 
PPCTargetLowering TLInfo
 
SelectionDAGTargetInfo TSInfo
 

Detailed Description

Definition at line 67 of file PPCSubtarget.h.

Member Enumeration Documentation

◆ POPCNTDKind

Enumerator
POPCNTD_Unavailable 
POPCNTD_Slow 
POPCNTD_Fast 

Definition at line 69 of file PPCSubtarget.h.

Constructor & Destructor Documentation

◆ PPCSubtarget()

PPCSubtarget::PPCSubtarget ( const Triple TT,
const std::string &  CPU,
const std::string &  FS,
const PPCTargetMachine TM 
)

Member Function Documentation

◆ classifyGlobalReference()

unsigned char PPCSubtarget::classifyGlobalReference ( const GlobalValue GV) const

classifyGlobalReference - Classify a global variable reference for the current subtarget accourding to how we should reference it.

Definition at line 224 of file PPCSubtarget.cpp.

References llvm::TargetMachine::getCodeModel(), llvm::GlobalValue::getParent(), llvm::CodeModel::Large, llvm::PPCII::MO_NLP_FLAG, llvm::PPCII::MO_PIC_FLAG, llvm::TargetMachine::shouldAssumeDSOLocal(), and TM.

Referenced by getVCmpInst().

◆ 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 310 of file PPCSubtarget.h.

◆ enableMachineScheduler()

bool PPCSubtarget::enableMachineScheduler ( ) const
override

◆ enablePostRAScheduler()

bool PPCSubtarget::enablePostRAScheduler ( ) const
override

Definition at line 190 of file PPCSubtarget.cpp.

◆ enableSubRegLiveness()

bool PPCSubtarget::enableSubRegLiveness ( ) const
override

Definition at line 219 of file PPCSubtarget.cpp.

References UseSubRegLiveness.

◆ getAntiDepBreakMode()

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

Definition at line 192 of file PPCSubtarget.cpp.

◆ getCriticalPathRCs()

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

Definition at line 196 of file PPCSubtarget.cpp.

References isPPC64().

◆ getDarwinDirective()

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

◆ getFrameLowering()

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

◆ getInstrInfo()

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

◆ getInstrItineraryData()

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

getInstrItins - Return the instruction itineraries based on subtarget selection.

Definition at line 172 of file PPCSubtarget.h.

◆ getPlatformStackAlignment()

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

Definition at line 269 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ getRedZoneSize()

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

Definition at line 278 of file PPCSubtarget.h.

Referenced by llvm::PPCFrameLowering::determineFrameLayout().

◆ getRegisterInfo()

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

◆ getSelectionDAGInfo()

const SelectionDAGTargetInfo* llvm::PPCSubtarget::getSelectionDAGInfo ( ) const
inlineoverride

Definition at line 183 of file PPCSubtarget.h.

◆ getStackAlignment()

unsigned 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 164 of file PPCSubtarget.h.

◆ getTargetLowering()

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

Definition at line 180 of file PPCSubtarget.h.

◆ getTargetMachine()

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

◆ getTargetTriple()

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

Definition at line 293 of file PPCSubtarget.h.

◆ has64BitSupport()

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

has64BitSupport - Return true if the selected CPU supports 64-bit instructions, regardless of whether we are in 32-bit or 64-bit mode.

Definition at line 206 of file PPCSubtarget.h.

Referenced by PPCSubtarget(), and llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasAltivec()

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

◆ hasBPERMD()

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

Definition at line 250 of file PPCSubtarget.h.

◆ hasCMPB()

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

Definition at line 252 of file PPCSubtarget.h.

Referenced by getVCmpInst().

◆ hasDirectMove()

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

Definition at line 266 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasExtDiv()

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

Definition at line 251 of file PPCSubtarget.h.

◆ hasFCPSGN()

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

Definition at line 228 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasFloat128()

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

Definition at line 284 of file PPCSubtarget.h.

◆ hasFPCVT()

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

Definition at line 238 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasFPRND()

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

Definition at line 237 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasFRE()

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

Definition at line 230 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasFRES()

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

Definition at line 231 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasFRSQRTE()

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

Definition at line 232 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasFRSQRTES()

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

Definition at line 233 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasFSQRT()

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

Definition at line 229 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasFusion()

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

Definition at line 283 of file PPCSubtarget.h.

◆ hasHTM()

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

Definition at line 282 of file PPCSubtarget.h.

◆ hasICBT()

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

Definition at line 261 of file PPCSubtarget.h.

◆ hasInvariantFunctionDescriptors()

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

Definition at line 262 of file PPCSubtarget.h.

Referenced by PrepareCall().

◆ hasISEL()

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

Definition at line 249 of file PPCSubtarget.h.

◆ hasLazyResolverStub()

bool PPCSubtarget::hasLazyResolverStub ( const GlobalValue GV) const

hasLazyResolverStub - Return true if accesses to the specified global have to go through a dyld lazy resolution stub.

Return true if accesses to the specified global have to go through a dyld lazy resolution stub.

This means that an extra load is required to get the address of the global.

Definition at line 153 of file PPCSubtarget.cpp.

References llvm::GlobalValue::getParent(), llvm::GlobalValue::hasCommonLinkage(), HasLazyResolverStubs, llvm::GlobalValue::isDeclarationForLinker(), llvm::TargetMachine::shouldAssumeDSOLocal(), and TM.

Referenced by getLabelAccessInfo().

◆ hasLDBRX()

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

Definition at line 253 of file PPCSubtarget.h.

◆ hasLFIWAX()

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

Definition at line 236 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ hasMFOCRF()

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

Definition at line 248 of file PPCSubtarget.h.

Referenced by stripRegisterPrefix().

◆ hasOnlyMSYNC()

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

Definition at line 255 of file PPCSubtarget.h.

◆ hasP8Altivec()

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

◆ hasP8Crypto()

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

Definition at line 245 of file PPCSubtarget.h.

◆ hasP8Vector()

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

◆ hasP9Altivec()

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

◆ hasP9Vector()

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

◆ hasPartwordAtomics()

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

Definition at line 265 of file PPCSubtarget.h.

◆ hasPOPCNTD()

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

◆ hasQPX()

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

◆ hasRecipPrec()

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

Definition at line 234 of file PPCSubtarget.h.

Referenced by getEstimateRefinementSteps().

◆ hasSPE()

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

Definition at line 240 of file PPCSubtarget.h.

◆ hasSTFIWX()

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

Definition at line 235 of file PPCSubtarget.h.

◆ hasVSX()

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

◆ initializeSubtargetDependencies()

PPCSubtarget & PPCSubtarget::initializeSubtargetDependencies ( StringRef  CPU,
StringRef  FS 
)

initializeSubtargetDependencies - Initializes using a CPU and feature string so that we can use initializer lists for subtarget initialization.

Definition at line 43 of file PPCSubtarget.cpp.

◆ isBGQ()

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

isBGQ - True if this is a BG/Q platform.

Definition at line 298 of file PPCSubtarget.h.

References llvm::Triple::BGQ, and llvm::Triple::getVendor().

◆ isBookE()

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

Definition at line 254 of file PPCSubtarget.h.

◆ isDarwin()

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

◆ isDarwinABI()

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

◆ isDeprecatedDST()

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

Definition at line 260 of file PPCSubtarget.h.

◆ isE500()

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

Definition at line 258 of file PPCSubtarget.h.

◆ isELFv2ABI()

bool PPCSubtarget::isELFv2ABI ( ) const

◆ isFeatureMFTB()

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

Definition at line 259 of file PPCSubtarget.h.

◆ isISA3_0()

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

Definition at line 285 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ isLittleEndian()

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

Definition at line 225 of file PPCSubtarget.h.

Referenced by EnsureStackAlignment(), and getVCmpInst().

◆ isPPC4xx()

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

Definition at line 256 of file PPCSubtarget.h.

◆ isPPC64()

bool PPCSubtarget::isPPC64 ( ) const

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

Definition at line 238 of file PPCSubtarget.cpp.

References llvm::PPCTargetMachine::isPPC64(), and TM.

Referenced by llvm::PPCFrameLowering::addScavengingSpillSlot(), llvm::PPCInstrInfo::analyzeBranch(), computeBasePointerSaveOffset(), computeFramePointerSaveOffset(), computeLinkageSize(), computeReturnSaveOffset(), llvm::PPC::createFastISel(), llvm::PPCFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitPrologue(), EmitTailCallStoreFPAndRetAddr(), EnsureStackAlignment(), llvm::PPCInstrInfo::FoldImmediate(), llvm::PPCTargetLowering::getByValTypeAlignment(), llvm::PPCFrameLowering::getCalleeSavedSpillSlots(), getCriticalPathRCs(), llvm::PPCTTIImpl::getIntImmCost(), llvm::PPCTargetLowering::getPICJumpTableRelocBase(), llvm::PPCTargetLowering::getPICJumpTableRelocBaseExpr(), llvm::PPCTTIImpl::getRegisterBitWidth(), getTOCEntry(), getVCmpInst(), llvm::PPCInstrInfo::insertBranch(), llvm::PPCTargetLowering::isJumpTableRelative(), needStackSlotPassParameters(), llvm::PPCInstrInfo::optimizeCompareInstr(), PeepholePPC64ZExtGather(), llvm::PPCTargetLowering::PPCTargetLowering(), llvm::PPCInstrInfo::PredicateInstruction(), PrepareCall(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegRegOnly(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), and stripRegisterPrefix().

◆ isPPC6xx()

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

Definition at line 257 of file PPCSubtarget.h.

◆ isQPXStackUnaligned()

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

Definition at line 268 of file PPCSubtarget.h.

◆ isSVR4ABI()

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

◆ isTargetELF()

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

Definition at line 300 of file PPCSubtarget.h.

References llvm::Triple::isOSBinFormatELF().

Referenced by PrepareCall().

◆ isTargetLinux()

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

Definition at line 302 of file PPCSubtarget.h.

References llvm::Triple::isOSLinux().

◆ isTargetMachO()

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

Definition at line 301 of file PPCSubtarget.h.

References llvm::Triple::isOSBinFormatMachO().

◆ isXRaySupported()

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

Definition at line 329 of file PPCSubtarget.h.

◆ needsSwapsForVSXMemOps()

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

Definition at line 287 of file PPCSubtarget.h.

◆ overrideSchedPolicy()

void PPCSubtarget::overrideSchedPolicy ( MachineSchedPolicy Policy,
unsigned  NumRegionInstrs 
) const
override

◆ ParseSubtargetFeatures()

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

ParseSubtargetFeatures - Parses features string setting specified subtarget options.

Definition of function is auto generated by tblgen.

Referenced by PPCSubtarget().

◆ use64BitRegs()

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

use64BitRegs - Return true if in 64-bit mode or if we should use 64-bit registers in 32-bit mode when possible.

This can only true if has64BitSupport() returns true.

Definition at line 213 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::PPCTargetLowering().

◆ useAA()

bool PPCSubtarget::useAA ( ) const
override

Definition at line 214 of file PPCSubtarget.cpp.

References DarwinDirective, and needsAggressiveScheduling().

◆ useCRBits()

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

useCRBits - Return true if we should store and manipulate i1 values in the individual condition register bits.

Definition at line 217 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::getSetCCResultType(), getVCmpInst(), and llvm::PPCTargetLowering::PPCTargetLowering().

◆ useLongCalls()

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

Definition at line 286 of file PPCSubtarget.h.

◆ useSoftFloat()

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

Definition at line 208 of file PPCSubtarget.h.

Referenced by llvm::PPCTargetLowering::useSoftFloat().

Member Data Documentation

◆ DarwinDirective

unsigned llvm::PPCSubtarget::DarwinDirective
protected

Which cpu directive was used.

Definition at line 87 of file PPCSubtarget.h.

Referenced by enableMachineScheduler(), overrideSchedPolicy(), PPCSubtarget(), and useAA().

◆ DeprecatedDST

bool llvm::PPCSubtarget::DeprecatedDST
protected

Definition at line 124 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ FeatureMFTB

bool llvm::PPCSubtarget::FeatureMFTB
protected

Definition at line 123 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ FrameLowering

PPCFrameLowering llvm::PPCSubtarget::FrameLowering
protected

Definition at line 145 of file PPCSubtarget.h.

◆ Has64BitSupport

bool llvm::PPCSubtarget::Has64BitSupport
protected

Definition at line 91 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasAltivec

bool llvm::PPCSubtarget::HasAltivec
protected

Definition at line 96 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasBPERMD

bool llvm::PPCSubtarget::HasBPERMD
protected

Definition at line 114 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasCMPB

bool llvm::PPCSubtarget::HasCMPB
protected

Definition at line 116 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasDirectMove

bool llvm::PPCSubtarget::HasDirectMove
protected

Definition at line 130 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasExtDiv

bool llvm::PPCSubtarget::HasExtDiv
protected

Definition at line 115 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasFCPSGN

bool llvm::PPCSubtarget::HasFCPSGN
protected

Definition at line 105 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasFloat128

bool llvm::PPCSubtarget::HasFloat128
protected

Definition at line 133 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasFPCVT

bool llvm::PPCSubtarget::HasFPCVT
protected

Definition at line 112 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasFPRND

bool llvm::PPCSubtarget::HasFPRND
protected

Definition at line 111 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasFRE

bool llvm::PPCSubtarget::HasFRE
protected

Definition at line 107 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasFRES

bool llvm::PPCSubtarget::HasFRES
protected

Definition at line 107 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasFRSQRTE

bool llvm::PPCSubtarget::HasFRSQRTE
protected

Definition at line 107 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasFRSQRTES

bool llvm::PPCSubtarget::HasFRSQRTES
protected

Definition at line 107 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasFSQRT

bool llvm::PPCSubtarget::HasFSQRT
protected

Definition at line 106 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasFusion

bool llvm::PPCSubtarget::HasFusion
protected

Definition at line 132 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasHardFloat

bool llvm::PPCSubtarget::HasHardFloat
protected

Definition at line 94 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasHTM

bool llvm::PPCSubtarget::HasHTM
protected

Definition at line 131 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasICBT

bool llvm::PPCSubtarget::HasICBT
protected

Definition at line 127 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasInvariantFunctionDescriptors

bool llvm::PPCSubtarget::HasInvariantFunctionDescriptors
protected

Definition at line 128 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasISEL

bool llvm::PPCSubtarget::HasISEL
protected

Definition at line 113 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasLazyResolverStubs

bool llvm::PPCSubtarget::HasLazyResolverStubs
protected

Definition at line 125 of file PPCSubtarget.h.

Referenced by hasLazyResolverStub(), and PPCSubtarget().

◆ HasLDBRX

bool llvm::PPCSubtarget::HasLDBRX
protected

Definition at line 117 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasLFIWAX

bool llvm::PPCSubtarget::HasLFIWAX
protected

Definition at line 110 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasMFOCRF

bool llvm::PPCSubtarget::HasMFOCRF
protected

Used by the ISel to turn in optimizations for POWER4-derived architectures.

Definition at line 90 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasOnlyMSYNC

bool llvm::PPCSubtarget::HasOnlyMSYNC
protected

Definition at line 119 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasP8Altivec

bool llvm::PPCSubtarget::HasP8Altivec
protected

Definition at line 101 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasP8Crypto

bool llvm::PPCSubtarget::HasP8Crypto
protected

Definition at line 102 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasP8Vector

bool llvm::PPCSubtarget::HasP8Vector
protected

Definition at line 100 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasP9Altivec

bool llvm::PPCSubtarget::HasP9Altivec
protected

Definition at line 104 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasP9Vector

bool llvm::PPCSubtarget::HasP9Vector
protected

Definition at line 103 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasPartwordAtomics

bool llvm::PPCSubtarget::HasPartwordAtomics
protected

Definition at line 129 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasPOPCNTD

POPCNTDKind llvm::PPCSubtarget::HasPOPCNTD
protected

Definition at line 137 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasQPX

bool llvm::PPCSubtarget::HasQPX
protected

Definition at line 98 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasRecipPrec

bool llvm::PPCSubtarget::HasRecipPrec
protected

Definition at line 108 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasSPE

bool llvm::PPCSubtarget::HasSPE
protected

Definition at line 97 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasSTFIWX

bool llvm::PPCSubtarget::HasSTFIWX
protected

Definition at line 109 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ HasVSX

bool llvm::PPCSubtarget::HasVSX
protected

Definition at line 99 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ InstrInfo

PPCInstrInfo llvm::PPCSubtarget::InstrInfo
protected

Definition at line 146 of file PPCSubtarget.h.

◆ InstrItins

InstrItineraryData llvm::PPCSubtarget::InstrItins
protected

Selected instruction itineraries (one entry per itinerary class.)

Definition at line 84 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ IsBookE

bool llvm::PPCSubtarget::IsBookE
protected

Definition at line 118 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ IsE500

bool llvm::PPCSubtarget::IsE500
protected

Definition at line 120 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ IsISA3_0

bool llvm::PPCSubtarget::IsISA3_0
protected

Definition at line 134 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ IsLittleEndian

bool llvm::PPCSubtarget::IsLittleEndian
protected

Definition at line 126 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ IsPPC4xx

bool llvm::PPCSubtarget::IsPPC4xx
protected

Definition at line 121 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ IsPPC64

bool llvm::PPCSubtarget::IsPPC64
protected

Definition at line 95 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ IsPPC6xx

bool llvm::PPCSubtarget::IsPPC6xx
protected

Definition at line 122 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ IsQPXStackUnaligned

bool llvm::PPCSubtarget::IsQPXStackUnaligned
protected

When targeting QPX running a stock PPC64 Linux kernel where the stack alignment has not been changed, we need to keep the 16-byte alignment of the stack.

Definition at line 142 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ StackAlignment

unsigned 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 81 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ TargetTriple

Triple llvm::PPCSubtarget::TargetTriple
protected

TargetTriple - What processor and OS we're targeting.

Definition at line 77 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ TLInfo

PPCTargetLowering llvm::PPCSubtarget::TLInfo
protected

Definition at line 147 of file PPCSubtarget.h.

◆ TM

const PPCTargetMachine& llvm::PPCSubtarget::TM
protected

Definition at line 144 of file PPCSubtarget.h.

Referenced by classifyGlobalReference(), hasLazyResolverStub(), isELFv2ABI(), and isPPC64().

◆ TSInfo

SelectionDAGTargetInfo llvm::PPCSubtarget::TSInfo
protected

Definition at line 148 of file PPCSubtarget.h.

◆ Use64BitRegs

bool llvm::PPCSubtarget::Use64BitRegs
protected

Definition at line 92 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ UseCRBits

bool llvm::PPCSubtarget::UseCRBits
protected

Definition at line 93 of file PPCSubtarget.h.

Referenced by PPCSubtarget().

◆ UseLongCalls

bool llvm::PPCSubtarget::UseLongCalls
protected

Definition at line 135 of file PPCSubtarget.h.

Referenced by PPCSubtarget().


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