14 #ifndef LLVM_LIB_TARGET_POWERPC_PPCSUBTARGET_H
15 #define LLVM_LIB_TARGET_POWERPC_PPCSUBTARGET_H
27 #define GET_SUBTARGETINFO_HEADER
28 #include "PPCGenSubtargetInfo.inc"
196 void initializeEnvironment();
311 unsigned NumRegionInstrs)
const override;
312 bool useAA()
const override;
void overrideSchedPolicy(MachineSchedPolicy &Policy, unsigned NumRegionInstrs) const override
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.
bool use64BitRegs() const
use64BitRegs - Return true if in 64-bit mode or if we should use 64-bit registers in 32-bit mode when...
bool enableEarlyIfConversion() const override
bool isOSBinFormatMachO() const
Tests whether the environment is MachO.
const SelectionDAGTargetInfo * getSelectionDAGInfo() const override
bool isTargetMachO() const
bool isLittleEndian() const
const PPCTargetMachine & getTargetMachine() const
unsigned getStackAlignment() const
getStackAlignment - Returns the minimum alignment known to hold of the stack frame on entry to the fu...
bool IsQPXStackUnaligned
When targeting QPX running a stock PPC64 Linux kernel where the stack alignment has not been changed...
bool useAA() const override
bool isQPXStackUnaligned() const
bool hasLazyResolverStub(const GlobalValue *GV) const
hasLazyResolverStub - Return true if accesses to the specified global have to go through a dyld lazy ...
unsigned StackAlignment
stackAlignment - The minimum alignment known to hold of the stack frame on entry to the function and ...
bool hasP9Altivec() const
bool isDarwin() const
isDarwin - True if this is any darwin platform.
bool isMacOSX() const
isMacOSX - Is this a Mac OS X triple.
SelectionDAGTargetInfo TSInfo
unsigned getPlatformStackAlignment() const
unsigned DarwinDirective
Which cpu directive was used.
bool isOSLinux() const
Tests whether the OS is Linux.
bool isBGQ() const
isBGQ - True if this is a BG/Q platform.
bool hasInvariantFunctionDescriptors() const
Itinerary data supplied by a subtarget to be used by a target.
InstrItineraryData InstrItins
Selected instruction itineraries (one entry per itinerary class.)
bool enableSubRegLiveness() const override
const Triple & getTargetTriple() const
AntiDepBreakMode getAntiDepBreakMode() const override
PPCSubtarget & initializeSubtargetDependencies(StringRef CPU, StringRef FS)
initializeSubtargetDependencies - Initializes using a CPU and feature string so that we can use initi...
bool HasInvariantFunctionDescriptors
POPCNTDKind hasPOPCNTD() const
PPCFrameLowering FrameLowering
const PPCFrameLowering * getFrameLowering() const override
const PPCTargetLowering * getTargetLowering() const override
bool has64BitSupport() const
has64BitSupport - Return true if the selected CPU supports 64-bit instructions, regardless of whether...
bool isFeatureMFTB() const
Common code between 32-bit and 64-bit PowerPC targets.
Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...
bool hasOnlyMSYNC() const
const PPCTargetMachine & TM
bool hasPartwordAtomics() const
Triple - Helper class for working with autoconf configuration names.
bool isTargetLinux() const
bool hasRecipPrec() const
bool needsSwapsForVSXMemOps() const
const PPCRegisterInfo * getRegisterInfo() const override
bool hasP8Altivec() const
void getCriticalPathRCs(RegClassVector &CriticalPathRCs) const override
bool hasDirectMove() const
const PPCInstrInfo * getInstrInfo() const override
bool useSoftFloat() const
void ParseSubtargetFeatures(StringRef CPU, StringRef FS)
ParseSubtargetFeatures - Parses features string setting specified subtarget options.
Triple TargetTriple
TargetTriple - What processor and OS we're targeting.
bool enableMachineScheduler() const override
const PPCRegisterInfo & getRegisterInfo() const
getRegisterInfo - TargetInstrInfo is a superset of MRegister info.
Define a generic scheduling policy for targets that don't provide their own MachineSchedStrategy.
const InstrItineraryData * getInstrItineraryData() const override
getInstrItins - Return the instruction itineraries based on subtarget selection.
bool isOSBinFormatELF() const
Tests whether the OS uses the ELF binary format.
bool useLongCalls() const
bool useCRBits() const
useCRBits - Return true if we should store and manipulate i1 values in the individual condition regis...
bool isDeprecatedDST() const
bool isPPC64() const
isPPC64 - Return true if we are generating code for 64-bit pointer mode.
unsigned char classifyGlobalReference(const GlobalValue *GV) const
classifyGlobalReference - Classify a global variable reference for the current subtarget accourding t...
unsigned getDarwinDirective() const
getDarwinDirective - Returns the -m directive specified for the cpu.
VendorType getVendor() const
getVendor - Get the parsed vendor type of this triple.
StringRef - Represent a constant reference to a string, i.e.
bool HasMFOCRF
Used by the ISel to turn in optimizations for POWER4-derived architectures.
bool HasLazyResolverStubs
bool enablePostRAScheduler() const override