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" 180 return &FrameLowering;
190 return &getInstrInfo()->getRegisterInfo();
199 void initializeEnvironment();
205 bool isPPC64()
const;
225 bool hasLazyResolverStub(
const GlobalValue *GV)
const;
268 return HasInvariantFunctionDescriptors;
275 if ((hasQPX() || isBGQ()) && !isQPXStackUnaligned())
284 return isDarwinABI() ? 224 : (isPPC64() ? 288 : 0);
293 return hasVSX() && isLittleEndian() && !hasP9Vector();
311 bool isELFv2ABI()
const;
318 bool enableMachineScheduler()
const override;
320 bool enablePostRAScheduler()
const override;
321 AntiDepBreakMode getAntiDepBreakMode()
const override;
322 void getCriticalPathRCs(RegClassVector &CriticalPathRCs)
const override;
325 unsigned NumRegionInstrs)
const override;
326 bool useAA()
const override;
328 bool enableSubRegLiveness()
const override;
332 unsigned char classifyGlobalReference(
const GlobalValue *GV)
const;
bool enableEarlyIfConversion() const override
Originally, this function return hasISEL().
This class represents lattice values for constants.
bool isMacOSX() const
isMacOSX - Is this a Mac OS X triple.
const SelectionDAGTargetInfo * getSelectionDAGInfo() const override
bool isOSBinFormatELF() const
Tests whether the OS uses the ELF binary format.
bool IsQPXStackUnaligned
When targeting QPX running a stock PPC64 Linux kernel where the stack alignment has not been changed...
bool isBGQ() const
isBGQ - True if this is a BG/Q platform.
unsigned StackAlignment
stackAlignment - The minimum alignment known to hold of the stack frame on entry to the function and ...
bool isTargetLinux() const
SelectionDAGTargetInfo TSInfo
unsigned getPlatformStackAlignment() const
bool hasDirectMove() const
unsigned DarwinDirective
Which cpu directive was used.
bool useSoftFloat() const
bool has64BitSupport() const
has64BitSupport - Return true if the selected CPU supports 64-bit instructions, regardless of whether...
Itinerary data supplied by a subtarget to be used by a target.
const PPCTargetMachine & getTargetMachine() const
InstrItineraryData InstrItins
Selected instruction itineraries (one entry per itinerary class.)
bool hasInvariantFunctionDescriptors() const
VendorType getVendor() const
getVendor - Get the parsed vendor type of this triple.
bool HasInvariantFunctionDescriptors
PPCFrameLowering FrameLowering
const PPCFrameLowering * getFrameLowering() const override
bool hasPartwordAtomics() const
static bool isDarwin(object::Archive::Kind Kind)
const PPCTargetLowering * getTargetLowering() const override
bool isQPXStackUnaligned() const
Common code between 32-bit and 64-bit PowerPC targets.
bool isOSBinFormatMachO() const
Tests whether the environment is MachO.
Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...
bool isLittleEndian() const
unsigned getDarwinDirective() const
getDarwinDirective - Returns the -m directive specified for the cpu.
const PPCTargetMachine & TM
Triple - Helper class for working with autoconf configuration names.
const PPCRegisterInfo * getRegisterInfo() const override
const PPCInstrInfo * getInstrInfo() const override
bool isOSLinux() const
Tests whether the OS is Linux.
bool isFeatureMFTB() const
bool hasP8Altivec() const
bool hasP9Altivec() const
unsigned getRedZoneSize() const
bool hasRecipPrec() const
Triple TargetTriple
TargetTriple - What processor and OS we're targeting.
bool useLongCalls() 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...
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 useCRBits() const
useCRBits - Return true if we should store and manipulate i1 values in the individual condition regis...
bool isDarwin() const
isDarwin - True if this is any darwin platform.
POPCNTDKind hasPOPCNTD() const
bool needsSwapsForVSXMemOps() const
bool isTargetMachO() const
Primary interface to the complete machine description for the target machine.
StringRef - Represent a constant reference to a string, i.e.
bool isXRaySupported() const override
bool HasMFOCRF
Used by the ISel to turn in optimizations for POWER4-derived architectures.
bool HasLazyResolverStubs
const Triple & getTargetTriple() const
unsigned getStackAlignment() const
getStackAlignment - Returns the minimum alignment known to hold of the stack frame on entry to the fu...
bool hasOnlyMSYNC() const
bool isDeprecatedDST() const