LLVM 24.0.0git
llvm::HexagonSubtarget Class Reference

#include "Target/Hexagon/HexagonSubtarget.h"

Inheritance diagram for llvm::HexagonSubtarget:
[legend]

Classes

struct  BankConflictMutation
struct  CallMutation
struct  HLXPseudoMutation
struct  HVXMemLatencyMutation
struct  UsrOverflowMutation

Public Member Functions

 HexagonSubtarget (const Triple &TT, StringRef CPU, StringRef FS, const TargetMachine &TM)
const Triple & getTargetTriple () const
bool isEnvironmentMusl () const
const InstrItineraryData * getInstrItineraryData () const override
 getInstrItins - Return the instruction itineraries based on subtarget selection.
const HexagonInstrInfo * getInstrInfo () const override
const HexagonRegisterInfo * getRegisterInfo () const override
const HexagonTargetLowering * getTargetLowering () const override
const HexagonFrameLowering * getFrameLowering () const override
const HexagonSelectionDAGInfo * getSelectionDAGInfo () const override
HexagonSubtarget & initializeSubtargetDependencies (StringRef CPU, StringRef FS)
void initLibcallLoweringInfo (LibcallLoweringInfo &Info) const override
void ParseSubtargetFeatures (StringRef CPU, StringRef TuneCPU, StringRef FS)
 ParseSubtargetFeatures - Parses features string setting specified subtarget options.
bool isXRaySupported () const override
bool hasV5Ops () const
bool hasV5OpsOnly () const
bool hasV55Ops () const
bool hasV55OpsOnly () const
bool hasV60Ops () const
bool hasV60OpsOnly () const
bool hasV62Ops () const
bool hasV62OpsOnly () const
bool hasV65Ops () const
bool hasV65OpsOnly () const
bool hasV66Ops () const
bool hasV66OpsOnly () const
bool hasV67Ops () const
bool hasV67OpsOnly () const
bool hasV68Ops () const
bool hasV68OpsOnly () const
bool hasV69Ops () const
bool hasV69OpsOnly () const
bool hasV71Ops () const
bool hasV71OpsOnly () const
bool hasV73Ops () const
bool hasV73OpsOnly () const
bool hasV75Ops () const
bool hasV75OpsOnly () const
bool hasV79Ops () const
bool hasV79OpsOnly () const
bool useHVXV79Ops () const
bool useHVXV79OpsOnly () const
bool hasV81Ops () const
bool hasV81OpsOnly () const
bool useHVXV81Ops () const
bool hasV83Ops () const
bool hasV83OpsOnly () const
bool useHVXV83Ops () const
bool hasV85Ops () const
bool hasV85OpsOnly () const
bool useHVXV85Ops () const
bool useAudioOps () const
bool useCompound () const
bool useLongCalls () const
bool useMemops () const
bool usePackets () const
bool useNewValueJumps () const
bool useNewValueStores () const
bool useSmallData () const
bool useZRegOps () const
bool useHMXOps () const
bool useHLXOps () const
bool useHLX2048BOps () const
bool useCabac () const
bool isTinyCore () const
bool isTinyCoreWithDuplex () const
bool useHVXIEEEFPOps () const
bool useHVXQFloatOps () const
bool useHVXFloatingPoint () const
bool useHVXOps () const
bool useHVXV60Ops () const
bool useHVXV62Ops () const
bool useHVXV65Ops () const
bool useHVXV66Ops () const
bool useHVXV67Ops () const
bool useHVXV68Ops () const
bool useHVXV69Ops () const
bool useHVXV71Ops () const
bool useHVXV73Ops () const
bool useHVX128BOps () const
bool useHVX64BOps () const
bool hasMemNoShuf () const
bool isRegisterReservedByUser (Register i) const override
Register getSCSPReg () const
 Returns the register that holds the shadow call stack pointer.
bool usePredicatedCalls () const
bool noreturnStackElim () const
bool useBSBScheduling () const
bool enableMachineScheduler () const override
bool enableMachineSchedDefaultSched () const override
AntiDepBreakMode getAntiDepBreakMode () const override
bool enablePostRAScheduler () const override
 True if the subtarget should run a scheduler after register allocation.
