LLVM API Documentation

Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes
llvm::MipsSubtarget Class Reference

#include <MipsSubtarget.h>

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

List of all members.

Public Types

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

Public Member Functions

bool enablePostMachineScheduler () const override
 This overrides the PostRAScheduler bit in the SchedModel for each CPU.
void getCriticalPathRCs (RegClassVector &CriticalPathRCs) const override
CodeGenOpt::Level getOptLevelToEnablePostRAScheduler () const override
bool isABI_EABI () const
 Only O32 and EABI supported right now.
bool isABI_N64 () const
bool isABI_N32 () const
bool isABI_O32 () const
bool isABI_FPXX () const
unsigned getTargetABI () const
 MipsSubtarget (const std::string &TT, const std::string &CPU, const std::string &FS, bool little, MipsTargetMachine *TM)
void ParseSubtargetFeatures (StringRef CPU, StringRef FS)
bool hasMips1 () const
bool hasMips2 () const
bool hasMips3 () const
bool hasMips4 () const
bool hasMips5 () const
bool hasMips4_32 () const
bool hasMips4_32r2 () const
bool hasMips32 () const
bool hasMips32r2 () const
bool hasMips32r6 () const
bool hasMips64 () const
bool hasMips64r2 () const
bool hasMips64r6 () const
bool hasCnMips () const
bool isLittle () const
bool isABICalls () const
bool isFPXX () const
bool isFP64bit () const
bool useOddSPReg () const
bool noOddSPReg () const
bool isNaN2008 () const
bool isGP64bit () const
bool isGP32bit () const
unsigned getGPRSizeInBytes () const
bool isSingleFloat () 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 abiUsesSoftFloat () const
bool enableLongBranchPass () const
bool hasExtractInsert () const
 Features related to the presence of specific instructions.
bool hasMTHC1 () const
bool allowMixed16_32 () const
bool os16 () const
bool isTargetNaCl () const
unsigned stackAlignment () const
Reloc::Model getRelocationModel () const
MipsSubtargetinitializeSubtargetDependencies (StringRef CPU, StringRef FS, const TargetMachine *TM)
bool systemSupportsUnalignedAccess () const
void setHelperClassesMips16 ()
void setHelperClassesMipsSE ()
const MipsSelectionDAGInfogetSelectionDAGInfo () const override
const DataLayoutgetDataLayout () const override
const MipsInstrInfogetInstrInfo () const override
const TargetFrameLoweringgetFrameLowering () const override
const MipsRegisterInfogetRegisterInfo () const override
const MipsTargetLoweringgetTargetLowering () const override
const InstrItineraryDatagetInstrItineraryData () const override

Static Public Member Functions

static bool useConstantIslands ()

Protected Types

enum  MipsArchEnum {
  Mips1, Mips2, Mips32, Mips32r2,
  Mips32r6, Mips3, Mips4, Mips5,
  Mips64, Mips64r2, Mips64r6
}
enum  { NoOverride, Mips16Override, NoMips16Override }

Protected Attributes

MipsArchEnum MipsArchVersion
MipsABIEnum MipsABI
bool IsLittle
bool IsSingleFloat
bool IsFPXX
bool NoABICalls
bool IsFP64bit
bool UseOddSPReg
bool IsNaN2008bit
bool IsGP64bit
bool HasVFPU
bool HasCnMips
bool IsLinux
bool UseSmallSection
bool HasMips3_32
 Features related to the presence of specific instructions.
bool HasMips3_32r2
bool HasMips4_32
bool HasMips4_32r2
bool HasMips5_32r2
bool InMips16Mode
bool InMips16HardFloat
bool PreviousInMips16Mode
bool InMicroMipsMode
bool HasDSP
bool HasDSPR2
bool AllowMixed16_32
bool Os16
bool HasMSA
InstrItineraryData InstrItins
enum llvm::MipsSubtarget:: { ... }  OverrideMode
MipsTargetMachineTM
Triple TargetTriple
const DataLayout DL
const MipsSelectionDAGInfo TSInfo
std::unique_ptr< const
MipsInstrInfo
InstrInfo
std::unique_ptr< const
MipsFrameLowering
FrameLowering
std::unique_ptr< const
MipsTargetLowering
TLInfo

Detailed Description

Definition at line 35 of file MipsSubtarget.h.


Member Enumeration Documentation

anonymous enum [protected]
Enumerator:
NoOverride 
Mips16Override 
NoMips16Override 

Definition at line 142 of file MipsSubtarget.h.

Enumerator:
UnknownABI 
O32 
N32 
N64 
EABI 

Definition at line 40 of file MipsSubtarget.h.

