LLVM API Documentation
#include <MipsSubtarget.h>
Public Types | |
enum | MipsABIEnum { UnknownABI, O32, N32, N64, EABI } |
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 |
MipsTargetMachine * | TM |
Definition at line 32 of file MipsSubtarget.h.
|
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.
|
protected |
Enumerator | |
---|---|
Mips32 | |
Mips32r2 | |
Mips64 | |
Mips64r2 |
Definition at line 43 of file MipsSubtarget.h.
MipsSubtarget::MipsSubtarget | ( | const std::string & | TT, |
const std::string & | CPU, | ||
const std::string & | FS, | ||
bool | little, | ||
Reloc::Model | RM, | ||
MipsTargetMachine * | TM | ||
) |
This constructor initializes the data members to match that of the specified triple.
Definition at line 64 of file MipsSubtarget.cpp.
References HasBitCount, hasMips64(), hasMSA(), InMips16Mode, inMips16Mode(), InstrItins, isABI_EABI(), isABI_N32(), isABI_N64(), isABI_O32(), isFP64bit(), IsLinux, MipsABI, N64, O32, ParseSubtargetFeatures(), PreviousInMips16Mode, llvm::report_fatal_error(), RM, llvm::Reloc::Static, UnknownABI, and UseSmallSection.
|
inline |
Definition at line 210 of file MipsSubtarget.h.
References AllowMixed16_32, and inMips16ModeDefault().
Referenced by llvm::MipsTargetMachine::addAnalysisPasses(), enableLongBranchPass(), and llvm::MipsAsmPrinter::runOnMachineFunction().
|
inline |
Definition at line 197 of file MipsSubtarget.h.
References allowMixed16_32(), and hasStandardEncoding().
|
virtual |
Definition at line 115 of file MipsSubtarget.cpp.
References llvm::CodeGenOpt::Aggressive, llvm::TargetSubtargetInfo::ANTIDEP_NONE, and hasMips64().
|
inline |
Definition at line 209 of file MipsSubtarget.h.
References InstrItins.
|
inline |
Definition at line 223 of file MipsSubtarget.h.
References MRI.
Referenced by llvm::MipsAsmPrinter::EmitEndOfAsmFile().
|
inline |
Definition at line 226 of file MipsSubtarget.h.
References RM.
Referenced by assureFPCallStub(), createFPFnStub(), emitELFHeaderFlagsCG(), llvm::MipsAsmPrinter::EmitStartOfAsmFile(), and fixupFPReturnAndCall().
|
inline |
Definition at line 143 of file MipsSubtarget.h.
References MipsABI.
Referenced by llvm::MipsAsmPrinter::getCurrentABIString().
|
inline |
Definition at line 205 of file MipsSubtarget.h.
References HasBitCount.
Referenced by llvm::MipsTargetLowering::MipsTargetLowering().
|
inline |
Definition at line 203 of file MipsSubtarget.h.
References HasCondMov.
|
inline |
Definition at line 187 of file MipsSubtarget.h.
References HasDSP.
Referenced by llvm::MipsSETargetLowering::getRepRegClassFor(), llvm::MipsSETargetLowering::MipsSETargetLowering(), and performDSPShiftCombine().
|
inline |
Definition at line 188 of file MipsSubtarget.h.
References HasDSPR2.
Referenced by llvm::MipsSETargetLowering::MipsSETargetLowering(), performSRACombine(), and performSRLCombine().
|
inline |
Definition at line 207 of file MipsSubtarget.h.
References hasMips32r2(), and inMips16Mode().
Referenced by performANDCombine(), and performORCombine().
|
inline |
Definition at line 206 of file MipsSubtarget.h.
References HasFPIdx.
|
inline |
Definition at line 155 of file MipsSubtarget.h.
References Mips32, and MipsArchVersion.
Referenced by performADDECombine(), and performSUBECombine().
|
inline |
Definition at line 156 of file MipsSubtarget.h.
References Mips32r2, Mips64r2, and MipsArchVersion.
Referenced by emitELFHeaderFlagsCG(), hasExtractInsert(), and llvm::MipsTargetLowering::MipsTargetLowering().
|
inline |
Definition at line 158 of file MipsSubtarget.h.
References Mips64, and MipsArchVersion.
Referenced by emitELFHeaderFlagsCG(), llvm::MipsAsmPrinter::EmitStartOfAsmFile(), enablePostRAScheduler(), MipsSubtarget(), llvm::MipsSEFrameLowering::processFunctionBeforeCalleeSavedScan(), and stackAlignment().
|
inline |
Definition at line 159 of file MipsSubtarget.h.
References Mips64r2, and MipsArchVersion.
Referenced by emitELFHeaderFlagsCG(), and llvm::MipsTargetLowering::MipsTargetLowering().
|
inline |
Definition at line 189 of file MipsSubtarget.h.
References HasMSA.
Referenced by llvm::MipsSETargetLowering::MipsSETargetLowering(), MipsSubtarget(), performANDCombine(), performORCombine(), performSRACombine(), and performXORCombine().
|
inline |
Features related to the presence of specific instructions.
Definition at line 202 of file MipsSubtarget.h.
References HasSEInReg.
Referenced by llvm::MipsTargetLowering::MipsTargetLowering().
|
inline |
Definition at line 193 of file MipsSubtarget.h.
References inMips16Mode().
Referenced by enableLongBranchPass().
|
inline |
Definition at line 204 of file MipsSubtarget.h.
References HasSwap.
Referenced by llvm::MipsTargetLowering::MipsTargetLowering().
|
inline |
Definition at line 168 of file MipsSubtarget.h.
References HasVFPU.
|
inline |
Definition at line 186 of file MipsSubtarget.h.
References InMicroMipsMode.
Referenced by emitELFHeaderFlagsCG(), and llvm::MipsAsmPrinter::EmitFunctionEntryLabel().
|
inline |
Definition at line 183 of file MipsSubtarget.h.
References InMips16HardFloat, and inMips16Mode().
Referenced by llvm::MipsTargetLowering::getOpndList(), and llvm::Mips16TargetLowering::Mips16TargetLowering().
|
inline |
Definition at line 169 of file MipsSubtarget.h.
References InMips16Mode, llvm_unreachable, Mips16Override, NoMips16Override, NoOverride, and OverrideMode.
Referenced by llvm::MipsFrameLowering::create(), llvm::MipsInstrInfo::create(), llvm::MipsTargetLowering::create(), llvm::createMipsISelDag(), emitELFHeaderFlagsCG(), llvm::MipsAsmPrinter::EmitFunctionBodyEnd(), llvm::MipsAsmPrinter::EmitFunctionBodyStart(), llvm::MipsAsmPrinter::EmitFunctionEntryLabel(), llvm::MipsAsmPrinter::EmitInstruction(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::MipsTargetMachine::getInstrItineraryData(), llvm::MipsRegisterInfo::getReservedRegs(), hasExtractInsert(), hasStandardEncoding(), inMips16HardFloat(), MipsSubtarget(), and resetSubtarget().
|
inline |
Definition at line 180 of file MipsSubtarget.h.
References InMips16Mode.
Referenced by allowMixed16_32().
|
inline |
Only O32 and EABI supported right now.
Definition at line 139 of file MipsSubtarget.h.
Referenced by llvm::MipsAsmPrinter::EmitStartOfAsmFile(), and MipsSubtarget().
|
inline |
Definition at line 141 of file MipsSubtarget.h.
Referenced by llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCallPreservedMask(), llvm::MipsTargetObjectFile::Initialize(), and MipsSubtarget().
|
inline |
Definition at line 140 of file MipsSubtarget.h.
Referenced by llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::MipsSEFrameLowering::ehDataReg(), llvm::MipsSEFrameLowering::eliminateCallFramePseudoInstr(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::MipsReginfo::emitMipsReginfoSectionCG(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCallPreservedMask(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::MipsRegisterInfo::getPointerRegClass(), llvm::MipsTargetObjectFile::Initialize(), llvm::MipsSEInstrInfo::loadImmediate(), MipsSubtarget(), and llvm::MipsSEFrameLowering::processFunctionBeforeCalleeSavedScan().
|
inline |
Definition at line 142 of file MipsSubtarget.h.
Referenced by emitELFHeaderFlagsCG(), llvm::MipsReginfo::emitMipsReginfoSectionCG(), and MipsSubtarget().
|
inline |
Definition at line 162 of file MipsSubtarget.h.
References IsFP64bit.
Referenced by llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCallPreservedMask(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::MipsSETargetLowering::MipsSETargetLowering(), and MipsSubtarget().
|
inline |
Definition at line 165 of file MipsSubtarget.h.
References IsGP64bit.
Referenced by llvm::MipsAsmPrinter::EmitStartOfAsmFile().
|
inline |
Definition at line 164 of file MipsSubtarget.h.
References IsGP64bit.
Referenced by llvm::MipsAsmPrinter::PrintAsmOperand().
|
inline |
Definition at line 190 of file MipsSubtarget.h.
References IsLinux.
|
inline |
Definition at line 161 of file MipsSubtarget.h.
References IsLittle.
Referenced by assureFPCallStub(), createFPFnStub(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::MipsTargetLowering::lowerLOAD(), llvm::MipsTargetLowering::lowerSTORE(), performDSPShiftCombine(), performORCombine(), and llvm::MipsAsmPrinter::PrintAsmOperand().
|
inline |
Definition at line 163 of file MipsSubtarget.h.
References IsFP64bit.
|
inline |
Definition at line 167 of file MipsSubtarget.h.
References IsSingleFloat.
|
inline |
Definition at line 166 of file MipsSubtarget.h.
References IsSingleFloat.
Referenced by llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCallPreservedMask(), and llvm::MipsSETargetLowering::MipsSETargetLowering().
bool MipsSubtarget::mipsSEUsesSoftFloat | ( | ) | const |
Definition at line 169 of file MipsSubtarget.cpp.
References InMips16HardFloat, llvm::TargetMachine::Options, TM, and llvm::TargetOptions::UseSoftFloat.
Referenced by llvm::MipsSETargetLowering::MipsSETargetLowering().
|
inline |
Definition at line 213 of file MipsSubtarget.h.
References Os16.
ParseSubtargetFeatures - Parses features string setting specified subtarget options. Definition of function is auto generated by tblgen.
Referenced by MipsSubtarget().
void MipsSubtarget::resetSubtarget | ( | MachineFunction * | MF | ) |
Reset the subtarget for the Mips target.
Definition at line 129 of file MipsSubtarget.cpp.
References llvm::dbgs(), DEBUG, llvm::Function::getAttributes(), llvm::MachineFunction::getFunction(), llvm::AttributeSet::hasAttribute(), inMips16Mode(), Mips16Override, NoMips16Override, NoOverride, OverrideMode, PreviousInMips16Mode, llvm::MipsTargetMachine::setHelperClassesMips16(), llvm::MipsTargetMachine::setHelperClassesMipsSE(), and TM.
|
inline |
Definition at line 220 of file MipsSubtarget.h.
References hasMips64().
|
static |
Definition at line 173 of file MipsSubtarget.cpp.
References llvm::dbgs(), DEBUG, and Mips16ConstantIslands.
|
inline |
Definition at line 191 of file MipsSubtarget.h.
References UseSmallSection.
Referenced by llvm::MipsRegisterInfo::getReservedRegs(), and llvm::MipsTargetObjectFile::IsGlobalInSmallSection().
|
protected |
Definition at line 109 of file MipsSubtarget.h.
Referenced by allowMixed16_32().
|
protected |
Definition at line 88 of file MipsSubtarget.h.
Referenced by hasBitCount(), and MipsSubtarget().
|
protected |
Definition at line 82 of file MipsSubtarget.h.
Referenced by hasCondMov().
|
protected |
Definition at line 106 of file MipsSubtarget.h.
Referenced by hasDSP().
|
protected |
Definition at line 106 of file MipsSubtarget.h.
Referenced by hasDSPR2().
|
protected |
Definition at line 91 of file MipsSubtarget.h.
Referenced by hasFPIdx().
|
protected |
Definition at line 117 of file MipsSubtarget.h.
Referenced by hasMSA().
|
protected |
Features related to the presence of specific instructions.
Definition at line 79 of file MipsSubtarget.h.
Referenced by hasSEInReg().
|
protected |
Definition at line 85 of file MipsSubtarget.h.
Referenced by hasSwap().
|
protected |
Definition at line 68 of file MipsSubtarget.h.
Referenced by hasVFPU().
|
protected |
Definition at line 103 of file MipsSubtarget.h.
Referenced by inMicroMipsMode().
|
protected |
Definition at line 97 of file MipsSubtarget.h.
Referenced by inMips16HardFloat(), and mipsSEUsesSoftFloat().
|
protected |
Definition at line 94 of file MipsSubtarget.h.
Referenced by inMips16Mode(), inMips16ModeDefault(), and MipsSubtarget().
|
protected |
Definition at line 119 of file MipsSubtarget.h.
Referenced by getInstrItineraryData(), and MipsSubtarget().
|
protected |
Definition at line 62 of file MipsSubtarget.h.
Referenced by isFP64bit(), and isNotFP64bit().
|
protected |
Definition at line 65 of file MipsSubtarget.h.
Referenced by isGP32bit(), and isGP64bit().
|
protected |
Definition at line 71 of file MipsSubtarget.h.
Referenced by isLinux(), and MipsSubtarget().
|
protected |
Definition at line 54 of file MipsSubtarget.h.
Referenced by isLittle().
|
protected |
Definition at line 59 of file MipsSubtarget.h.
Referenced by isNotSingleFloat(), and isSingleFloat().
|
protected |
Definition at line 51 of file MipsSubtarget.h.
Referenced by getTargetABI(), isABI_EABI(), isABI_N32(), isABI_N64(), isABI_O32(), and MipsSubtarget().
|
protected |
Definition at line 48 of file MipsSubtarget.h.
Referenced by hasMips32(), hasMips32r2(), hasMips64(), and hasMips64r2().
|
protected |
Definition at line 122 of file MipsSubtarget.h.
Referenced by getMReginfo().
|
protected |
Definition at line 114 of file MipsSubtarget.h.
Referenced by os16().
enum { ... } llvm::MipsSubtarget::OverrideMode |
Referenced by inMips16Mode(), and resetSubtarget().
|
protected |
Definition at line 100 of file MipsSubtarget.h.
Referenced by MipsSubtarget(), and resetSubtarget().
|
protected |
Definition at line 125 of file MipsSubtarget.h.
Referenced by getRelocationModel(), and MipsSubtarget().
|
protected |
Definition at line 131 of file MipsSubtarget.h.
Referenced by mipsSEUsesSoftFloat(), and resetSubtarget().
|
protected |
Definition at line 74 of file MipsSubtarget.h.
Referenced by MipsSubtarget(), and useSmallSection().