LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | List of all members
llvm::MipsSubtarget Class Reference

#include <MipsSubtarget.h>

Inheritance diagram for llvm::MipsSubtarget:
Inheritance graph
[legend]
Collaboration diagram for llvm::MipsSubtarget:
Collaboration graph
[legend]

Public Types

enum  MipsABIEnum {
  UnknownABI, O32, N32, N64,
  EABI
}
 

Public Member Functions

virtual bool enablePostRAScheduler (CodeGenOpt::Level OptLevel, AntiDepBreakMode &Mode, RegClassVector &CriticalPathRCs) const
 
bool isABI_EABI () const
 Only O32 and EABI supported right now. More...
 
bool isABI_N64 () const
 
bool isABI_N32 () const
 
bool isABI_O32 () const
 
unsigned getTargetABI () const
 
 MipsSubtarget (const std::string &TT, const std::string &CPU, const std::string &FS, bool little, Reloc::Model RM, MipsTargetMachine *TM)
 
void ParseSubtargetFeatures (StringRef CPU, StringRef FS)
 
bool hasMips32 () const
 
bool hasMips32r2 () const
 
bool hasMips64 () const
 
bool hasMips64r2 () const
 
bool isLittle () const
 
bool isFP64bit () const
 
bool isNotFP64bit () const
 
bool isGP64bit () const
 
bool isGP32bit () const
 
bool isSingleFloat () const
 
bool isNotSingleFloat () const
 
bool hasVFPU () const
 
bool inMips16Mode () const
 
bool inMips16ModeDefault () const
 
bool inMips16HardFloat () const
 
bool inMicroMipsMode () const
 
bool hasDSP () const
 
bool hasDSPR2 () const
 
bool hasMSA () const
 
bool isLinux () const
 
bool useSmallSection () const
 
bool hasStandardEncoding () const
 
bool mipsSEUsesSoftFloat () const
 
bool enableLongBranchPass () const
 
bool hasSEInReg () const
 Features related to the presence of specific instructions. More...
 
bool hasCondMov () const
 
bool hasSwap () const
 
bool hasBitCount () const
 
bool hasFPIdx () const
 
bool hasExtractInsert () const
 
const InstrItineraryDatagetInstrItineraryData () const
 
bool allowMixed16_32 () const
 
bool os16 () const
 
unsigned stackAlignment () const
 
const MipsReginfogetMReginfo () const
 
Reloc::Model getRelocationModel () const
 
void resetSubtarget (MachineFunction *MF)
 Reset the subtarget for the Mips target. More...
 

Static Public Member Functions

static bool useConstantIslands ()
 

Protected Types

enum  MipsArchEnum { Mips32, Mips32r2, Mips64, Mips64r2 }
 
enum  { NoOverride, Mips16Override, NoMips16Override }
 

Protected Attributes

MipsArchEnum MipsArchVersion
 
MipsABIEnum MipsABI
 
bool IsLittle
 
bool IsSingleFloat
 
bool IsFP64bit
 
bool IsGP64bit
 
bool HasVFPU
 
bool IsLinux
 
bool UseSmallSection
 
bool HasSEInReg
 Features related to the presence of specific instructions. More...
 
bool HasCondMov
 
bool HasSwap
 
bool HasBitCount
 
bool HasFPIdx
 
bool InMips16Mode
 
bool InMips16HardFloat
 
bool PreviousInMips16Mode
 
bool InMicroMipsMode
 
bool HasDSP
 
bool HasDSPR2
 
bool AllowMixed16_32
 
bool Os16
 
bool HasMSA
 
InstrItineraryData InstrItins
 
MipsReginfo MRI
 
Reloc::Model RM
 
enum llvm::MipsSubtarget:: { ... }  OverrideMode
 
MipsTargetMachineTM
 

Detailed Description

Definition at line 32 of file MipsSubtarget.h.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
NoOverride 
Mips16Override 
NoMips16Override 

Definition at line 129 of file MipsSubtarget.h.

Enumerator
UnknownABI 
O32 
N32 
N64 
EABI 

