LLVM
8.0.1
|
#include "Target/Mips/MipsSubtarget.h"
Static Public Member Functions | |
static bool | useConstantIslands () |
Protected Attributes | |
std::unique_ptr< CallLowering > | CallLoweringInfo |
std::unique_ptr< LegalizerInfo > | Legalizer |
std::unique_ptr< RegisterBankInfo > | RegBankInfo |
std::unique_ptr< InstructionSelector > | InstSelector |
Definition at line 40 of file MipsSubtarget.h.
MipsSubtarget::MipsSubtarget | ( | const Triple & | TT, |
StringRef | CPU, | ||
StringRef | FS, | ||
bool | little, | ||
const MipsTargetMachine & | TM, | ||
unsigned | StackAlignOverride | ||
) |
This constructor initializes the data members to match that of the specified triple.
Definition at line 71 of file MipsSubtarget.cpp.
References assert(), CallLoweringInfo, llvm::createMipsInstructionSelector(), llvm::errs(), getRegisterInfo(), getTargetLowering(), GPOpt, hasCRC(), hasDSP(), hasDSPR2(), hasGINV(), hasMips32(), hasMips32r2(), hasMips32r5(), hasMips32r6(), hasMips64(), hasMips64r2(), hasMips64r6(), hasMSA(), hasSym32(), hasVirt(), InstSelector, isABI_N32(), isABI_N64(), isABI_O32(), isFP64bit(), isGP64bit(), isNaN2008(), llvm::TargetMachine::isPositionIndependent(), RegBankInfo, llvm::report_fatal_error(), and useOddSPReg().
Referenced by isABI_FPXX().
|
inline |
Definition at line 331 of file MipsSubtarget.h.
References inMips16ModeDefault().
Referenced by enableLongBranchPass().
|
inline |
Definition at line 306 of file MipsSubtarget.h.
|
inline |
Definition at line 323 of file MipsSubtarget.h.
References allowMixed16_32(), hasStandardEncoding(), and inMicroMipsMode().
|
override |
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 214 of file MipsSubtarget.cpp.
const MipsABIInfo & MipsSubtarget::getABI | ( | ) | const |
Definition at line 264 of file MipsSubtarget.cpp.
References llvm::MipsTargetMachine::getABI().
Referenced by llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::MipsSEFrameLowering::determineCalleeSaves(), llvm::MipsFrameLowering::eliminateCallFramePseudoInstr(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::MipsInstrInfo::getEquivalentCompactForm(), llvm::MipsSEFrameLowering::getFrameIndexReference(), isABI_N32(), isABI_N64(), isABI_O32(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::MipsSEInstrInfo::loadRegFromStack(), and llvm::MipsSEFrameLowering::spillCalleeSavedRegisters().
|
override |
Definition at line 266 of file MipsSubtarget.cpp.
References CallLoweringInfo.
|
override |
Definition at line 216 of file MipsSubtarget.cpp.
References isGP64bit().
|
inlineoverride |
Definition at line 367 of file MipsSubtarget.h.
Referenced by llvm::MipsRegisterInfo::canRealignStack(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::MipsRegisterInfo::getReservedRegs(), and llvm::MipsTargetLowering::HandleByVal().
|
inline |
Definition at line 278 of file MipsSubtarget.h.
References isGP64bit().
Referenced by llvm::MipsTargetLowering::getTypeForExtReturn(), and llvm::MipsTargetLowering::HandleByVal().
|
inlineoverride |
Definition at line 366 of file MipsSubtarget.h.
Referenced by llvm::Mips16FrameLowering::determineCalleeSaves(), llvm::MipsFrameLowering::eliminateCallFramePseudoInstr(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), getEquivalentCallShort(), llvm::MipsTargetLowering::HandleByVal(), Mips16WhichOp8uOr16simm(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), and llvm::MipsSEFrameLowering::spillCalleeSavedRegisters().
|
inlineoverride |
Definition at line 376 of file MipsSubtarget.h.
|
override |
Definition at line 278 of file MipsSubtarget.cpp.
References InstSelector.
|
override |
Definition at line 270 of file MipsSubtarget.cpp.
|
override |
Definition at line 222 of file MipsSubtarget.cpp.
References llvm::CodeGenOpt::Aggressive.
|
override |
Definition at line 274 of file MipsSubtarget.cpp.
References RegBankInfo.
|
inlineoverride |
Definition at line 370 of file MipsSubtarget.h.
Referenced by llvm::MipsSEFrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::MipsFrameLowering::estimateStackSize(), llvm::MipsTargetLowering::getOpndList(), llvm::MipsTargetLowering::getTypeForExtReturn(), llvm::MipsFrameLowering::hasBP(), llvm::MipsFrameLowering::hasFP(), llvm::Mips16TargetLowering::Mips16TargetLowering(), llvm::MipsSETargetLowering::MipsSETargetLowering(), and MipsSubtarget().
Reloc::Model MipsSubtarget::getRelocationModel | ( | ) | const |
Definition at line 257 of file MipsSubtarget.cpp.
References llvm::TargetMachine::getRelocationModel().
Referenced by llvm::MipsSEFrameLowering::emitPrologue(), and getStackAlignment().
|
inlineoverride |
Definition at line 363 of file MipsSubtarget.h.
|
inline |
Definition at line 344 of file MipsSubtarget.h.
References getRelocationModel(), and initializeSubtargetDependencies().
|
inlineoverride |
Definition at line 373 of file MipsSubtarget.h.
Referenced by MipsSubtarget().
|
inline |
Definition at line 267 of file MipsSubtarget.h.
Referenced by llvm::MipsSETargetLowering::MipsSETargetLowering(), llvm::MipsTargetLowering::MipsTargetLowering(), performANDCombine(), and performSHLCombine().
|
inline |
Definition at line 309 of file MipsSubtarget.h.
Referenced by MipsSubtarget().
|
inline |
Definition at line 302 of file MipsSubtarget.h.
Referenced by llvm::MipsSETargetLowering::getRepRegClassFor(), llvm::MipsSETargetLowering::MipsSETargetLowering(), MipsSubtarget(), and performDSPShiftCombine().
|
inline |
Definition at line 303 of file MipsSubtarget.h.
Referenced by llvm::MipsSETargetLowering::MipsSETargetLowering(), MipsSubtarget(), performSRACombine(), and performSRLCombine().
|
inline |
Definition at line 304 of file MipsSubtarget.h.
|
inline |
Definition at line 307 of file MipsSubtarget.h.
|
inline |
Features related to the presence of specific instructions.
Definition at line 328 of file MipsSubtarget.h.
References hasMips32r2(), and inMips16Mode().
Referenced by lowerFCOPYSIGN64(), performANDCombine(), and performORCombine().
|
inline |
Definition at line 311 of file MipsSubtarget.h.
Referenced by MipsSubtarget().
|
inline |
Definition at line 234 of file MipsSubtarget.h.
|
inline |
Definition at line 235 of file MipsSubtarget.h.
|
inline |
Definition at line 236 of file MipsSubtarget.h.
|
inline |
Definition at line 241 of file MipsSubtarget.h.
References hasMips64().
Referenced by llvm::MipsTargetLowering::createFastISel(), llvm::MipsTargetLowering::HandleByVal(), llvm::MipsTargetLowering::isCheapToSpeculateCtlz(), llvm::MipsTargetLowering::isCheapToSpeculateCttz(), lowerFCOPYSIGN64(), MipsSubtarget(), llvm::MipsTargetLowering::MipsTargetLowering(), performADDCombine(), and performSUBCombine().
|
inline |
Definition at line 245 of file MipsSubtarget.h.
References hasMips64r2().
Referenced by llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsSEFrameLowering::emitPrologue(), hasExtractInsert(), hasMTHC1(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::MipsSETargetLowering::MipsSETargetLowering(), MipsSubtarget(), llvm::MipsTargetLowering::MipsTargetLowering(), and useIndirectJumpsHazard().
|
inline |
Definition at line 249 of file MipsSubtarget.h.
References hasMips64r2().
|
inline |
Definition at line 253 of file MipsSubtarget.h.
References hasMips64r5().
Referenced by MipsSubtarget().
|
inline |
Definition at line 257 of file MipsSubtarget.h.
References hasMips64r6().
Referenced by llvm::MipsSETargetLowering::addMSAFloatType(), llvm::MipsTargetLowering::createFastISel(), llvm::MipsSETargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsRegisterInfo::getCalleeSavedRegs(), getEquivalentCallShort(), llvm::MipsInstrInfo::getEquivalentCompactForm(), getLoadStoreOffsetSizeInBits(), inMicroMips32r6Mode(), llvm::MipsSETargetLowering::MipsSETargetLowering(), MipsSubtarget(), llvm::MipsTargetLowering::MipsTargetLowering(), performADDCombine(), performSUBCombine(), llvm::MipsAsmPrinter::runOnMachineFunction(), and systemSupportsUnalignedAccess().
|
inline |
Definition at line 237 of file MipsSubtarget.h.
Referenced by llvm::MipsTargetLowering::HandleByVal(), and lowerFCOPYSIGN64().
|
inline |
Definition at line 239 of file MipsSubtarget.h.
|
inline |
Definition at line 240 of file MipsSubtarget.h.
|
inline |
Definition at line 238 of file MipsSubtarget.h.
|
inline |
Definition at line 261 of file MipsSubtarget.h.
Referenced by llvm::MipsSEFrameLowering::emitPrologue(), llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::MipsTargetLowering::getTypeForExtReturn(), hasMips32(), lowerMSABitClearImm(), MipsSubtarget(), llvm::MipsTargetLowering::MipsTargetLowering(), and performMADD_MSUBCombine().
|
inline |
Definition at line 262 of file MipsSubtarget.h.
Referenced by hasMips32r2(), hasMips32r3(), MipsSubtarget(), llvm::MipsTargetLowering::MipsTargetLowering(), and performORCombine().
|
inline |
Definition at line 263 of file MipsSubtarget.h.
|
inline |
Definition at line 264 of file MipsSubtarget.h.
Referenced by hasMips32r5().
|
inline |
|
inline |
Definition at line 305 of file MipsSubtarget.h.
Referenced by llvm::MipsSEFrameLowering::determineCalleeSaves(), llvm::MipsSETargetLowering::MipsSETargetLowering(), MipsSubtarget(), performANDCombine(), performORCombine(), performSRACombine(), performXORCombine(), and UnpackFromArgumentSlot().
|
inline |
Definition at line 308 of file MipsSubtarget.h.
|
inline |
Definition at line 329 of file MipsSubtarget.h.
References hasMips32r2().
Referenced by llvm::MipsSEInstrInfo::loadImmediate().
|
inline |
Definition at line 317 of file MipsSubtarget.h.
Referenced by llvm::MipsRegisterInfo::canRealignStack(), and enableLongBranchPass().
|
inline |
Definition at line 281 of file MipsSubtarget.h.
References isABI_N32(), isABI_N64(), and isABI_O32().
Referenced by llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), and MipsSubtarget().
|
inline |
Definition at line 286 of file MipsSubtarget.h.
|
inline |
Definition at line 310 of file MipsSubtarget.h.
Referenced by MipsSubtarget().
MipsSubtarget & MipsSubtarget::initializeSubtargetDependencies | ( | StringRef | CPU, |
StringRef | FS, | ||
const TargetMachine & | TM | ||
) |
Definition at line 227 of file MipsSubtarget.cpp.
References assert(), llvm::TargetMachine::getTargetTriple(), isABI_N32(), isABI_N64(), isABI_O32(), ParseSubtargetFeatures(), and llvm::MIPS_MC::selectMipsCPU().
Referenced by getStackAlignment().
|
inline |
Definition at line 299 of file MipsSubtarget.h.
References hasMips32r6(), and inMicroMipsMode().
|
inline |
Definition at line 298 of file MipsSubtarget.h.
Referenced by llvm::MipsSEInstrInfo::copyPhysReg(), llvm::MipsTargetLowering::createFastISel(), emitDirectiveRelocJalr(), llvm::MipsAsmPrinter::EmitFunctionEntryLabel(), enableLongBranchPass(), llvm::MipsSEInstrInfo::expandPostRAPseudo(), getEquivalentCallShort(), llvm::MipsInstrInfo::getEquivalentCompactForm(), getLoadStoreOffsetSizeInBits(), getUnconditionalBranch(), inMicroMips32r6Mode(), llvm::MipsTargetLowering::MipsTargetLowering(), and llvm::MipsAsmPrinter::runOnMachineFunction().
|
inline |
Definition at line 295 of file MipsSubtarget.h.
References inMips16Mode().
Referenced by llvm::MipsTargetLowering::getOpndList(), and llvm::MipsCCState::getSpecialCallingConvForCallee().
|
inline |
Definition at line 287 of file MipsSubtarget.h.
Referenced by llvm::MipsFrameLowering::create(), llvm::MipsInstrInfo::create(), llvm::MipsTargetLowering::create(), llvm::MipsTargetLowering::createFastISel(), llvm::MipsAsmPrinter::EmitConstantPool(), llvm::MipsAsmPrinter::EmitFunctionBodyEnd(), llvm::MipsAsmPrinter::EmitFunctionBodyStart(), llvm::MipsAsmPrinter::EmitFunctionEntryLabel(), llvm::MipsAsmPrinter::EmitInstruction(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::MipsTargetLowering::getTypeForExtReturn(), hasExtractInsert(), inMips16HardFloat(), llvm::MipsTargetLowering::MipsTargetLowering(), performADDCombine(), performSUBCombine(), and llvm::MipsAsmPrinter::runOnMachineFunction().
|
inline |
Definition at line 288 of file MipsSubtarget.h.
Referenced by allowMixed16_32().
|
inline |
Definition at line 223 of file MipsSubtarget.h.
References isABI_O32(), llvm::support::little, MipsSubtarget(), and ParseSubtargetFeatures().
Referenced by llvm::MipsSEInstrInfo::loadImmediate().
bool MipsSubtarget::isABI_N32 | ( | ) | const |
Definition at line 262 of file MipsSubtarget.cpp.
References getABI(), and llvm::MipsABIInfo::IsN32().
Referenced by llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCallPreservedMask(), hasSym32(), initializeSubtargetDependencies(), MipsSubtarget(), and shouldTransformMulToShiftsAddsSubs().
bool MipsSubtarget::isABI_N64 | ( | ) | const |
Definition at line 261 of file MipsSubtarget.cpp.
References getABI(), and llvm::MipsABIInfo::IsN64().
Referenced by llvm::MipsSEFrameLowering::emitPrologue(), llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCallPreservedMask(), hasSym32(), initializeSubtargetDependencies(), llvm::MipsSEInstrInfo::loadImmediate(), lowerMSALoadIntr(), lowerMSAStoreIntr(), MipsSubtarget(), and shouldTransformMulToShiftsAddsSubs().
bool MipsSubtarget::isABI_O32 | ( | ) | const |
Definition at line 263 of file MipsSubtarget.cpp.
References getABI(), and llvm::MipsABIInfo::IsO32().
Referenced by llvm::MipsSEFrameLowering::emitPrologue(), llvm::MipsTargetLowering::getNumRegistersForCallingConv(), llvm::MipsTargetLowering::getRegisterTypeForCallingConv(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::MipsTargetLowering::getTypeForExtReturn(), hasSym32(), initializeSubtargetDependencies(), isABI_FPXX(), MipsSubtarget(), and shouldTransformMulToShiftsAddsSubs().
|
inline |
Definition at line 270 of file MipsSubtarget.h.
Referenced by llvm::MipsAsmPrinter::EmitStartOfAsmFile(), and llvm::MipsRegisterInfo::getReservedRegs().
|
inline |
Definition at line 272 of file MipsSubtarget.h.
Referenced by llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCallPreservedMask(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::MipsTargetLowering::getTypeForExtReturn(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::MipsSETargetLowering::MipsSETargetLowering(), and MipsSubtarget().
|
inline |
Definition at line 271 of file MipsSubtarget.h.
Referenced by llvm::MipsRegisterInfo::getCalleeSavedRegs(), and llvm::MipsRegisterInfo::getCallPreservedMask().
|
inline |
Definition at line 277 of file MipsSubtarget.h.
Referenced by llvm::MipsRegisterInfo::canRealignStack().
|
inline |
Definition at line 276 of file MipsSubtarget.h.
Referenced by llvm::MipsSEFrameLowering::determineCalleeSaves(), llvm::MipsAsmPrinter::EmitEndOfAsmFile(), getCriticalPathRCs(), getGPRSizeInBytes(), llvm::MipsTargetLowering::getRegisterByName(), llvm::MipsTargetLowering::getTypeForExtReturn(), llvm::MipsSEInstrInfo::loadImmediate(), lowerFCOPYSIGN64(), llvm::MipsSETargetLowering::MipsSETargetLowering(), MipsSubtarget(), llvm::MipsTargetLowering::MipsTargetLowering(), llvm::MipsAsmPrinter::PrintAsmOperand(), and llvm::MipsAsmPrinter::runOnMachineFunction().
|
inline |
Definition at line 269 of file MipsSubtarget.h.
Referenced by CC_MipsO32(), llvm::MipsSETargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::MipsTargetLowering::lowerLOAD(), lowerMSABitClearImm(), llvm::MipsTargetLowering::lowerSTORE(), performDSPShiftCombine(), performORCombine(), llvm::MipsAsmPrinter::PrintAsmMemoryOperand(), llvm::MipsAsmPrinter::PrintAsmOperand(), and UnpackFromArgumentSlot().
|
inline |
Definition at line 275 of file MipsSubtarget.h.
Referenced by MipsSubtarget().
bool MipsSubtarget::isPositionIndependent | ( | ) | const |
Definition at line 209 of file MipsSubtarget.cpp.
References llvm::TargetMachine::isPositionIndependent().
Referenced by getUnconditionalBranch().
|
inline |
Definition at line 280 of file MipsSubtarget.h.
|
inline |
Definition at line 279 of file MipsSubtarget.h.
|
inline |
Definition at line 284 of file MipsSubtarget.h.
Referenced by llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCallPreservedMask(), llvm::MipsTargetLowering::getTypeForExtReturn(), llvm::MipsTargetLowering::lowerSTORE(), and llvm::MipsSETargetLowering::MipsSETargetLowering().
|
inline |
Definition at line 285 of file MipsSubtarget.h.
References llvm::Triple::isOSBinFormatELF().
|
inline |
Definition at line 336 of file MipsSubtarget.h.
References llvm::Triple::isOSNaCl().
Referenced by llvm::MipsAsmPrinter::EmitFunctionEntryLabel(), llvm::MipsRegisterInfo::getReservedRegs(), and llvm::MipsAsmPrinter::runOnMachineFunction().
|
inlineoverride |
Definition at line 338 of file MipsSubtarget.h.
References useConstantIslands().
|
inline |
Definition at line 274 of file MipsSubtarget.h.
|
inline |
Definition at line 334 of file MipsSubtarget.h.
ParseSubtargetFeatures - Parses features string setting specified subtarget options.
Definition of function is auto generated by tblgen.
Referenced by initializeSubtargetDependencies(), and isABI_FPXX().
void llvm::MipsSubtarget::setHelperClassesMips16 | ( | ) |
Referenced by systemSupportsUnalignedAccess().
void llvm::MipsSubtarget::setHelperClassesMipsSE | ( | ) |
Referenced by systemSupportsUnalignedAccess().
|
inline |
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 357 of file MipsSubtarget.h.
References hasMips32r6(), setHelperClassesMips16(), and setHelperClassesMipsSE().
Referenced by llvm::MipsSETargetLowering::allowsMisalignedMemoryAccesses(), llvm::MipsTargetLowering::lowerLOAD(), and llvm::MipsTargetLowering::lowerSTORE().
|
static |
Definition at line 251 of file MipsSubtarget.cpp.
References llvm::dbgs(), LLVM_DEBUG, and Mips16ConstantIslands.
Referenced by branchMaxOffsets(), llvm::MipsAsmPrinter::EmitConstantPool(), and isXRaySupported().
|
inline |
Definition at line 312 of file MipsSubtarget.h.
References hasMips32r2().
Referenced by llvm::MipsInstrInfo::verifyInstruction().
|
inline |
Definition at line 321 of file MipsSubtarget.h.
|
inline |
Definition at line 273 of file MipsSubtarget.h.
Referenced by llvm::MipsRegisterInfo::getReservedRegs(), llvm::MipsSEInstrInfo::loadImmediate(), and MipsSubtarget().
|
inline |
Definition at line 315 of file MipsSubtarget.h.
Referenced by llvm::MipsRegisterInfo::getReservedRegs(), and llvm::MipsTargetObjectFile::IsGlobalInSmallSection().
|
inline |
|
protected |
Definition at line 382 of file MipsSubtarget.h.
Referenced by getCallLowering(), and MipsSubtarget().
|
protected |
Definition at line 385 of file MipsSubtarget.h.
Referenced by getInstructionSelector(), and MipsSubtarget().
|
protected |
Definition at line 383 of file MipsSubtarget.h.
|
protected |
Definition at line 384 of file MipsSubtarget.h.
Referenced by getRegBankInfo(), and MipsSubtarget().