bool enableSubRegLiveness () const override
const std::string & getCPUString () const
const Hexagon::ArchEnum & getHexagonArchVersion () const
void getPostRAMutations (std::vector< std::unique_ptr< ScheduleDAGMutation > > &Mutations) const override
void getSMSMutations (std::vector< std::unique_ptr< ScheduleDAGMutation > > &Mutations) const override
bool useAA () const override
 Enable use of alias analysis during code generation (during MI scheduling, DAGCombine, etc.).
void adjustSchedDependency (SUnit *Def, int DefOpIdx, SUnit *Use, int UseOpIdx, SDep &Dep, const TargetSchedModel *SchedModel) const override
 Perform target specific adjustments to the latency of a schedule dependency.
unsigned getVectorLength () const
ArrayRef< MVT > getHVXElementTypes () const
bool isHVXElementType (MVT Ty, bool IncludeBool=false) const
bool isHVXVectorType (EVT VecTy, bool IncludeBool=false) const
bool isTypeForHVX (Type *VecTy, bool IncludeBool=false) const
unsigned getHLXVectorLength () const
ArrayRef< MVT > getHLXElementTypes () const
bool isHLXElementType (MVT Ty) const
bool isHLXVectorType (EVT VecTy) const
bool isTypeForHLX (Type *VecTy) const
Align getTypeAlignment (MVT Ty) const
unsigned getL1CacheLineSize () const
unsigned getL1PrefetchDistance () const
Intrinsic::ID getIntrinsicId (unsigned Opc) const

Public Attributes

Hexagon::ArchEnum HexagonArchVersion
Hexagon::ArchEnum HexagonHVXVersion = Hexagon::ArchEnum::NoArch
CodeGenOptLevel OptLevel
bool UseBSBScheduling
 True if the target should use Back-Skip-Back scheduling.

Detailed Description

Definition at line 45 of file HexagonSubtarget.h.

Constructor & Destructor Documentation

◆ HexagonSubtarget()

Member Function Documentation

◆ adjustSchedDependency()

◆ enableMachineSchedDefaultSched()

bool llvm::HexagonSubtarget::enableMachineSchedDefaultSched ( ) const
inlineoverride

Definition at line 348 of file HexagonSubtarget.h.

◆ enableMachineScheduler()

bool HexagonSubtarget::enableMachineScheduler ( ) const
override

Definition at line 670 of file HexagonSubtarget.cpp.

References DisableHexagonMISched.

◆ enablePostRAScheduler()

bool llvm::HexagonSubtarget::enablePostRAScheduler ( ) const
inlineoverride

True if the subtarget should run a scheduler after register allocation.

Definition at line 355 of file HexagonSubtarget.h.

◆ enableSubRegLiveness()

bool HexagonSubtarget::enableSubRegLiveness ( ) const
override

Definition at line 866 of file HexagonSubtarget.cpp.

◆ getAntiDepBreakMode()

AntiDepBreakMode llvm::HexagonSubtarget::getAntiDepBreakMode ( ) const
inlineoverride

Definition at line 352 of file HexagonSubtarget.h.

◆ getCPUString()

const std::string & llvm::HexagonSubtarget::getCPUString ( ) const
inline

Definition at line 359 of file HexagonSubtarget.h.

◆ getFrameLowering()

const HexagonFrameLowering * llvm::HexagonSubtarget::getFrameLowering ( ) const
inlineoverride

◆ getHexagonArchVersion()

◆ getHLXElementTypes()

ArrayRef< MVT > llvm::HexagonSubtarget::getHLXElementTypes ( ) const
inline

Definition at line 416 of file HexagonSubtarget.h.

References llvm::ArrayRef().

Referenced by isHLXElementType(), and isHLXVectorType().

◆ getHLXVectorLength()

unsigned llvm::HexagonSubtarget::getHLXVectorLength ( ) const
inline

Definition at line 409 of file HexagonSubtarget.h.

References assert(), llvm_unreachable, useHLX2048BOps(), and useHLXOps().

Referenced by isHLXVectorType().

◆ getHVXElementTypes()

ArrayRef< MVT > llvm::HexagonSubtarget::getHVXElementTypes ( ) const
inline

◆ getInstrInfo()

◆ getInstrItineraryData()

const InstrItineraryData * llvm::HexagonSubtarget::getInstrItineraryData ( ) const
inlineoverride

getInstrItins - Return the instruction itineraries based on subtarget selection.

Definition at line 131 of file HexagonSubtarget.h.

◆ getIntrinsicId()

Intrinsic::ID HexagonSubtarget::getIntrinsicId ( unsigned Opc) const

Definition at line 868 of file HexagonSubtarget.cpp.

References A(), B(), error, getVectorLength(), llvm_unreachable, Opc, Scalar, and llvm::sort().

Referenced by get_i32_Mask().

◆ getL1CacheLineSize()

unsigned HexagonSubtarget::getL1CacheLineSize ( ) const

Definition at line 858 of file HexagonSubtarget.cpp.

◆ getL1PrefetchDistance()

unsigned HexagonSubtarget::getL1PrefetchDistance ( ) const

Definition at line 862 of file HexagonSubtarget.cpp.

◆ getPostRAMutations()

void HexagonSubtarget::getPostRAMutations ( std::vector< std::unique_ptr< ScheduleDAGMutation > > & Mutations) const
override

Definition at line 653 of file HexagonSubtarget.cpp.

◆ getRegisterInfo()

const HexagonRegisterInfo * llvm::HexagonSubtarget::getRegisterInfo ( ) const
inlineoverride

◆ getSCSPReg()

Register llvm::HexagonSubtarget::getSCSPReg ( ) const
inline

Returns the register that holds the shadow call stack pointer.

Defaults to R18, overridable with the "scs-reg-rN" subtarget features.

Definition at line 336 of file HexagonSubtarget.h.

◆ getSelectionDAGInfo()

const HexagonSelectionDAGInfo * llvm::HexagonSubtarget::getSelectionDAGInfo ( ) const
inlineoverride

Definition at line 144 of file HexagonSubtarget.h.

◆ getSMSMutations()

void HexagonSubtarget::getSMSMutations ( std::vector< std::unique_ptr< ScheduleDAGMutation > > & Mutations) const
override

Definition at line 661 of file HexagonSubtarget.cpp.

◆ getTargetLowering()

const HexagonTargetLowering * llvm::HexagonSubtarget::getTargetLowering ( ) const
inlineoverride

Definition at line 138 of file HexagonSubtarget.h.

Referenced by isTypeForHVX().

◆ getTargetTriple()

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

Definition at line 124 of file HexagonSubtarget.h.

◆ getTypeAlignment()

Align llvm::HexagonSubtarget::getTypeAlignment ( MVT Ty) const
inline

Definition at line 426 of file HexagonSubtarget.h.

References getVectorLength(), and isHVXVectorType().

◆ getVectorLength()

unsigned llvm::HexagonSubtarget::getVectorLength ( ) const
inline

◆ hasMemNoShuf()

bool llvm::HexagonSubtarget::hasMemNoShuf ( ) const
inline

Definition at line 328 of file HexagonSubtarget.h.

◆ hasV55Ops()

bool llvm::HexagonSubtarget::hasV55Ops ( ) const
inline

Definition at line 165 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V55.

◆ hasV55OpsOnly()

bool llvm::HexagonSubtarget::hasV55OpsOnly ( ) const
inline

Definition at line 168 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V55.

◆ hasV5Ops()

bool llvm::HexagonSubtarget::hasV5Ops ( ) const
inline

Definition at line 159 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V5.

◆ hasV5OpsOnly()

bool llvm::HexagonSubtarget::hasV5OpsOnly ( ) const
inline

Definition at line 162 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V5.

◆ hasV60Ops()

bool llvm::HexagonSubtarget::hasV60Ops ( ) const
inline

Definition at line 171 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V60.

Referenced by initializeSubtargetDependencies().

◆ hasV60OpsOnly()

bool llvm::HexagonSubtarget::hasV60OpsOnly ( ) const
inline

Definition at line 174 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V60.

Referenced by cannotCoexistAsymm().

◆ hasV62Ops()

bool llvm::HexagonSubtarget::hasV62Ops ( ) const
inline

Definition at line 177 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V62.

◆ hasV62OpsOnly()

bool llvm::HexagonSubtarget::hasV62OpsOnly ( ) const
inline

Definition at line 180 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V62.

◆ hasV65Ops()

bool llvm::HexagonSubtarget::hasV65Ops ( ) const
inline

◆ hasV65OpsOnly()

bool llvm::HexagonSubtarget::hasV65OpsOnly ( ) const
inline

Definition at line 186 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V65.