Definition at line 37 of file MipsSubtarget.h.

Enumerator
Mips32 
Mips32r2 
Mips64 
Mips64r2 

Definition at line 43 of file MipsSubtarget.h.

Constructor & Destructor Documentation

MipsSubtarget::MipsSubtarget ( const std::string &  TT,
const std::string &  CPU,
const std::string &  FS,
bool  little,
Reloc::Model  RM,
MipsTargetMachine TM 
)

Member Function Documentation

bool llvm::MipsSubtarget::allowMixed16_32 ( ) const
inline
bool llvm::MipsSubtarget::enableLongBranchPass ( ) const
inline

Definition at line 197 of file MipsSubtarget.h.

References allowMixed16_32(), and hasStandardEncoding().

bool MipsSubtarget::enablePostRAScheduler ( CodeGenOpt::Level  OptLevel,
AntiDepBreakMode &  Mode,
RegClassVector &  CriticalPathRCs 
) const
virtual
const InstrItineraryData& llvm::MipsSubtarget::getInstrItineraryData ( ) const
inline

Definition at line 209 of file MipsSubtarget.h.

References InstrItins.

const MipsReginfo& llvm::MipsSubtarget::getMReginfo ( ) const
inline

Definition at line 223 of file MipsSubtarget.h.

References MRI.

Referenced by llvm::MipsAsmPrinter::EmitEndOfAsmFile().

Reloc::Model llvm::MipsSubtarget::getRelocationModel ( ) const
inline
unsigned llvm::MipsSubtarget::getTargetABI ( ) const
inline

Definition at line 143 of file MipsSubtarget.h.

References MipsABI.

Referenced by llvm::MipsAsmPrinter::getCurrentABIString().

bool llvm::MipsSubtarget::hasBitCount ( ) const
inline

Definition at line 205 of file MipsSubtarget.h.

References HasBitCount.

Referenced by llvm::MipsTargetLowering::MipsTargetLowering().

bool llvm::MipsSubtarget::hasCondMov ( ) const
inline

Definition at line 203 of file MipsSubtarget.h.

References HasCondMov.

bool llvm::MipsSubtarget::hasDSP ( ) const
inline
bool llvm::MipsSubtarget::hasDSPR2 ( ) const
inline
bool llvm::MipsSubtarget::hasExtractInsert ( ) const
inline

Definition at line 207 of file MipsSubtarget.h.

References hasMips32r2(), and inMips16Mode().

Referenced by performANDCombine(), and performORCombine().

bool llvm::MipsSubtarget::hasFPIdx ( ) const
inline

Definition at line 206 of file MipsSubtarget.h.

References HasFPIdx.

bool llvm::MipsSubtarget::hasMips32 ( ) const
inline

Definition at line 155 of file MipsSubtarget.h.

References Mips32, and MipsArchVersion.

Referenced by performADDECombine(), and performSUBECombine().

bool llvm::MipsSubtarget::hasMips32r2 ( ) const
inline
bool llvm::MipsSubtarget::hasMips64 ( ) const
inline
bool llvm::MipsSubtarget::hasMips64r2 ( ) const
inline
bool llvm::MipsSubtarget::hasMSA ( ) const
inline
bool llvm::MipsSubtarget::hasSEInReg ( ) const
inline

Features related to the presence of specific instructions.

Definition at line 202 of file MipsSubtarget.h.

References HasSEInReg.

Referenced by llvm::MipsTargetLowering::MipsTargetLowering().

bool llvm::MipsSubtarget::hasStandardEncoding ( ) const
inline

Definition at line 193 of file MipsSubtarget.h.

References inMips16Mode().

Referenced by enableLongBranchPass().

bool llvm::MipsSubtarget::hasSwap ( ) const
inline

Definition at line 204 of file MipsSubtarget.h.

References HasSwap.

Referenced by llvm::MipsTargetLowering::MipsTargetLowering().

bool llvm::MipsSubtarget::hasVFPU ( ) const
inline

Definition at line 168 of file MipsSubtarget.h.

References HasVFPU.

bool llvm::MipsSubtarget::inMicroMipsMode ( ) const
inline
bool llvm::MipsSubtarget::inMips16HardFloat ( ) const
inline
bool llvm::MipsSubtarget::inMips16Mode ( ) const
inline
bool llvm::MipsSubtarget::inMips16ModeDefault ( ) const
inline

Definition at line 180 of file MipsSubtarget.h.

References InMips16Mode.

Referenced by allowMixed16_32().

bool llvm::MipsSubtarget::isABI_EABI ( ) const
inline

Only O32 and EABI supported right now.

Definition at line 139 of file MipsSubtarget.h.

References EABI, and MipsABI.

Referenced by llvm::MipsAsmPrinter::EmitStartOfAsmFile(), and MipsSubtarget().

bool llvm::MipsSubtarget::isABI_N32 ( ) const
inline
bool llvm::MipsSubtarget::isABI_N64 ( ) const
inline
bool llvm::MipsSubtarget::isABI_O32 ( ) const
inline

Definition at line 142 of file MipsSubtarget.h.

References MipsABI, and O32.

Referenced by emitELFHeaderFlagsCG(), llvm::MipsReginfo::emitMipsReginfoSectionCG(), and MipsSubtarget().

bool llvm::MipsSubtarget::isFP64bit ( ) const
inline
bool llvm::MipsSubtarget::isGP32bit ( ) const
inline

Definition at line 165 of file MipsSubtarget.h.

References IsGP64bit.

Referenced by llvm::MipsAsmPrinter::EmitStartOfAsmFile().

bool llvm::MipsSubtarget::isGP64bit ( ) const
inline

Definition at line 164 of file MipsSubtarget.h.

References IsGP64bit.

Referenced by llvm::MipsAsmPrinter::PrintAsmOperand().

bool llvm::MipsSubtarget::isLinux ( ) const
inline

Definition at line 190 of file MipsSubtarget.h.

References IsLinux.

bool llvm::MipsSubtarget::isLittle ( ) const
inline
bool llvm::MipsSubtarget::isNotFP64bit ( ) const
inline

Definition at line 163 of file MipsSubtarget.h.

References IsFP64bit.

bool llvm::MipsSubtarget::isNotSingleFloat ( ) const
inline

Definition at line 167 of file MipsSubtarget.h.

References IsSingleFloat.

bool llvm::MipsSubtarget::isSingleFloat ( ) const
inline
bool MipsSubtarget::mipsSEUsesSoftFloat ( ) const
bool llvm::MipsSubtarget::os16 ( ) const
inline

Definition at line 213 of file MipsSubtarget.h.

References Os16.

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

ParseSubtargetFeatures - Parses features string setting specified subtarget options. Definition of function is auto generated by tblgen.

Referenced by MipsSubtarget().

void MipsSubtarget::resetSubtarget ( MachineFunction MF)
unsigned llvm::MipsSubtarget::stackAlignment ( ) const
inline

Definition at line 220 of file MipsSubtarget.h.

References hasMips64().

bool MipsSubtarget::useConstantIslands ( )
static

Definition at line 173 of file MipsSubtarget.cpp.

References llvm::dbgs(), DEBUG, and Mips16ConstantIslands.

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

Member Data Documentation

bool llvm::MipsSubtarget::AllowMixed16_32
protected

Definition at line 109 of file MipsSubtarget.h.

Referenced by allowMixed16_32().

bool llvm::MipsSubtarget::HasBitCount
protected

Definition at line 88 of file MipsSubtarget.h.

Referenced by hasBitCount(), and MipsSubtarget().

bool llvm::MipsSubtarget::HasCondMov
protected

Definition at line 82 of file MipsSubtarget.h.

Referenced by hasCondMov().

bool llvm::MipsSubtarget::HasDSP
protected

Definition at line 106 of file MipsSubtarget.h.

Referenced by hasDSP().

bool llvm::MipsSubtarget::HasDSPR2
protected

Definition at line 106 of file MipsSubtarget.h.

Referenced by hasDSPR2().

bool llvm::MipsSubtarget::HasFPIdx
protected

