LLVM  3.7.0
Public Member Functions | Protected Types | Protected Attributes | List of all members
llvm::AArch64Subtarget Class Reference

#include <AArch64Subtarget.h>

Inheritance diagram for llvm::AArch64Subtarget:
[legend]
Collaboration diagram for llvm::AArch64Subtarget:
[legend]

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 AArch64SelectionDAGInfogetSelectionDAGInfo () const override
 
const AArch64FrameLoweringgetFrameLowering () const override
 
const AArch64TargetLoweringgetTargetLowering () const override
 
const AArch64InstrInfogetInstrInfo () const override
 
const AArch64RegisterInfogetRegisterInfo () const override
 
const TriplegetTargetTriple () 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< PBQPRAConstraintgetCustomPBQPConstraints () 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
 

Detailed Description

Definition at line 34 of file AArch64Subtarget.h.

Member Enumeration Documentation

Enumerator
Others 
CortexA53 
CortexA57 
Cyclone 

Definition at line 36 of file AArch64Subtarget.h.

Constructor & Destructor Documentation

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.

Member Function Documentation

unsigned char AArch64Subtarget::ClassifyGlobalReference ( const GlobalValue GV,
const TargetMachine TM 
) const
bool AArch64Subtarget::enableEarlyIfConversion ( ) const
override

Definition at line 118 of file AArch64Subtarget.cpp.

References EnableEarlyIfConvert.

bool llvm::AArch64Subtarget::enableMachineScheduler ( ) const
inlineoverride

Definition at line 93 of file AArch64Subtarget.h.

bool llvm::AArch64Subtarget::enablePostRAScheduler ( ) const
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().

std::unique_ptr< PBQPRAConstraint > AArch64Subtarget::getCustomPBQPConstraints ( ) const
override

Definition at line 123 of file AArch64Subtarget.cpp.

References isCortexA57().

const AArch64FrameLowering* llvm::AArch64Subtarget::getFrameLowering ( ) const
inlineoverride

Definition at line 82 of file AArch64Subtarget.h.

References FrameLowering.

const AArch64InstrInfo* llvm::AArch64Subtarget::getInstrInfo ( ) const
inlineoverride

Definition at line 88 of file AArch64Subtarget.h.

References InstrInfo.

Referenced by llvm::AArch64TargetLowering::EmitF128CSEL(), and getRegisterInfo().

unsigned llvm::AArch64Subtarget::getMaxInlineSizeThreshold ( ) const
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.

const AArch64RegisterInfo* llvm::AArch64Subtarget::getRegisterInfo ( ) const
inlineoverride
const AArch64SelectionDAGInfo* llvm::AArch64Subtarget::getSelectionDAGInfo ( ) const
inlineoverride

Definition at line 79 of file AArch64Subtarget.h.

References TSInfo.

const AArch64TargetLowering* llvm::AArch64Subtarget::getTargetLowering ( ) const
inlineoverride

Definition at line 85 of file AArch64Subtarget.h.

References TLInfo.

const Triple& llvm::AArch64Subtarget::getTargetTriple ( ) const
inline

Definition at line 92 of file AArch64Subtarget.h.

References TargetTriple.

bool llvm::AArch64Subtarget::hasCRC ( ) const
inline

Definition at line 107 of file AArch64Subtarget.h.

References HasCRC.

bool llvm::AArch64Subtarget::hasCrypto ( ) const
inline

Definition at line 106 of file AArch64Subtarget.h.

References HasCrypto.

bool llvm::AArch64Subtarget::hasFPARMv8 ( ) const
inline
bool llvm::AArch64Subtarget::hasNEON ( ) const
inline
bool llvm::AArch64Subtarget::hasV8_1aOps ( ) const
inline

Definition at line 98 of file AArch64Subtarget.h.

References HasV8_1aOps.

bool llvm::AArch64Subtarget::hasZeroCycleRegMove ( ) const
inline

Definition at line 100 of file AArch64Subtarget.h.

References HasZeroCycleRegMove.

Referenced by llvm::AArch64InstrInfo::copyPhysReg().

bool llvm::AArch64Subtarget::hasZeroCycleZeroing ( ) const
inline

Definition at line 102 of file AArch64Subtarget.h.

References HasZeroCycleZeroing.

Referenced by llvm::AArch64InstrInfo::copyPhysReg().

bool llvm::AArch64Subtarget::isCortexA53 ( ) const
inline

Definition at line 122 of file AArch64Subtarget.h.

References CPUString.

Referenced by enablePostRAScheduler(), llvm::AArch64InstrInfo::isAsCheapAsAMove(), and useAA().

bool llvm::AArch64Subtarget::isCortexA57 ( ) const
inline
bool llvm::AArch64Subtarget::isCyclone ( ) const
inline