◆ hasV66Ops()

bool llvm::HexagonSubtarget::hasV66Ops ( ) const
inline

Definition at line 189 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V66.

◆ hasV66OpsOnly()

bool llvm::HexagonSubtarget::hasV66OpsOnly ( ) const
inline

Definition at line 192 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V66.

◆ hasV67Ops()

bool llvm::HexagonSubtarget::hasV67Ops ( ) const
inline

Definition at line 195 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V67.

◆ hasV67OpsOnly()

bool llvm::HexagonSubtarget::hasV67OpsOnly ( ) const
inline

Definition at line 198 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V67.

◆ hasV68Ops()

bool llvm::HexagonSubtarget::hasV68Ops ( ) const
inline

Definition at line 201 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V68.

Referenced by initializeSubtargetDependencies().

◆ hasV68OpsOnly()

bool llvm::HexagonSubtarget::hasV68OpsOnly ( ) const
inline

Definition at line 204 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V68.

◆ hasV69Ops()

bool llvm::HexagonSubtarget::hasV69Ops ( ) const
inline

Definition at line 207 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V69.

◆ hasV69OpsOnly()

bool llvm::HexagonSubtarget::hasV69OpsOnly ( ) const
inline

Definition at line 210 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V69.

◆ hasV71Ops()

bool llvm::HexagonSubtarget::hasV71Ops ( ) const
inline

Definition at line 213 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V71.

◆ hasV71OpsOnly()

bool llvm::HexagonSubtarget::hasV71OpsOnly ( ) const
inline

Definition at line 216 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V71.

◆ hasV73Ops()

bool llvm::HexagonSubtarget::hasV73Ops ( ) const
inline

Definition at line 219 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V73.

◆ hasV73OpsOnly()

bool llvm::HexagonSubtarget::hasV73OpsOnly ( ) const
inline

Definition at line 222 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V73.

◆ hasV75Ops()

bool llvm::HexagonSubtarget::hasV75Ops ( ) const
inline

Definition at line 225 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V75.

◆ hasV75OpsOnly()

bool llvm::HexagonSubtarget::hasV75OpsOnly ( ) const
inline

Definition at line 228 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V75.

◆ hasV79Ops()

bool llvm::HexagonSubtarget::hasV79Ops ( ) const
inline

Definition at line 231 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V79.

◆ hasV79OpsOnly()

bool llvm::HexagonSubtarget::hasV79OpsOnly ( ) const
inline

Definition at line 234 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V79.

◆ hasV81Ops()

bool llvm::HexagonSubtarget::hasV81Ops ( ) const
inline

Definition at line 243 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V81.

◆ hasV81OpsOnly()

bool llvm::HexagonSubtarget::hasV81OpsOnly ( ) const
inline

Definition at line 246 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V81.

◆ hasV83Ops()

bool llvm::HexagonSubtarget::hasV83Ops ( ) const
inline

Definition at line 252 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V83.

◆ hasV83OpsOnly()

bool llvm::HexagonSubtarget::hasV83OpsOnly ( ) const
inline

Definition at line 255 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V83.

◆ hasV85Ops()

bool llvm::HexagonSubtarget::hasV85Ops ( ) const
inline

Definition at line 261 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V85.

◆ hasV85OpsOnly()

bool llvm::HexagonSubtarget::hasV85OpsOnly ( ) const
inline

Definition at line 264 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and llvm::Hexagon::V85.

◆ initializeSubtargetDependencies()

◆ initLibcallLoweringInfo()

void HexagonSubtarget::initLibcallLoweringInfo ( LibcallLoweringInfo & Info) const
override

Definition at line 188 of file HexagonSubtarget.cpp.

◆ isEnvironmentMusl()

bool llvm::HexagonSubtarget::isEnvironmentMusl ( ) const
inline

Definition at line 125 of file HexagonSubtarget.h.

References llvm::Triple::Musl.

◆ isHLXElementType()

bool HexagonSubtarget::isHLXElementType ( MVT Ty) const

Definition at line 293 of file HexagonSubtarget.cpp.

References getHLXElementTypes(), llvm::is_contained(), and useHLXOps().

◆ isHLXVectorType()

◆ isHVXElementType()

bool HexagonSubtarget::isHVXElementType ( MVT Ty,
bool IncludeBool = false ) const

Definition at line 216 of file HexagonSubtarget.cpp.

References getHVXElementTypes(), llvm::is_contained(), and useHVXOps().

◆ isHVXVectorType()

◆ isRegisterReservedByUser()

bool llvm::HexagonSubtarget::isRegisterReservedByUser ( Register i) const
inlineoverride

Definition at line 329 of file HexagonSubtarget.h.

References assert(), and llvm::Register::id().

◆ isTinyCore()

bool llvm::HexagonSubtarget::isTinyCore ( ) const
inline

Definition at line 287 of file HexagonSubtarget.h.

Referenced by initializeSubtargetDependencies(), and isTinyCoreWithDuplex().

◆ isTinyCoreWithDuplex()

bool llvm::HexagonSubtarget::isTinyCoreWithDuplex ( ) const
inline

Definition at line 288 of file HexagonSubtarget.h.

References isTinyCore().

◆ isTypeForHLX()

◆ isTypeForHVX()

◆ isXRaySupported()

bool llvm::HexagonSubtarget::isXRaySupported ( ) const
inlineoverride

Definition at line 157 of file HexagonSubtarget.h.

◆ noreturnStackElim()

bool llvm::HexagonSubtarget::noreturnStackElim ( ) const
inline

Definition at line 340 of file HexagonSubtarget.h.

◆ ParseSubtargetFeatures()

void llvm::HexagonSubtarget::ParseSubtargetFeatures ( StringRef CPU,
StringRef TuneCPU,
StringRef FS )

ParseSubtargetFeatures - Parses features string setting specified subtarget options.

Definition of function is auto generated by tblgen.

Referenced by initializeSubtargetDependencies().

◆ useAA()

bool HexagonSubtarget::useAA ( ) const
override

Enable use of alias analysis during code generation (during MI scheduling, DAGCombine, etc.).

Definition at line 568 of file HexagonSubtarget.cpp.

References llvm::None, and OptLevel.

◆ useAudioOps()

bool llvm::HexagonSubtarget::useAudioOps ( ) const
inline

Definition at line 271 of file HexagonSubtarget.h.

◆ useBSBScheduling()

bool llvm::HexagonSubtarget::useBSBScheduling ( ) const
inline

Definition at line 342 of file HexagonSubtarget.h.

References UseBSBScheduling.

◆ useCabac()

bool llvm::HexagonSubtarget::useCabac ( ) const
inline

Definition at line 285 of file HexagonSubtarget.h.

◆ useCompound()

bool llvm::HexagonSubtarget::useCompound ( ) const
inline

Definition at line 272 of file HexagonSubtarget.h.

◆ useHLX2048BOps()

bool llvm::HexagonSubtarget::useHLX2048BOps ( ) const
inline

Definition at line 282 of file HexagonSubtarget.h.

Referenced by getHLXVectorLength().

◆ useHLXOps()

bool llvm::HexagonSubtarget::useHLXOps ( ) const
inline

◆ useHMXOps()

bool llvm::HexagonSubtarget::useHMXOps ( ) const
inline

Definition at line 280 of file HexagonSubtarget.h.

◆ useHVX128BOps()

bool llvm::HexagonSubtarget::useHVX128BOps ( ) const
inline

Definition at line 325 of file HexagonSubtarget.h.

References useHVXOps().

Referenced by getVectorLength().

◆ useHVX64BOps()

bool llvm::HexagonSubtarget::useHVX64BOps ( ) const
inline

Definition at line 326 of file HexagonSubtarget.h.

References useHVXOps().

Referenced by getVectorLength().

◆ useHVXFloatingPoint()

bool llvm::HexagonSubtarget::useHVXFloatingPoint ( ) const
inline

Definition at line 294 of file HexagonSubtarget.h.

Referenced by getHVXElementTypes(), and isTypeForHVX().

◆ useHVXIEEEFPOps()

bool llvm::HexagonSubtarget::useHVXIEEEFPOps ( ) const
inline

Definition at line 290 of file HexagonSubtarget.h.

References useHVXOps().

◆ useHVXOps()

◆ useHVXQFloatOps()

bool llvm::HexagonSubtarget::useHVXQFloatOps ( ) const
inline

Definition at line 291 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V68.

◆ useHVXV60Ops()

bool llvm::HexagonSubtarget::useHVXV60Ops ( ) const
inline

