LLVM  4.0.0
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
llvm::HexagonSubtarget Class Reference

#include <HexagonSubtarget.h>

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

Classes

class  HexagonDAGMutation
 

Public Types

enum  HexagonArchEnum { V4, V5, V55, V60 }
 

Public Member Functions

 HexagonSubtarget (const Triple &TT, StringRef CPU, StringRef FS, const TargetMachine &TM)
 
const InstrItineraryDatagetInstrItineraryData () const override
 getInstrItins - Return the instruction itineraries based on subtarget selection. More...
 
const HexagonInstrInfogetInstrInfo () const override
 
const HexagonRegisterInfogetRegisterInfo () const override
 
const HexagonTargetLoweringgetTargetLowering () const override
 
const HexagonFrameLoweringgetFrameLowering () const override
 
const HexagonSelectionDAGInfogetSelectionDAGInfo () const override
 
HexagonSubtargetinitializeSubtargetDependencies (StringRef CPU, StringRef FS)
 
void ParseSubtargetFeatures (StringRef CPU, StringRef FS)
 ParseSubtargetFeatures - Parses features string setting specified subtarget options. More...
 
bool useMemOps () const
 
bool hasV5TOps () const
 
bool hasV5TOpsOnly () const
 
bool hasV55TOps () const
 
bool hasV55TOpsOnly () const
 
bool hasV60TOps () const
 
bool hasV60TOpsOnly () const
 
bool modeIEEERndNear () const
 
bool useHVXOps () const
 
bool useHVXDblOps () const
 
bool useHVXSglOps () const
 
bool useLongCalls () const
 
bool useBSBScheduling () const
 
bool enableMachineScheduler () const override
 
bool enableMachineSchedDefaultSched () const override
 
AntiDepBreakMode getAntiDepBreakMode () const override
 
bool enablePostRAScheduler () const override
 
bool enableSubRegLiveness () const override
 
const std::string & getCPUString () const
 
unsigned getSmallDataThreshold () const
 
const HexagonArchEnumgetHexagonArchVersion () const
 
void getPostRAMutations (std::vector< std::unique_ptr< ScheduleDAGMutation >> &Mutations) const override
 
void getSMSMutations (std::vector< std::unique_ptr< ScheduleDAGMutation >> &Mutations) const override
 
void adjustSchedDependency (SUnit *def, SUnit *use, SDep &dep) const override
 Perform target specific adjustments to the latency of a schedule dependency. More...
 
unsigned getL1CacheLineSize () const
 
unsigned getL1PrefetchDistance () const
 

Public Attributes

HexagonArchEnum HexagonArchVersion
 
bool UseBSBScheduling
 True if the target should use Back-Skip-Back scheduling. More...
 

Detailed Description

Definition at line 33 of file HexagonSubtarget.h.

Member Enumeration Documentation

Enumerator
V4 
V5 
V55 
V60 

Definition at line 41 of file HexagonSubtarget.h.

Constructor & Destructor Documentation

HexagonSubtarget::HexagonSubtarget ( const Triple TT,
StringRef  CPU,
StringRef  FS,
const TargetMachine TM 
)

Member Function Documentation

void HexagonSubtarget::adjustSchedDependency ( SUnit Src,
SUnit Dst,
SDep Dep 
) const
override
bool llvm::HexagonSubtarget::enableMachineSchedDefaultSched ( ) const
inlineoverride

Definition at line 112 of file HexagonSubtarget.h.

bool HexagonSubtarget::enableMachineScheduler ( ) const
override

Definition at line 200 of file HexagonSubtarget.cpp.

References DisableHexagonMISched.

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

Definition at line 115 of file HexagonSubtarget.h.

bool HexagonSubtarget::enableSubRegLiveness ( ) const
override

Definition at line 206 of file HexagonSubtarget.cpp.

References EnableSubregLiveness.

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

Definition at line 114 of file HexagonSubtarget.h.

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

Definition at line 119 of file HexagonSubtarget.h.

const HexagonFrameLowering* llvm::HexagonSubtarget::getFrameLowering ( ) const
inlineoverride
const HexagonArchEnum& llvm::HexagonSubtarget::getHexagonArchVersion ( ) const
inline
const HexagonInstrInfo* llvm::HexagonSubtarget::getInstrInfo ( ) const
inlineoverride
const InstrItineraryData* llvm::HexagonSubtarget::getInstrItineraryData ( ) const
inlineoverride

getInstrItins - Return the instruction itineraries based on subtarget selection.

Definition at line 70 of file HexagonSubtarget.h.

unsigned HexagonSubtarget::getL1CacheLineSize ( ) const

Definition at line 386 of file HexagonSubtarget.cpp.

Referenced by llvm::HexagonTTIImpl::getCacheLineSize().

unsigned HexagonSubtarget::getL1PrefetchDistance ( ) const

Definition at line 390 of file HexagonSubtarget.cpp.

Referenced by llvm::HexagonTTIImpl::getPrefetchDistance().

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

Definition at line 186 of file HexagonSubtarget.cpp.

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

Definition at line 83 of file HexagonSubtarget.h.

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

Definition at line 122 of file HexagonSubtarget.h.

References Hexagon_SMALL_DATA_THRESHOLD.

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

Definition at line 191 of file HexagonSubtarget.cpp.

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

Definition at line 77 of file HexagonSubtarget.h.

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

Definition at line 97 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and V55.

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

Definition at line 98 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and V55.

bool llvm::HexagonSubtarget::hasV5TOps ( ) const
inline
bool llvm::HexagonSubtarget::hasV5TOpsOnly ( ) const
inline

Definition at line 96 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and V5.

bool llvm::HexagonSubtarget::hasV60TOps ( ) const
inline
bool llvm::HexagonSubtarget::hasV60TOpsOnly ( ) const
inline

Definition at line 100 of file HexagonSubtarget.h.

References getHexagonArchVersion(), and V60.

Referenced by cannotCoexistAsymm().

HexagonSubtarget & HexagonSubtarget::initializeSubtargetDependencies ( StringRef  CPU,
StringRef  FS 
)
bool llvm::HexagonSubtarget::modeIEEERndNear ( ) const
inline

Definition at line 101 of file HexagonSubtarget.h.

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

ParseSubtargetFeatures - Parses features string setting specified subtarget options.

Definition of function is auto generated by tblgen.

Referenced by initializeSubtargetDependencies().

bool llvm::HexagonSubtarget::useBSBScheduling ( ) const
inline
bool llvm::HexagonSubtarget::useHVXDblOps ( ) const
inline
bool llvm::HexagonSubtarget::useHVXOps ( ) const
inline
bool llvm::HexagonSubtarget::useHVXSglOps ( ) const
inline
bool llvm::HexagonSubtarget::useLongCalls ( ) const
inline

Definition at line 105 of file HexagonSubtarget.h.

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

Definition at line 94 of file HexagonSubtarget.h.

Member Data Documentation

HexagonArchEnum llvm::HexagonSubtarget::HexagonArchVersion

Definition at line 45 of file HexagonSubtarget.h.

Referenced by getHexagonArchVersion(), and initializeSubtargetDependencies().

bool llvm::HexagonSubtarget::UseBSBScheduling

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

This is the default for V60.

Definition at line 48 of file HexagonSubtarget.h.

Referenced by HexagonSubtarget(), and useBSBScheduling().


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