Definition at line 120 of file AArch64Subtarget.h.

References CPUString.

Referenced by performSTORECombine().

bool llvm::AArch64Subtarget::isLittleEndian ( ) const
inline

Definition at line 109 of file AArch64Subtarget.h.

References IsLittle.

bool llvm::AArch64Subtarget::isTargetCOFF ( ) const
inline

Definition at line 116 of file AArch64Subtarget.h.

References llvm::Triple::isOSBinFormatCOFF(), and TargetTriple.

bool llvm::AArch64Subtarget::isTargetDarwin ( ) const
inline
bool llvm::AArch64Subtarget::isTargetELF ( ) const
inline

Definition at line 117 of file AArch64Subtarget.h.

References llvm::Triple::isOSBinFormatELF(), and TargetTriple.

bool llvm::AArch64Subtarget::isTargetIOS ( ) const
inline

Definition at line 112 of file AArch64Subtarget.h.

References llvm::Triple::isiOS(), and TargetTriple.

bool llvm::AArch64Subtarget::isTargetLinux ( ) const
inline

Definition at line 113 of file AArch64Subtarget.h.

References llvm::Triple::isOSLinux(), and TargetTriple.

bool llvm::AArch64Subtarget::isTargetMachO ( ) const
inline
bool llvm::AArch64Subtarget::isTargetWindows ( ) const
inline

Definition at line 114 of file AArch64Subtarget.h.

References llvm::Triple::isOSWindows(), and TargetTriple.

void AArch64Subtarget::overrideSchedPolicy ( MachineSchedPolicy Policy,
MachineInstr begin,
MachineInstr end,
unsigned  NumRegionInstrs 
) const
override
void llvm::AArch64Subtarget::ParseSubtargetFeatures ( StringRef  CPU,
StringRef  FS 
)

ParseSubtargetFeatures - Parses features string setting specified subtarget options.

Definition of function is auto generated by tblgen.

bool llvm::AArch64Subtarget::useAA ( ) const
inlineoverride

Definition at line 124 of file AArch64Subtarget.h.

References isCortexA53().

Member Data Documentation

ARMProcFamilyEnum llvm::AArch64Subtarget::ARMProcFamily
protected

ARMProcFamily - ARM processor family: Cortex-A53, Cortex-A57, and others.

Definition at line 39 of file AArch64Subtarget.h.

std::string llvm::AArch64Subtarget::CPUString
protected

CPUString - String name of used CPU.

Definition at line 57 of file AArch64Subtarget.h.

Referenced by isCortexA53(), isCortexA57(), and isCyclone().

AArch64FrameLowering llvm::AArch64Subtarget::FrameLowering
protected

Definition at line 62 of file AArch64Subtarget.h.

Referenced by getFrameLowering().

bool llvm::AArch64Subtarget::HasCRC
protected

Definition at line 46 of file AArch64Subtarget.h.

Referenced by hasCRC().

bool llvm::AArch64Subtarget::HasCrypto
protected

Definition at line 45 of file AArch64Subtarget.h.

Referenced by hasCrypto().

bool llvm::AArch64Subtarget::HasFPARMv8
protected

Definition at line 43 of file AArch64Subtarget.h.

Referenced by hasFPARMv8().

bool llvm::AArch64Subtarget::HasNEON
protected

Definition at line 44 of file AArch64Subtarget.h.

Referenced by hasNEON().

bool llvm::AArch64Subtarget::HasV8_1aOps
protected

Definition at line 41 of file AArch64Subtarget.h.

Referenced by hasV8_1aOps().

bool llvm::AArch64Subtarget::HasZeroCycleRegMove
protected

Definition at line 49 of file AArch64Subtarget.h.

Referenced by hasZeroCycleRegMove().

bool llvm::AArch64Subtarget::HasZeroCycleZeroing
protected

Definition at line 52 of file AArch64Subtarget.h.

Referenced by hasZeroCycleZeroing().

AArch64InstrInfo llvm::AArch64Subtarget::InstrInfo
protected

Definition at line 63 of file AArch64Subtarget.h.

Referenced by getInstrInfo().

bool llvm::AArch64Subtarget::IsLittle
protected

Definition at line 54 of file AArch64Subtarget.h.

Referenced by isLittleEndian().

Triple llvm::AArch64Subtarget::TargetTriple
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().

AArch64TargetLowering llvm::AArch64Subtarget::TLInfo
protected

Definition at line 65 of file AArch64Subtarget.h.

Referenced by getTargetLowering().

AArch64SelectionDAGInfo llvm::AArch64Subtarget::TSInfo
protected

Definition at line 64 of file AArch64Subtarget.h.

Referenced by getSelectionDAGInfo().


The documentation for this class was generated from the following files: