LLVM: llvm::M68kSubtarget Class Reference (original) (raw)

#include "[Target/M68k/M68kSubtarget.h](M68kSubtarget%5F8h%5Fsource.html)"

Public Member Functions
M68kSubtarget (const Triple &TT, StringRef CPU, StringRef FS, const M68kTargetMachine &_TM)
This constructor initializes the data members to match that of the specified triple.
~M68kSubtarget () override
void ParseSubtargetFeatures (StringRef CPU, StringRef TuneCPU, StringRef FS)
Parses features string setting specified subtarget options.
bool atLeastM68000 () const
bool atLeastM68010 () const
bool atLeastM68020 () const
bool atLeastM68030 () const
bool atLeastM68040 () const
bool atLeastM68060 () const
bool hasFPU () const
Floating point support.
bool atLeastM68881 () const
bool atLeastM68882 () const
bool useSmallSection () const
const Triple & getTargetTriple () const
bool isTargetELF () const
bool isLegalToCallImmediateAddr () const
Return true if the subtarget allows calls to immediate address.
bool isPositionIndependent () const
bool isRegisterReservedByUser (Register R) const override
unsigned char classifyLocalReference (const GlobalValue *GV) const
Classify a global variable reference for the current subtarget according to how we should reference it in a non-pcrel context.
unsigned char classifyGlobalReference (const GlobalValue *GV, const Module &M) const
Classify a global variable reference for the current subtarget according to how we should reference it in a non-pcrel context.
unsigned char classifyGlobalReference (const GlobalValue *GV) const
unsigned char classifyExternalReference (const Module &M) const
Classify a external variable reference for the current subtarget according to how we should reference it in a non-pcrel context.
unsigned char classifyGlobalFunctionReference (const GlobalValue *GV, const Module &M) const
Classify a global function reference for the current subtarget.
unsigned char classifyGlobalFunctionReference (const GlobalValue *GV) const override
unsigned char classifyBlockAddressReference () const
Classify a blockaddress reference for the current subtarget according to how we should reference it in a non-pcrel context.
unsigned getJumpTableEncoding () const
Align getStackAlignment () const
TODO this must be controlled by options like -malign-int and -mshort.
unsigned getSlotSize () const
getSlotSize - Stack slot size in bytes.
M68kSubtarget & initializeSubtargetDependencies (StringRef CPU, Triple TT, StringRef FS, const M68kTargetMachine &TM)
const M68kInstrInfo * getInstrInfo () const override
const M68kFrameLowering * getFrameLowering () const override
const M68kRegisterInfo * getRegisterInfo () const override
const M68kTargetLowering * getTargetLowering () const override
const InstrItineraryData * getInstrItineraryData () const override
const SelectionDAGTargetInfo * getSelectionDAGInfo () const override
const CallLowering * getCallLowering () const override
InstructionSelector * getInstructionSelector () const override
const LegalizerInfo * getLegalizerInfo () const override
const RegisterBankInfo * getRegBankInfo () const override
Protected Types
enum SubtargetEnum { M00, M10, M20, M30, M40, M60 }
enum FPKindEnum { M881, M882 }
Protected Attributes
SubtargetEnum SubtargetKind = M00
std::optional< FPKindEnum > FPUKind
std::bitset< M68k::NUM_TARGET_REGS > UserReservedRegister
InstrItineraryData InstrItins
bool UseSmallSection = true
Small section is used.
const M68kTargetMachine & TM
M68kInstrInfo InstrInfo
M68kFrameLowering FrameLowering
M68kTargetLowering TLInfo
unsigned stackAlignment = 8
The minimum alignment known to hold of the stack frame on entry to the function and which must be maintained by every function.
Triple TargetTriple
std::unique_ptr< const SelectionDAGTargetInfo > TSInfo
std::unique_ptr< CallLowering > CallLoweringInfo
std::unique_ptr< InstructionSelector > InstSelector
std::unique_ptr< LegalizerInfo > Legalizer
std::unique_ptr< RegisterBankInfo > RegBankInfo

Definition at line 41 of file M68kSubtarget.h.

FPKindEnum

SubtargetEnum

This constructor initializes the data members to match that of the specified triple.

Definition at line 50 of file M68kSubtarget.cpp.

References CallLoweringInfo, llvm::createM68kInstructionSelector(), FrameLowering, getRegisterInfo(), getStackAlignment(), getTargetLowering(), initializeSubtargetDependencies(), InstrInfo, InstSelector, Legalizer, RegBankInfo, TargetTriple, TLInfo, TM, and TSInfo.

Referenced by initializeSubtargetDependencies().

~M68kSubtarget()

M68kSubtarget::~M68kSubtarget ( ) overridedefault

atLeastM68000()

bool llvm::M68kSubtarget::atLeastM68000 ( ) const inline

atLeastM68010()

bool llvm::M68kSubtarget::atLeastM68010 ( ) const inline

atLeastM68020()

bool llvm::M68kSubtarget::atLeastM68020 ( ) const inline

atLeastM68030()

bool llvm::M68kSubtarget::atLeastM68030 ( ) const inline

atLeastM68040()

bool llvm::M68kSubtarget::atLeastM68040 ( ) const inline

atLeastM68060()

bool llvm::M68kSubtarget::atLeastM68060 ( ) const inline

atLeastM68881()

bool llvm::M68kSubtarget::atLeastM68881 ( ) const inline

atLeastM68882()

bool llvm::M68kSubtarget::atLeastM68882 ( ) const inline

classifyBlockAddressReference()

unsigned char M68kSubtarget::classifyBlockAddressReference ( ) const

classifyExternalReference()

classifyGlobalFunctionReference() [1/2]

classifyGlobalFunctionReference() [2/2]

classifyGlobalReference() [1/2]

classifyGlobalReference() [2/2]

Classify a global variable reference for the current subtarget according to how we should reference it in a non-pcrel context.

Definition at line 238 of file M68kSubtarget.cpp.

References atLeastM68020(), classifyLocalReference(), isPositionIndependent(), llvm::CodeModel::Kernel, llvm::CodeModel::Large, llvm_unreachable, llvm::CodeModel::Medium, llvm::M68kII::MO_ABSOLUTE_ADDRESS, llvm::M68kII::MO_GOTOFF, llvm::M68kII::MO_GOTPCREL, llvm::M68kII::MO_PC_RELATIVE_ADDRESS, llvm::CodeModel::Small, and TM.

Referenced by classifyGlobalReference().

classifyLocalReference()

Classify a global variable reference for the current subtarget according to how we should reference it in a non-pcrel context.

Definition at line 189 of file M68kSubtarget.cpp.

References atLeastM68020(), isPositionIndependent(), llvm::CodeModel::Kernel, llvm::CodeModel::Large, llvm_unreachable, llvm::CodeModel::Medium, llvm::M68kII::MO_ABSOLUTE_ADDRESS, llvm::M68kII::MO_GOTOFF, llvm::M68kII::MO_PC_RELATIVE_ADDRESS, llvm::CodeModel::Small, and TM.

Referenced by classifyExternalReference(), and classifyGlobalReference().

getCallLowering()

getFrameLowering()

getInstrInfo()

getInstrItineraryData()

getInstructionSelector()

getJumpTableEncoding()

unsigned M68kSubtarget::getJumpTableEncoding ( ) const

getLegalizerInfo()

getRegBankInfo()

getRegisterInfo()

getSelectionDAGInfo()

getSlotSize()

unsigned llvm::M68kSubtarget::getSlotSize ( ) const inline

getStackAlignment()

Align llvm::M68kSubtarget::getStackAlignment ( ) const inline

getTargetLowering()

getTargetTriple()

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

hasFPU()

bool llvm::M68kSubtarget::hasFPU ( ) const inline

initializeSubtargetDependencies()

isLegalToCallImmediateAddr()

bool M68kSubtarget::isLegalToCallImmediateAddr ( ) const

Return true if the subtarget allows calls to immediate address.

Definition at line 92 of file M68kSubtarget.cpp.

isPositionIndependent()

bool M68kSubtarget::isPositionIndependent ( ) const

isRegisterReservedByUser()

bool llvm::M68kSubtarget::isRegisterReservedByUser ( Register R) const inlineoverride

isTargetELF()

bool llvm::M68kSubtarget::isTargetELF ( ) const inline

ParseSubtargetFeatures()

useSmallSection()

bool llvm::M68kSubtarget::useSmallSection ( ) const inline

CallLoweringInfo

std::unique_ptr<CallLowering> llvm::M68kSubtarget::CallLoweringInfo protected

FPUKind

std::optional<FPKindEnum> llvm::M68kSubtarget::FPUKind protected

FrameLowering

InstrInfo

InstrItins

InstSelector

Legalizer

RegBankInfo

stackAlignment

unsigned llvm::M68kSubtarget::stackAlignment = 8 protected

SubtargetKind

SubtargetEnum llvm::M68kSubtarget::SubtargetKind = M00 protected

TargetTriple

Triple llvm::M68kSubtarget::TargetTriple protected

TLInfo

TM

TSInfo

UserReservedRegister

std::bitsetM68k::NUM\_TARGET\_REGS llvm::M68kSubtarget::UserReservedRegister protected

UseSmallSection

bool llvm::M68kSubtarget::UseSmallSection = true protected

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