Enumerator:
Mips1 
Mips2 
Mips32 
Mips32r2 
Mips32r6 
Mips3 
Mips4 
Mips5 
Mips64 
Mips64r2 
Mips64r6 

Definition at line 45 of file MipsSubtarget.h.


Constructor & Destructor Documentation

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

Member Function Documentation

Definition at line 237 of file MipsSubtarget.h.

References allowMixed16_32(), and hasStandardEncoding().

This overrides the PostRAScheduler bit in the SchedModel for each CPU.

This overrides the PostRAScheduler bit in the SchedModel for any CPU.

Definition at line 181 of file MipsSubtarget.cpp.

void MipsSubtarget::getCriticalPathRCs ( RegClassVector &  CriticalPathRCs) const [override]

Definition at line 183 of file MipsSubtarget.cpp.

References isGP64bit().

const DataLayout* llvm::MipsSubtarget::getDataLayout ( ) const [inline, override]

Definition at line 278 of file MipsSubtarget.h.

References DL.

Definition at line 280 of file MipsSubtarget.h.

References FrameLowering.

Definition at line 212 of file MipsSubtarget.h.

References isGP64bit().

const MipsInstrInfo* llvm::MipsSubtarget::getInstrInfo ( ) const [inline, override]

Definition at line 279 of file MipsSubtarget.h.

References InstrInfo.

Definition at line 289 of file MipsSubtarget.h.

References InstrItins.

Definition at line 189 of file MipsSubtarget.cpp.

References Aggressive.

Definition at line 283 of file MipsSubtarget.h.

References InstrInfo.

Definition at line 275 of file MipsSubtarget.h.

References TSInfo.

Definition at line 166 of file MipsSubtarget.h.

References MipsABI.

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

Definition at line 286 of file MipsSubtarget.h.

References TLInfo.

bool llvm::MipsSubtarget::hasDSP ( ) const [inline]
bool llvm::MipsSubtarget::hasDSPR2 ( ) const [inline]

Features related to the presence of specific instructions.

Definition at line 242 of file MipsSubtarget.h.

References hasMips32r2(), and inMips16Mode().

Referenced by performANDCombine(), and performORCombine().

bool llvm::MipsSubtarget::hasMips1 ( ) const [inline]

Definition at line 177 of file MipsSubtarget.h.

References Mips1, and MipsArchVersion.

bool llvm::MipsSubtarget::hasMips2 ( ) const [inline]

Definition at line 178 of file MipsSubtarget.h.

References Mips2, and MipsArchVersion.

bool llvm::MipsSubtarget::hasMips3 ( ) const [inline]

Definition at line 179 of file MipsSubtarget.h.

References Mips3, and MipsArchVersion.

bool llvm::MipsSubtarget::hasMips4 ( ) const [inline]

Definition at line 180 of file MipsSubtarget.h.

References Mips4, and MipsArchVersion.

Definition at line 182 of file MipsSubtarget.h.

References HasMips4_32.

Definition at line 183 of file MipsSubtarget.h.

References HasMips4_32r2.

bool llvm::MipsSubtarget::hasMips5 ( ) const [inline]

Definition at line 181 of file MipsSubtarget.h.

References Mips5, and MipsArchVersion.

Definition at line 196 of file MipsSubtarget.h.

References Mips64r2, Mips64r6, and MipsArchVersion.

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

Definition at line 199 of file MipsSubtarget.h.

References Mips64r6, and MipsArchVersion.

Referenced by llvm::MipsSETargetLowering::MipsSETargetLowering(), and MipsSubtarget().

bool llvm::MipsSubtarget::hasMSA ( ) const [inline]
bool llvm::MipsSubtarget::hasMTHC1 ( ) const [inline]

Definition at line 243 of file MipsSubtarget.h.

References hasMips32r2().

Definition at line 233 of file MipsSubtarget.h.

References inMips16Mode().

Referenced by enableLongBranchPass().

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

Definition at line 214 of file MipsSubtarget.h.

References HasVFPU.

Definition at line 223 of file MipsSubtarget.h.

References InMips16HardFloat, and inMips16Mode().

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

Definition at line 216 of file MipsSubtarget.h.

References InMips16Mode.

Referenced by allowMixed16_32().

Only O32 and EABI supported right now.

Definition at line 161 of file MipsSubtarget.h.

References EABI, and MipsABI.

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

Definition at line 165 of file MipsSubtarget.h.

References isABI_O32(), and IsFPXX.

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

bool llvm::MipsSubtarget::isFPXX ( ) const [inline]

Definition at line 211 of file MipsSubtarget.h.

References IsGP64bit.

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

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

