14 #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64SUBTARGET_H
15 #define LLVM_LIB_TARGET_AARCH64_AARCH64SUBTARGET_H
27 #define GET_SUBTARGETINFO_HEADER
28 #include "AArch64GenSubtargetInfo.inc"
113 std::unique_ptr<GISelAccessor>
GISel;
123 void initializeProperties();
134 this->GISel.reset(&GISel);
257 unsigned NumRegionInstrs)
const override;
uint16_t PrefetchDistance
The goal of this helper class is to gather the accessor to all the APIs related to GlobalISel...
const AArch64RegisterInfo & getRegisterInfo() const
getRegisterInfo - TargetInstrInfo is a superset of MRegister info.
bool isTargetAndroid() const
bool requiresStrictAlign() const
unsigned getVectorInsertExtractBaseCost() const
bool isOSBinFormatMachO() const
Tests whether the environment is MachO.
bool isTargetLinux() const
bool hasZeroCycleRegMove() const
const InstructionSelector * getInstructionSelector() const override
bool hasZeroCycleZeroing() const
bool UseAlternateSExtLoadCVTF32Pattern
bool hasCustomCheapAsMoveHandling() const
AArch64SelectionDAGInfo TSInfo
const AArch64FrameLowering * getFrameLowering() const override
bool DisableLatencySchedHeuristic
const CallLowering * getCallLowering() const override
bool isAndroid() const
Tests whether the target is Android.
bool isOSWindows() const
Tests whether the OS is Windows.
void overrideSchedPolicy(MachineSchedPolicy &Policy, unsigned NumRegionInstrs) const override
bool isPaired128Slow() const
Holds all the information related to register banks.
unsigned getMaximumJumpTableSize() const
bool balanceFPOps() const
bool useAlternateSExtLoadCVTF32Pattern() const
bool isX18Reserved() const
ARMProcFamilyEnum getProcFamily() const
Returns ARM processor family.
unsigned getMinPrefetchStride() const
bool isOSLinux() const
Tests whether the OS is Linux.
uint8_t VectorInsertExtractBaseCost
const AArch64RegisterInfo * getRegisterInfo() const override
unsigned getMaxInlineSizeThreshold() const
getMaxInlineSizeThreshold - Returns the maximum memset / memcpy size that still makes it profitable t...
bool useAA() const override
bool isTargetCOFF() const
unsigned getPrefetchDistance() const
bool enableMachineScheduler() const override
const Triple & getTargetTriple() const
bool enableEarlyIfConversion() const override
bool HasArithmeticBccFusion
bool isiOS() const
Is this an iOS triple.
const AArch64TargetLowering * getTargetLowering() const override
bool Misaligned128StoreIsSlow
bool isXRaySupported() const override
unsigned getMaxPrefetchIterationsAhead() const
unsigned MaxPrefetchIterationsAhead
unsigned PrefLoopAlignment
bool isTargetMachO() const
bool isLittleEndian() const
void setGISelAccessor(GISelAccessor &GISel)
This object will take onwership of GISelAccessor.
unsigned PrefFunctionAlignment
bool isMisaligned128StoreSlow() const
bool isOSBinFormatCOFF() const
Tests whether the OS uses the COFF binary format.
uint16_t MinPrefetchStride
bool predictableSelectIsExpensive() const
unsigned char ClassifyGlobalReference(const GlobalValue *GV, const TargetMachine &TM) const
ClassifyGlobalReference - Find the target operand flags that describe how a global value should be re...
Triple - Helper class for working with autoconf configuration names.
bool isOSDarwin() const
isOSDarwin - Is this a "Darwin" OS (OS X, iOS, or watchOS).
const AArch64SelectionDAGInfo * getSelectionDAGInfo() const override
AArch64InstrInfo InstrInfo
void ParseSubtargetFeatures(StringRef CPU, StringRef FS)
ParseSubtargetFeatures - Parses features string setting specified subtarget options.
unsigned getMaxInterleaveFactor() const
const char * getBZeroEntry() const
This function returns the name of a function which has an interface like the non-standard bzero funct...
unsigned getCacheLineSize() const
bool enablePostRAScheduler() const override
bool hasArithmeticBccFusion() const
bool isTargetDarwin() const
Provides the logic to select generic machine instructions.
Define a generic scheduling policy for targets that don't provide their own MachineSchedStrategy.
std::unique_ptr< PBQPRAConstraint > getCustomPBQPConstraints() const override
AArch64Subtarget(const Triple &TT, const std::string &CPU, const std::string &FS, const TargetMachine &TM, bool LittleEndian)
This constructor initializes the data members to match that of the specified triple.
const LegalizerInfo * getLegalizerInfo() const override
bool isOSBinFormatELF() const
Tests whether the OS uses the ELF binary format.
bool isTargetWindows() const
bool hasArithmeticCbzFusion() const
AArch64FrameLowering FrameLowering
unsigned MaxJumpTableSize
bool supportsAddressTopByteIgnored() const
CPU has TBI (top byte of addresses is ignored during HW address translation) and OS enables it...
uint8_t MaxInterleaveFactor
Triple TargetTriple
TargetTriple - What processor and OS we're targeting.
ARMProcFamilyEnum ARMProcFamily
ARMProcFamily - ARM processor family: Cortex-A53, Cortex-A57, and others.
const AArch64InstrInfo * getInstrInfo() const override
const RegisterBankInfo * getRegBankInfo() const override
unsigned getPrefFunctionAlignment() const
Primary interface to the complete machine description for the target machine.
StringRef - Represent a constant reference to a string, i.e.
unsigned getPrefLoopAlignment() const
AArch64TargetLowering TLInfo
std::unique_ptr< GISelAccessor > GISel
Gather the accessor points to GlobalISel-related APIs.
bool PredictableSelectIsExpensive
bool HasArithmeticCbzFusion