|
LLVM
3.7.0
|
#include <AArch64Subtarget.h>
Public Member Functions | |
| 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. More... | |
| const AArch64SelectionDAGInfo * | getSelectionDAGInfo () const override |
| const AArch64FrameLowering * | getFrameLowering () const override |
| const AArch64TargetLowering * | getTargetLowering () const override |
| const AArch64InstrInfo * | getInstrInfo () const override |
| const AArch64RegisterInfo * | getRegisterInfo () const override |
| const Triple & | getTargetTriple () const |
| bool | enableMachineScheduler () const override |
| bool | enablePostRAScheduler () const override |
| bool | hasV8_1aOps () const |
| bool | hasZeroCycleRegMove () const |
| bool | hasZeroCycleZeroing () const |
| bool | hasFPARMv8 () const |
| bool | hasNEON () const |
| bool | hasCrypto () const |
| bool | hasCRC () const |
| bool | isLittleEndian () const |
| bool | isTargetDarwin () const |
| bool | isTargetIOS () const |
| bool | isTargetLinux () const |
| bool | isTargetWindows () const |
| bool | isTargetCOFF () const |
| bool | isTargetELF () const |
| bool | isTargetMachO () const |
| bool | isCyclone () const |
| bool | isCortexA57 () const |
| bool | isCortexA53 () const |
| bool | useAA () const override |
| unsigned | getMaxInlineSizeThreshold () const |
| getMaxInlineSizeThreshold - Returns the maximum memset / memcpy size that still makes it profitable to inline the call. More... | |
| void | ParseSubtargetFeatures (StringRef CPU, StringRef FS) |
| ParseSubtargetFeatures - Parses features string setting specified subtarget options. More... | |
| unsigned char | 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. More... | |
| const char * | 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. More... | |
| void | overrideSchedPolicy (MachineSchedPolicy &Policy, MachineInstr *begin, MachineInstr *end, unsigned NumRegionInstrs) const override |
| bool | enableEarlyIfConversion () const override |
| std::unique_ptr< PBQPRAConstraint > | getCustomPBQPConstraints () const override |
Protected Types | |
| enum | ARMProcFamilyEnum { Others, CortexA53, CortexA57, Cyclone } |
Protected Attributes | |
| ARMProcFamilyEnum | ARMProcFamily |
| ARMProcFamily - ARM processor family: Cortex-A53, Cortex-A57, and others. More... | |
| bool | HasV8_1aOps |
| bool | HasFPARMv8 |
| bool | HasNEON |
| bool | HasCrypto |
| bool | HasCRC |
| bool | HasZeroCycleRegMove |
| bool | HasZeroCycleZeroing |
| bool | IsLittle |
| std::string | CPUString |
| CPUString - String name of used CPU. More... | |
| Triple | TargetTriple |
| TargetTriple - What processor and OS we're targeting. More... | |
| AArch64FrameLowering | FrameLowering |
| AArch64InstrInfo | InstrInfo |
| AArch64SelectionDAGInfo | TSInfo |
| AArch64TargetLowering | TLInfo |
Definition at line 34 of file AArch64Subtarget.h.
|
protected |
| Enumerator | |
|---|---|
| Others | |
| CortexA53 | |
| CortexA57 | |
| Cyclone | |
Definition at line 36 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 45 of file AArch64Subtarget.cpp.
| 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.
Definition at line 58 of file AArch64Subtarget.cpp.
References llvm::TargetMachine::getCodeModel(), llvm::TargetMachine::getRelocationModel(), llvm::GlobalValue::hasDefaultVisibility(), llvm::GlobalValue::hasExternalWeakLinkage(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalValue::isStrongDefinitionForLinker(), isTargetMachO(), llvm::CodeModel::Large, llvm::AArch64II::MO_CONSTPOOL, llvm::AArch64II::MO_GOT, llvm::AArch64II::MO_NO_FLAG, llvm::CodeModel::Small, and llvm::Reloc::Static.
Referenced by llvm::AArch64InstrInfo::expandPostRAPseudo().
|
override |
Definition at line 118 of file AArch64Subtarget.cpp.
References EnableEarlyIfConvert.
|
inlineoverride |
Definition at line 93 of file AArch64Subtarget.h.
|
inlineoverride |
Definition at line 94 of file AArch64Subtarget.h.
References isCortexA53(), and isCortexA57().
| 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 101 of file AArch64Subtarget.cpp.
References isTargetDarwin().
Referenced by llvm::AArch64SelectionDAGInfo::EmitTargetCodeForMemset().
|
override |
Definition at line 123 of file AArch64Subtarget.cpp.
References isCortexA57().
|
inlineoverride |
Definition at line 82 of file AArch64Subtarget.h.
References FrameLowering.
|
inlineoverride |
Definition at line 88 of file AArch64Subtarget.h.
References InstrInfo.
Referenced by llvm::AArch64TargetLowering::EmitF128CSEL(), and getRegisterInfo().
|
inline |
getMaxInlineSizeThreshold - Returns the maximum memset / memcpy size that still makes it profitable to inline the call.
Definition at line 128 of file AArch64Subtarget.h.
|
inlineoverride |
Definition at line 89 of file AArch64Subtarget.h.
References getInstrInfo(), and llvm::AArch64InstrInfo::getRegisterInfo().
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering().
|
inlineoverride |
Definition at line 79 of file AArch64Subtarget.h.
References TSInfo.
|
inlineoverride |
Definition at line 85 of file AArch64Subtarget.h.
References TLInfo.
Definition at line 92 of file AArch64Subtarget.h.
References TargetTriple.
|
inline |
Definition at line 107 of file AArch64Subtarget.h.
References HasCRC.
|
inline |
Definition at line 106 of file AArch64Subtarget.h.
References HasCrypto.
|
inline |
Definition at line 104 of file AArch64Subtarget.h.
References HasFPARMv8.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), and llvm::AArch64TargetLowering::getOptimalMemOpType().
|
inline |
Definition at line 105 of file AArch64Subtarget.h.
References HasNEON.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysRegTuple(), llvm::AArch64TTIImpl::getNumberOfRegisters(), llvm::AArch64TTIImpl::getRegisterBitWidth(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), performIntToFpCombine(), and llvm::AArch64InstrInfo::storeRegToStackSlot().
|
inline |
Definition at line 98 of file AArch64Subtarget.h.
References HasV8_1aOps.
|
inline |
Definition at line 100 of file AArch64Subtarget.h.
References HasZeroCycleRegMove.
Referenced by llvm::AArch64InstrInfo::copyPhysReg().
|
inline |
Definition at line 102 of file AArch64Subtarget.h.
References HasZeroCycleZeroing.
Referenced by llvm::AArch64InstrInfo::copyPhysReg().
|
inline |
Definition at line 122 of file AArch64Subtarget.h.
References CPUString.
Referenced by enablePostRAScheduler(), llvm::AArch64InstrInfo::isAsCheapAsAMove(), and useAA().
|
inline |
Definition at line 121 of file AArch64Subtarget.h.
References CPUString.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), enablePostRAScheduler(), getCustomPBQPConstraints(), llvm::AArch64TTIImpl::getMaxInterleaveFactor(), and llvm::AArch64InstrInfo::isAsCheapAsAMove().
|
inline |
Definition at line 120 of file AArch64Subtarget.h.
References CPUString.
Referenced by performSTORECombine().
|
inline |
Definition at line 109 of file AArch64Subtarget.h.
References IsLittle.
|
inline |
Definition at line 116 of file AArch64Subtarget.h.
References llvm::Triple::isOSBinFormatCOFF(), and TargetTriple.
|
inline |
Definition at line 111 of file AArch64Subtarget.h.
References llvm::Triple::isOSDarwin(), and TargetTriple.
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall(), and getBZeroEntry().
|
inline |
Definition at line 117 of file AArch64Subtarget.h.
References llvm::Triple::isOSBinFormatELF(), and TargetTriple.
|
inline |
Definition at line 112 of file AArch64Subtarget.h.
References llvm::Triple::isiOS(), and TargetTriple.
|
inline |
Definition at line 113 of file AArch64Subtarget.h.
References llvm::Triple::isOSLinux(), and TargetTriple.
|
inline |
Definition at line 118 of file AArch64Subtarget.h.
References llvm::Triple::isOSBinFormatMachO(), and TargetTriple.
Referenced by llvm::AArch64TargetLowering::AArch64TargetLowering(), and ClassifyGlobalReference().
|
inline |
Definition at line 114 of file AArch64Subtarget.h.
References llvm::Triple::isOSWindows(), and TargetTriple.
|
override |
Definition at line 109 of file AArch64Subtarget.cpp.
References llvm::MachineSchedPolicy::OnlyBottomUp, and llvm::MachineSchedPolicy::OnlyTopDown.
ParseSubtargetFeatures - Parses features string setting specified subtarget options.
Definition of function is auto generated by tblgen.
|
inlineoverride |
Definition at line 124 of file AArch64Subtarget.h.
References isCortexA53().
|
protected |
ARMProcFamily - ARM processor family: Cortex-A53, Cortex-A57, and others.
Definition at line 39 of file AArch64Subtarget.h.
|
protected |
CPUString - String name of used CPU.
Definition at line 57 of file AArch64Subtarget.h.
Referenced by isCortexA53(), isCortexA57(), and isCyclone().
|
protected |
Definition at line 62 of file AArch64Subtarget.h.
Referenced by getFrameLowering().
|
protected |
Definition at line 46 of file AArch64Subtarget.h.
Referenced by hasCRC().
|
protected |
Definition at line 45 of file AArch64Subtarget.h.
Referenced by hasCrypto().
|
protected |
Definition at line 43 of file AArch64Subtarget.h.
Referenced by hasFPARMv8().
|
protected |
Definition at line 44 of file AArch64Subtarget.h.
Referenced by hasNEON().
|
protected |
Definition at line 41 of file AArch64Subtarget.h.
Referenced by hasV8_1aOps().
|
protected |
Definition at line 49 of file AArch64Subtarget.h.
Referenced by hasZeroCycleRegMove().
|
protected |
Definition at line 52 of file AArch64Subtarget.h.
Referenced by hasZeroCycleZeroing().
|
protected |
Definition at line 63 of file AArch64Subtarget.h.
Referenced by getInstrInfo().
|
protected |
Definition at line 54 of file AArch64Subtarget.h.
Referenced by isLittleEndian().
|
protected |
TargetTriple - What processor and OS we're targeting.
Definition at line 60 of file AArch64Subtarget.h.
Referenced by getTargetTriple(), isTargetCOFF(), isTargetDarwin(), isTargetELF(), isTargetIOS(), isTargetLinux(), isTargetMachO(), and isTargetWindows().
|
protected |
Definition at line 65 of file AArch64Subtarget.h.
Referenced by getTargetLowering().
|
protected |
Definition at line 64 of file AArch64Subtarget.h.
Referenced by getSelectionDAGInfo().
1.8.6