|
LLVM
4.0.0
|
#include <AArch64Subtarget.h>
Public Types | |
| enum | ARMProcFamilyEnum : uint8_t { Others, CortexA35, CortexA53, CortexA57, CortexA72, CortexA73, Cyclone, ExynosM1, Falkor, Kryo, Vulcan } |
Definition at line 35 of file AArch64Subtarget.h.
| enum llvm::AArch64Subtarget::ARMProcFamilyEnum : uint8_t |
| Enumerator | |
|---|---|
| Others | |
| CortexA35 | |
| CortexA53 | |
| CortexA57 | |
| CortexA72 | |
| CortexA73 | |
| Cyclone | |
| ExynosM1 | |
| Falkor | |
| Kryo | |
| Vulcan | |
Definition at line 37 of file AArch64Subtarget.h.
| AArch64Subtarget::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.
Definition at line 95 of file AArch64Subtarget.cpp.
|
inline |
Definition at line 186 of file AArch64Subtarget.h.
References BalanceFPOps.
Referenced by getCustomPBQPConstraints().
| unsigned char AArch64Subtarget::ClassifyGlobalReference | ( | const GlobalValue * | GV, |
| const TargetMachine & | TM | ||
| ) | const |
ClassifyGlobalReference - Find the target operand flags that describe how a global value should be referenced for the current subtarget.
Find the target operand flags that describe how a global value should be referenced for the current subtarget.
Definition at line 126 of file AArch64Subtarget.cpp.
References llvm::TargetMachine::getCodeModel(), llvm::GlobalValue::getParent(), llvm::GlobalValue::hasExternalWeakLinkage(), isTargetMachO(), llvm::CodeModel::Large, llvm::AArch64II::MO_GOT, llvm::AArch64II::MO_NO_FLAG, llvm::TargetMachine::shouldAssumeDSOLocal(), and llvm::CodeModel::Small.
Referenced by llvm::AArch64InstrInfo::expandPostRAPseudo(), and llvm::AArch64InstructionSelector::select().
|
override |
Definition at line 169 of file AArch64Subtarget.cpp.
References EnableEarlyIfConvert.
|
inlineoverride |
Definition at line 155 of file AArch64Subtarget.h.
|
inlineoverride |
Definition at line 156 of file AArch64Subtarget.h.
References UsePostRAScheduler.
| const char * AArch64Subtarget::getBZeroEntry | ( | ) | const |
This function returns the name of a function which has an interface like the non-standard bzero function, if such a function exists on the current subtarget and it is considered prefereable over memset with zero passed as the second argument.
Otherwise it returns null.
Definition at line 149 of file AArch64Subtarget.cpp.
References isTargetDarwin().
Referenced by llvm::AArch64SelectionDAGInfo::EmitTargetCodeForMemset().
|
inline |
Definition at line 203 of file AArch64Subtarget.h.
References CacheLineSize.
Referenced by llvm::AArch64TTIImpl::getCacheLineSize().
|
override |
Definition at line 103 of file AArch64Subtarget.cpp.
|
override |
Definition at line 187 of file AArch64Subtarget.cpp.
References balanceFPOps().
|
inlineoverride |
Definition at line 140 of file AArch64Subtarget.h.
References FrameLowering.
|
inlineoverride |
Definition at line 146 of file AArch64Subtarget.h.
References InstrInfo.
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::AArch64FrameLowering::emitPrologue(), getRegisterInfo(), and llvm::AArch64TargetLowering::insertCopiesSplitCSR().
|
override |
Definition at line 108 of file AArch64Subtarget.cpp.
|
override |
Definition at line 113 of file AArch64Subtarget.cpp.
|
inline |
Definition at line 212 of file AArch64Subtarget.h.
References MaxJumpTableSize.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering().
|
inline |
getMaxInlineSizeThreshold - Returns the maximum memset / memcpy size that still makes it profitable to inline the call.
Definition at line 238 of file AArch64Subtarget.h.
|
inline |
Definition at line 199 of file AArch64Subtarget.h.
References MaxInterleaveFactor.
Referenced by llvm::AArch64TTIImpl::getMaxInterleaveFactor().
|
inline |
Definition at line 206 of file AArch64Subtarget.h.
References MaxPrefetchIterationsAhead.
Referenced by llvm::AArch64TTIImpl::getMaxPrefetchIterationsAhead().
|
inline |
Definition at line 205 of file AArch64Subtarget.h.
References MinPrefetchStride.
Referenced by llvm::AArch64TTIImpl::getMinPrefetchStride().
|
inline |
Definition at line 204 of file AArch64Subtarget.h.
References PrefetchDistance.
Referenced by llvm::AArch64TTIImpl::getPrefetchDistance().
|
inline |
Definition at line 209 of file AArch64Subtarget.h.
References PrefFunctionAlignment.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering().
|
inline |
Definition at line 210 of file AArch64Subtarget.h.
References PrefLoopAlignment.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering().
|
inline |
Returns ARM processor family.
Avoid this function! CPU specifics should be kept local to this class and preferably modeled with SubtargetFeatures or properties in initializeProperties().
Definition at line 164 of file AArch64Subtarget.h.
References ARMProcFamily.
Referenced by llvm::AArch64InstrInfo::isAsCheapAsAMove().
|
override |
Definition at line 118 of file AArch64Subtarget.cpp.
|
inlineoverride |
Definition at line 147 of file AArch64Subtarget.h.
References getInstrInfo(), and llvm::AArch64InstrInfo::getRegisterInfo().
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), llvm::AArch64FrameLowering::canUseAsPrologue(), llvm::AArch64FrameLowering::emitPrologue(), findScratchNonCalleeSaveRegister(), and llvm::AArch64TargetLowering::insertCopiesSplitCSR().
|
inlineoverride |
Definition at line 137 of file AArch64Subtarget.h.
References TSInfo.
|
inlineoverride |
Definition at line 143 of file AArch64Subtarget.h.
References TLInfo.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCallPreservedMask(), and produceCompactUnwindFrame().
Definition at line 154 of file AArch64Subtarget.h.
References TargetTriple.
|
inline |
Definition at line 200 of file AArch64Subtarget.h.
References VectorInsertExtractBaseCost.
Referenced by llvm::AArch64TTIImpl::getVectorInstrCost().
|
inline |
Definition at line 196 of file AArch64Subtarget.h.
References HasArithmeticBccFusion.
Referenced by llvm::AArch64InstrInfo::shouldScheduleAdjacent().
|
inline |
Definition at line 197 of file AArch64Subtarget.h.
References HasArithmeticCbzFusion.
Referenced by llvm::AArch64InstrInfo::shouldScheduleAdjacent().
|
inline |
Definition at line 183 of file AArch64Subtarget.h.
References HasCRC.
|
inline |
Definition at line 182 of file AArch64Subtarget.h.
References HasCrypto.
|
inline |
Definition at line 190 of file AArch64Subtarget.h.
References CustomAsCheapAsMove.
Referenced by llvm::AArch64InstrInfo::isAsCheapAsAMove().
|
inline |
Definition at line 180 of file AArch64Subtarget.h.
References HasFPARMv8.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), and llvm::AArch64TargetLowering::getOptimalMemOpType().
|
inline |
Definition at line 219 of file AArch64Subtarget.h.
References HasFullFP16.
|
inline |
Definition at line 184 of file AArch64Subtarget.h.
References HasLSE.
|
inline |
Definition at line 181 of file AArch64Subtarget.h.
References HasNEON.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysRegTuple(), foldVectorXorShiftIntoCmp(), getEstimate(), llvm::AArch64TTIImpl::getNumberOfRegisters(), llvm::AArch64TTIImpl::getRegisterBitWidth(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), performAcrossLaneAddReductionCombine(), performAcrossLaneMinMaxReductionCombine(), performFDivCombine(), performFpToIntCombine(), performIntToFpCombine(), and llvm::AArch64InstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 218 of file AArch64Subtarget.h.
References HasPerfMon.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering().
|
inline |
Definition at line 185 of file AArch64Subtarget.h.
References HasRAS.
|
inline |
Definition at line 220 of file AArch64Subtarget.h.
References HasSPE.
|
inline |
Definition at line 168 of file AArch64Subtarget.h.
References HasV8_1aOps.
|
inline |
Definition at line 169 of file AArch64Subtarget.h.
References HasV8_2aOps.
|
inline |
Definition at line 171 of file AArch64Subtarget.h.
References HasZeroCycleRegMove.
Referenced by llvm::AArch64InstrInfo::copyPhysReg().
|
inline |
Definition at line 173 of file AArch64Subtarget.h.
References HasZeroCycleZeroing.
Referenced by llvm::AArch64InstrInfo::copyPhysReg(), and llvm::AArch64InstrInfo::isAsCheapAsAMove().
|
inline |
Definition at line 222 of file AArch64Subtarget.h.
References IsLittle.
|
inline |
Definition at line 191 of file AArch64Subtarget.h.
References Misaligned128StoreIsSlow.
Referenced by llvm::AArch64TargetLowering::allowsMisalignedMemoryAccesses(), llvm::AArch64TTIImpl::getMemoryOpCost(), and splitStores().
|
inline |
Definition at line 192 of file AArch64Subtarget.h.
References Paired128IsSlow.
Referenced by llvm::AArch64InstrInfo::isCandidateToMergeOrPair().
|
inline |
Definition at line 228 of file AArch64Subtarget.h.
References llvm::Triple::isAndroid(), and TargetTriple.
Referenced by llvm::AArch64TargetLowering::getIRStackGuard(), llvm::AArch64TargetLowering::getSafeStackPointerLocation(), and llvm::AArch64TargetLowering::useLoadStackGuardNode().
|
inline |
Definition at line 230 of file AArch64Subtarget.h.
References llvm::Triple::isOSBinFormatCOFF(), and TargetTriple.
|
inline |
Definition at line 224 of file AArch64Subtarget.h.
References llvm::Triple::isOSDarwin(), and TargetTriple.
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall(), and getBZeroEntry().
|
inline |
Definition at line 231 of file AArch64Subtarget.h.
References llvm::Triple::isOSBinFormatELF(), and TargetTriple.
|
inline |
Definition at line 225 of file AArch64Subtarget.h.
References llvm::Triple::isiOS(), and TargetTriple.
|
inline |
Definition at line 226 of file AArch64Subtarget.h.
References llvm::Triple::isOSLinux(), and TargetTriple.
|
inline |
Definition at line 232 of file AArch64Subtarget.h.
References llvm::Triple::isOSBinFormatMachO(), and TargetTriple.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), ClassifyGlobalReference(), and produceCompactUnwindFrame().
|
inline |
Definition at line 227 of file AArch64Subtarget.h.
References llvm::Triple::isOSWindows(), and TargetTriple.
|
inline |
Definition at line 179 of file AArch64Subtarget.h.
References ReserveX18.
Referenced by llvm::AArch64RegisterInfo::getRegPressureLimit(), and llvm::AArch64RegisterInfo::getReservedRegs().
|
inlineoverride |
Definition at line 177 of file AArch64Subtarget.h.
|
override |
Definition at line 157 of file AArch64Subtarget.cpp.
References llvm::MachineSchedPolicy::DisableLatencyHeuristic, DisableLatencySchedHeuristic, llvm::MachineSchedPolicy::OnlyBottomUp, and llvm::MachineSchedPolicy::OnlyTopDown.
ParseSubtargetFeatures - Parses features string setting specified subtarget options.
Definition of function is auto generated by tblgen.
|
inline |
Definition at line 187 of file AArch64Subtarget.h.
References PredictableSelectIsExpensive.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering().
|
inline |
Definition at line 175 of file AArch64Subtarget.h.
References StrictAlign.
Referenced by llvm::AArch64TargetLowering::allowsMisalignedMemoryAccesses().
|
inline |
This object will take onwership of GISelAccessor.
Definition at line 133 of file AArch64Subtarget.h.
| bool AArch64Subtarget::supportsAddressTopByteIgnored | ( | ) | const |
CPU has TBI (top byte of addresses is ignored during HW address translation) and OS enables it.
Definition at line 173 of file AArch64Subtarget.cpp.
References llvm::Triple::getiOSVersion(), llvm::Triple::isiOS(), TargetTriple, and UseAddressTopByteIgnored.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), and performSTORECombine().
|
inlineoverride |
Definition at line 234 of file AArch64Subtarget.h.
References UseAA.
|
inline |
Definition at line 193 of file AArch64Subtarget.h.
References UseAlternateSExtLoadCVTF32Pattern.
|
inline |
Definition at line 198 of file AArch64Subtarget.h.
References UseRSqrt.
|
protected |
ARMProcFamily - ARM processor family: Cortex-A53, Cortex-A57, and others.
Definition at line 53 of file AArch64Subtarget.h.
Referenced by getProcFamily().
Definition at line 78 of file AArch64Subtarget.h.
Referenced by balanceFPOps().
|
protected |
Definition at line 90 of file AArch64Subtarget.h.
Referenced by getCacheLineSize().
Definition at line 79 of file AArch64Subtarget.h.
Referenced by hasCustomCheapAsMoveHandling().
Definition at line 86 of file AArch64Subtarget.h.
Referenced by overrideSchedPolicy().
|
protected |
Definition at line 106 of file AArch64Subtarget.h.
Referenced by getFrameLowering().
|
protected |
Gather the accessor points to GlobalISel-related APIs.
This is used to avoid ifndefs spreading around while GISel is an optional library.
Definition at line 113 of file AArch64Subtarget.h.
Referenced by getCallLowering(), getInstructionSelector(), getLegalizerInfo(), and getRegBankInfo().
Definition at line 84 of file AArch64Subtarget.h.
Referenced by hasArithmeticBccFusion().
Definition at line 85 of file AArch64Subtarget.h.
Referenced by hasArithmeticCbzFusion().
Definition at line 61 of file AArch64Subtarget.h.
Referenced by hasCRC().
Definition at line 60 of file AArch64Subtarget.h.
Referenced by hasCrypto().
Definition at line 58 of file AArch64Subtarget.h.
Referenced by hasFPARMv8().
Definition at line 65 of file AArch64Subtarget.h.
Referenced by hasFullFP16().
Definition at line 62 of file AArch64Subtarget.h.
Referenced by hasLSE().
Definition at line 59 of file AArch64Subtarget.h.
Referenced by hasNEON().
Definition at line 64 of file AArch64Subtarget.h.
Referenced by hasPerfMon().
Definition at line 63 of file AArch64Subtarget.h.
Referenced by hasRAS().
Definition at line 66 of file AArch64Subtarget.h.
Referenced by hasSPE().
Definition at line 55 of file AArch64Subtarget.h.
Referenced by hasV8_1aOps().
Definition at line 56 of file AArch64Subtarget.h.
Referenced by hasV8_2aOps().
Definition at line 69 of file AArch64Subtarget.h.
Referenced by hasZeroCycleRegMove().
Definition at line 72 of file AArch64Subtarget.h.
Referenced by hasZeroCycleZeroing().
|
protected |
Definition at line 107 of file AArch64Subtarget.h.
Referenced by getInstrInfo().
|
protected |
Definition at line 101 of file AArch64Subtarget.h.
Referenced by isLittleEndian().
|
protected |
Definition at line 88 of file AArch64Subtarget.h.
Referenced by getMaxInterleaveFactor().
|
protected |
Definition at line 96 of file AArch64Subtarget.h.
Referenced by getMaximumJumpTableSize().
|
protected |
Definition at line 93 of file AArch64Subtarget.h.
Referenced by getMaxPrefetchIterationsAhead().
|
protected |
Definition at line 92 of file AArch64Subtarget.h.
Referenced by getMinPrefetchStride().
Definition at line 81 of file AArch64Subtarget.h.
Referenced by isMisaligned128StoreSlow().
Definition at line 82 of file AArch64Subtarget.h.
Referenced by isPaired128Slow().
Definition at line 77 of file AArch64Subtarget.h.
Referenced by predictableSelectIsExpensive().
|
protected |
Definition at line 91 of file AArch64Subtarget.h.
Referenced by getPrefetchDistance().
|
protected |
Definition at line 94 of file AArch64Subtarget.h.
Referenced by getPrefFunctionAlignment().
|
protected |
Definition at line 95 of file AArch64Subtarget.h.
Referenced by getPrefLoopAlignment().
|
protected |
Definition at line 99 of file AArch64Subtarget.h.
Referenced by isX18Reserved().
Definition at line 75 of file AArch64Subtarget.h.
Referenced by requiresStrictAlign().
|
protected |
TargetTriple - What processor and OS we're targeting.
Definition at line 104 of file AArch64Subtarget.h.
Referenced by getTargetTriple(), isTargetAndroid(), isTargetCOFF(), isTargetDarwin(), isTargetELF(), isTargetIOS(), isTargetLinux(), isTargetMachO(), isTargetWindows(), and supportsAddressTopByteIgnored().
|
protected |
Definition at line 109 of file AArch64Subtarget.h.
Referenced by getTargetLowering().
|
protected |
Definition at line 108 of file AArch64Subtarget.h.
Referenced by getSelectionDAGInfo().
Definition at line 76 of file AArch64Subtarget.h.
Referenced by useAA().
Definition at line 83 of file AArch64Subtarget.h.
Referenced by useAlternateSExtLoadCVTF32Pattern().
Definition at line 80 of file AArch64Subtarget.h.
Referenced by enablePostRAScheduler().
Definition at line 87 of file AArch64Subtarget.h.
Referenced by useRSqrt().
|
protected |
Definition at line 89 of file AArch64Subtarget.h.
Referenced by getVectorInsertExtractBaseCost().
1.8.6