Definition at line 298 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V60.

◆ useHVXV62Ops()

bool llvm::HexagonSubtarget::useHVXV62Ops ( ) const
inline

Definition at line 301 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V62.

◆ useHVXV65Ops()

bool llvm::HexagonSubtarget::useHVXV65Ops ( ) const
inline

Definition at line 304 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V65.

◆ useHVXV66Ops()

bool llvm::HexagonSubtarget::useHVXV66Ops ( ) const
inline

Definition at line 307 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V66.

◆ useHVXV67Ops()

bool llvm::HexagonSubtarget::useHVXV67Ops ( ) const
inline

Definition at line 310 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V67.

◆ useHVXV68Ops()

bool llvm::HexagonSubtarget::useHVXV68Ops ( ) const
inline

◆ useHVXV69Ops()

bool llvm::HexagonSubtarget::useHVXV69Ops ( ) const
inline

Definition at line 316 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V69.

◆ useHVXV71Ops()

bool llvm::HexagonSubtarget::useHVXV71Ops ( ) const
inline

Definition at line 319 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V71.

◆ useHVXV73Ops()

bool llvm::HexagonSubtarget::useHVXV73Ops ( ) const
inline

Definition at line 322 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V73.

◆ useHVXV79Ops()

bool llvm::HexagonSubtarget::useHVXV79Ops ( ) const
inline

Definition at line 237 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V79.

◆ useHVXV79OpsOnly()

bool llvm::HexagonSubtarget::useHVXV79OpsOnly ( ) const
inline

Definition at line 240 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V79.

◆ useHVXV81Ops()

bool llvm::HexagonSubtarget::useHVXV81Ops ( ) const
inline

Definition at line 249 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V81.

Referenced by getHVXElementTypes().

◆ useHVXV83Ops()

bool llvm::HexagonSubtarget::useHVXV83Ops ( ) const
inline

Definition at line 258 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V83.

◆ useHVXV85Ops()

bool llvm::HexagonSubtarget::useHVXV85Ops ( ) const
inline

Definition at line 267 of file HexagonSubtarget.h.

References HexagonHVXVersion, and llvm::Hexagon::V85.

◆ useLongCalls()

bool llvm::HexagonSubtarget::useLongCalls ( ) const
inline

Definition at line 273 of file HexagonSubtarget.h.

◆ useMemops()

bool llvm::HexagonSubtarget::useMemops ( ) const
inline

Definition at line 274 of file HexagonSubtarget.h.

◆ useNewValueJumps()

bool llvm::HexagonSubtarget::useNewValueJumps ( ) const
inline

Definition at line 276 of file HexagonSubtarget.h.

◆ useNewValueStores()

bool llvm::HexagonSubtarget::useNewValueStores ( ) const
inline

Definition at line 277 of file HexagonSubtarget.h.

◆ usePackets()

bool llvm::HexagonSubtarget::usePackets ( ) const
inline

Definition at line 275 of file HexagonSubtarget.h.

◆ usePredicatedCalls()

bool HexagonSubtarget::usePredicatedCalls ( ) const

Definition at line 676 of file HexagonSubtarget.cpp.

References EnablePredicatedCalls.

◆ useSmallData()

bool llvm::HexagonSubtarget::useSmallData ( ) const
inline

Definition at line 278 of file HexagonSubtarget.h.

◆ useZRegOps()

bool llvm::HexagonSubtarget::useZRegOps ( ) const
inline

Definition at line 279 of file HexagonSubtarget.h.

Member Data Documentation

◆ HexagonArchVersion

Hexagon::ArchEnum llvm::HexagonSubtarget::HexagonArchVersion

Definition at line 79 of file HexagonSubtarget.h.

Referenced by getHexagonArchVersion(), and initializeSubtargetDependencies().

◆ HexagonHVXVersion

◆ OptLevel

CodeGenOptLevel llvm::HexagonSubtarget::OptLevel

Definition at line 81 of file HexagonSubtarget.h.

Referenced by HexagonSubtarget(), and useAA().

◆ UseBSBScheduling

bool llvm::HexagonSubtarget::UseBSBScheduling

True if the target should use Back-Skip-Back scheduling.

This is the default for V60.

Definition at line 84 of file HexagonSubtarget.h.

Referenced by initializeSubtargetDependencies(), and useBSBScheduling().


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