Definition at line 91 of file MipsSubtarget.h.

Referenced by hasFPIdx().

bool llvm::MipsSubtarget::HasMSA
protected

Definition at line 117 of file MipsSubtarget.h.

Referenced by hasMSA().

bool llvm::MipsSubtarget::HasSEInReg
protected

Features related to the presence of specific instructions.

Definition at line 79 of file MipsSubtarget.h.

Referenced by hasSEInReg().

bool llvm::MipsSubtarget::HasSwap
protected

Definition at line 85 of file MipsSubtarget.h.

Referenced by hasSwap().

bool llvm::MipsSubtarget::HasVFPU
protected

Definition at line 68 of file MipsSubtarget.h.

Referenced by hasVFPU().

bool llvm::MipsSubtarget::InMicroMipsMode
protected

Definition at line 103 of file MipsSubtarget.h.

Referenced by inMicroMipsMode().

bool llvm::MipsSubtarget::InMips16HardFloat
protected

Definition at line 97 of file MipsSubtarget.h.

Referenced by inMips16HardFloat(), and mipsSEUsesSoftFloat().

bool llvm::MipsSubtarget::InMips16Mode
protected

Definition at line 94 of file MipsSubtarget.h.

Referenced by inMips16Mode(), inMips16ModeDefault(), and MipsSubtarget().

InstrItineraryData llvm::MipsSubtarget::InstrItins
protected

Definition at line 119 of file MipsSubtarget.h.

Referenced by getInstrItineraryData(), and MipsSubtarget().

bool llvm::MipsSubtarget::IsFP64bit
protected

Definition at line 62 of file MipsSubtarget.h.

Referenced by isFP64bit(), and isNotFP64bit().

bool llvm::MipsSubtarget::IsGP64bit
protected

Definition at line 65 of file MipsSubtarget.h.

Referenced by isGP32bit(), and isGP64bit().

bool llvm::MipsSubtarget::IsLinux
protected

Definition at line 71 of file MipsSubtarget.h.

Referenced by isLinux(), and MipsSubtarget().

bool llvm::MipsSubtarget::IsLittle
protected

Definition at line 54 of file MipsSubtarget.h.

Referenced by isLittle().

bool llvm::MipsSubtarget::IsSingleFloat
protected

Definition at line 59 of file MipsSubtarget.h.

Referenced by isNotSingleFloat(), and isSingleFloat().

MipsABIEnum llvm::MipsSubtarget::MipsABI
protected

Definition at line 51 of file MipsSubtarget.h.

Referenced by getTargetABI(), isABI_EABI(), isABI_N32(), isABI_N64(), isABI_O32(), and MipsSubtarget().

MipsArchEnum llvm::MipsSubtarget::MipsArchVersion
protected

Definition at line 48 of file MipsSubtarget.h.

Referenced by hasMips32(), hasMips32r2(), hasMips64(), and hasMips64r2().

MipsReginfo llvm::MipsSubtarget::MRI
protected

Definition at line 122 of file MipsSubtarget.h.

Referenced by getMReginfo().

bool llvm::MipsSubtarget::Os16
protected

Definition at line 114 of file MipsSubtarget.h.

Referenced by os16().

enum { ... } llvm::MipsSubtarget::OverrideMode

Referenced by inMips16Mode(), and resetSubtarget().

bool llvm::MipsSubtarget::PreviousInMips16Mode
protected

Definition at line 100 of file MipsSubtarget.h.

Referenced by MipsSubtarget(), and resetSubtarget().

Reloc::Model llvm::MipsSubtarget::RM
protected

Definition at line 125 of file MipsSubtarget.h.

Referenced by getRelocationModel(), and MipsSubtarget().

MipsTargetMachine* llvm::MipsSubtarget::TM
protected

Definition at line 131 of file MipsSubtarget.h.

Referenced by mipsSEUsesSoftFloat(), and resetSubtarget().

bool llvm::MipsSubtarget::UseSmallSection
protected

Definition at line 74 of file MipsSubtarget.h.

Referenced by MipsSubtarget(), and useSmallSection().


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