Definition at line 230 of file MipsSubtarget.h.

References IsLinux.

bool llvm::MipsSubtarget::isLittle ( ) const [inline]

Definition at line 209 of file MipsSubtarget.h.

References IsNaN2008bit.

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

Definition at line 208 of file MipsSubtarget.h.

References UseOddSPReg.

bool llvm::MipsSubtarget::os16 ( ) const [inline]

Definition at line 248 of file MipsSubtarget.h.

References Os16.

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

Referenced by initializeSubtargetDependencies().

Definition at line 256 of file MipsSubtarget.h.

References hasMips64().

Does the system support unaligned memory access.

MIPS32r6/MIPS64r6 require full unaligned access support but does not specify which component of the system provides it. Hardware, software, and hybrid implementations are all valid.

Definition at line 269 of file MipsSubtarget.h.

References hasMips32r6().

Referenced by llvm::MipsSETargetLowering::allowsMisalignedMemoryAccesses(), llvm::MipsTargetLowering::lowerLOAD(), and llvm::MipsTargetLowering::lowerSTORE().

Definition at line 213 of file MipsSubtarget.cpp.

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


Member Data Documentation

Definition at line 128 of file MipsSubtarget.h.

Referenced by allowMixed16_32().

Definition at line 148 of file MipsSubtarget.h.

Referenced by getDataLayout().

Definition at line 151 of file MipsSubtarget.h.

Referenced by getFrameLowering().

Definition at line 87 of file MipsSubtarget.h.

Referenced by hasCnMips().

Definition at line 125 of file MipsSubtarget.h.

Referenced by hasDSP().

Definition at line 125 of file MipsSubtarget.h.

Referenced by hasDSPR2().

Features related to the presence of specific instructions.

Definition at line 98 of file MipsSubtarget.h.

Definition at line 101 of file MipsSubtarget.h.

Definition at line 104 of file MipsSubtarget.h.

Referenced by hasMips4_32().

Definition at line 107 of file MipsSubtarget.h.

Referenced by hasMips4_32r2().

Definition at line 110 of file MipsSubtarget.h.

Definition at line 136 of file MipsSubtarget.h.

Referenced by hasMSA().

Definition at line 84 of file MipsSubtarget.h.

Referenced by hasVFPU().

Definition at line 122 of file MipsSubtarget.h.

Referenced by inMicroMipsMode().

std::unique_ptr<const MipsInstrInfo> llvm::MipsSubtarget::InstrInfo [protected]

Definition at line 150 of file MipsSubtarget.h.

Referenced by getInstrInfo(), and getRegisterInfo().

Definition at line 138 of file MipsSubtarget.h.

Referenced by getInstrItineraryData(), and initializeSubtargetDependencies().

Definition at line 71 of file MipsSubtarget.h.

Referenced by isFP64bit().

Definition at line 65 of file MipsSubtarget.h.

Referenced by isABI_FPXX(), isFPXX(), and MipsSubtarget().

Definition at line 81 of file MipsSubtarget.h.

Referenced by isGP32bit(), and isGP64bit().

Definition at line 90 of file MipsSubtarget.h.

Referenced by isLinux(), and MipsSubtarget().

Definition at line 57 of file MipsSubtarget.h.

Referenced by isLittle().

Definition at line 78 of file MipsSubtarget.h.

Referenced by isNaN2008().

Definition at line 62 of file MipsSubtarget.h.

Referenced by isSingleFloat().

Definition at line 54 of file MipsSubtarget.h.

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

Definition at line 68 of file MipsSubtarget.h.

Referenced by isABICalls().

Definition at line 133 of file MipsSubtarget.h.

Referenced by os16().

enum { ... } llvm::MipsSubtarget::OverrideMode [protected]

Definition at line 119 of file MipsSubtarget.h.

Referenced by MipsSubtarget().

Definition at line 146 of file MipsSubtarget.h.

Referenced by initializeSubtargetDependencies(), and isTargetNaCl().

Definition at line 152 of file MipsSubtarget.h.

Referenced by getTargetLowering().

Definition at line 144 of file MipsSubtarget.h.

Referenced by abiUsesSoftFloat(), getRelocationModel(), and MipsSubtarget().

Definition at line 149 of file MipsSubtarget.h.

Referenced by getSelectionDAGInfo().

Are odd single-precision registers permitted? This corresponds to -modd-spreg and -mno-odd-spreg

Definition at line 75 of file MipsSubtarget.h.

Referenced by noOddSPReg(), and useOddSPReg().

Definition at line 93 of file MipsSubtarget.h.

Referenced by MipsSubtarget(), and useSmallSection().


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