LLVM 20.0.0git
|
#include "Target/RISCV/RISCVSubtarget.h"
Public Types | |
enum | RISCVProcFamilyEnum : uint8_t { Others , SiFive7 , VentanaVeyron , MIPSP8700 } |
Protected Member Functions | |
unsigned | getMaxRVVVectorSizeInBits () const |
unsigned | getMinRVVVectorSizeInBits () const |
Protected Attributes | |
std::unique_ptr< const SelectionDAGTargetInfo > | TSInfo |
std::unique_ptr< CallLowering > | CallLoweringInfo |
std::unique_ptr< InstructionSelector > | InstSelector |
std::unique_ptr< LegalizerInfo > | Legalizer |
std::unique_ptr< RISCVRegisterBankInfo > | RegBankInfo |
Definition at line 78 of file RISCVSubtarget.h.
Enumerator | |
---|---|
Others | |
SiFive7 | |
VentanaVeyron | |
MIPSP8700 |
Definition at line 81 of file RISCVSubtarget.h.
RISCVSubtarget::RISCVSubtarget | ( | const Triple & | TT, |
StringRef | CPU, | ||
StringRef | TuneCPU, | ||
StringRef | FS, | ||
StringRef | ABIName, | ||
unsigned | RVVVectorBitsMin, | ||
unsigned | RVVVectorLMULMax, | ||
const TargetMachine & | TM | ||
) |
Definition at line 91 of file RISCVSubtarget.cpp.
References TSInfo.
|
overridedefault |
|
override |
Definition at line 197 of file RISCVSubtarget.cpp.
|
inlineoverride |
Definition at line 141 of file RISCVSubtarget.h.
|
inlineoverride |
Definition at line 143 of file RISCVSubtarget.h.
|
override |
Definition at line 195 of file RISCVSubtarget.cpp.
|
inline |
If the ElementCount or TypeSize X
is scalable and VScale (VLEN) is exactly known, returns X
converted to a fixed quantity.
Otherwise returns X
unmodified.
Definition at line 223 of file RISCVSubtarget.h.
References getRealVLen(), llvm::RISCV::RVVBitsPerBlock, and X.
Referenced by llvm::RISCVDAGToDAGISel::Select().
|
inlineoverride |
Definition at line 333 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::CacheLineSize.
|
override |
Definition at line 110 of file RISCVSubtarget.cpp.
References CallLoweringInfo, and getTargetLowering().
|
inline |
Definition at line 283 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTargetLowering::getLMULCost().
|
inline |
Definition at line 200 of file RISCVSubtarget.h.
References assert(), hasVInstructions(), and hasVInstructionsI64().
Referenced by combineBinOpOfExtractToReduceTree(), llvm::RISCVTTIImpl::getArithmeticInstrCost(), llvm::RISCVTTIImpl::getArithmeticReductionCost(), llvm::RISCVTTIImpl::getCastInstrCost(), llvm::RISCVTTIImpl::getCmpSelInstrCost(), getContainerForFixedLengthVector(), llvm::RISCVTTIImpl::getExtendedReductionCost(), llvm::RISCVTTIImpl::getMinMaxReductionCost(), llvm::RISCVTargetLowering::getOptimalMemOpType(), llvm::RISCVTTIImpl::getShuffleCost(), getWideningInterleave(), isInterleaveShuffle(), lowerBuildVectorOfConstants(), lowerBuildVectorViaPacking(), lowerGetVectorLength(), lowerVECTOR_SHUFFLE(), llvm::RISCVTargetLowering::RISCVTargetLowering(), and useRVVForFixedLengthVectorVT().
|
inline |
Definition at line 191 of file RISCVSubtarget.h.
Referenced by lowerBUILD_VECTOR().
|
inlineoverride |
Definition at line 130 of file RISCVSubtarget.h.
Referenced by llvm::RISCVMachineFunctionInfo::RISCVMachineFunctionInfo().
|
inlineoverride |
Definition at line 133 of file RISCVSubtarget.h.
Referenced by llvm::RISCVFrameLowering::allocateStack(), llvm::RISCVFrameLowering::emitEpilogue(), emitFROUND(), EmitLoweredCascadedSelect(), llvm::RISCVFrameLowering::emitPrologue(), emitSelectPseudo(), llvm::RISCVCallLowering::lowerCall(), lowerRISCVVMachineInstrToMCInst(), llvm::RISCVRegisterInfo::lowerVRELOAD(), and llvm::RISCVRegisterInfo::lowerVSPILL().
|
override |
Definition at line 116 of file RISCVSubtarget.cpp.
References llvm::createRISCVInstructionSelector(), getRegBankInfo(), llvm::TargetLoweringBase::getTargetMachine(), and InstSelector.
|
override |
Definition at line 125 of file RISCVSubtarget.cpp.
unsigned RISCVSubtarget::getMaxBuildIntsCost | ( | ) | const |
Definition at line 141 of file RISCVSubtarget.cpp.
References RISCVMaxBuildIntsCost.
Referenced by lowerConstant(), and llvm::RISCVTargetLowering::shouldConvertConstantLoadToIntImm().
|
inline |
Definition at line 360 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::MaxGluedStoresPerMemcpy.
Referenced by llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inline |
Definition at line 256 of file RISCVSubtarget.h.
References hasVInstructions().
unsigned RISCVSubtarget::getMaxLMULForFixedLengthVectors | ( | ) | const |
Definition at line 181 of file RISCVSubtarget.cpp.
References assert(), llvm::bit_floor(), hasVInstructions(), and RVVVectorLMULMax.
Referenced by llvm::RISCVTTIImpl::isLegalMaskedExpandLoad(), and useRVVForFixedLengthVectorVT().
Definition at line 374 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::MaxLoadsPerMemcmp, and llvm::RISCVTuneInfoTable::RISCVTuneInfo::MaxLoadsPerMemcmpOptSize.
Referenced by llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inlineoverride |
Definition at line 345 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::MaxPrefetchIterationsAhead.
|
protected |
Definition at line 152 of file RISCVSubtarget.cpp.
References assert(), hasVInstructions(), and llvm::report_fatal_error().
Referenced by getRealMaxVLen().
Definition at line 364 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::MaxStoresPerMemcpy, and llvm::RISCVTuneInfoTable::RISCVTuneInfo::MaxStoresPerMemcpyOptSize.
Referenced by llvm::RISCVTargetLowering::RISCVTargetLowering().
Definition at line 369 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::MaxStoresPerMemmove, and llvm::RISCVTuneInfoTable::RISCVTuneInfo::MaxStoresPerMemmoveOptSize.
Referenced by llvm::RISCVTargetLowering::RISCVTargetLowering().
Definition at line 355 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::MaxStoresPerMemset, and llvm::RISCVTuneInfoTable::RISCVTuneInfo::MaxStoresPerMemsetOptSize.
Referenced by llvm::RISCVTargetLowering::RISCVTargetLowering().
unsigned RISCVSubtarget::getMinimumJumpTableEntries | ( | ) | const |
Definition at line 205 of file RISCVSubtarget.cpp.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::MinimumJumpTableEntries, and RISCVMinimumJumpTableEntries.
|
inlineoverride |
Definition at line 339 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::MinPrefetchStride.
|
protected |
Definition at line 165 of file RISCVSubtarget.cpp.
References assert(), hasVInstructions(), and llvm::report_fatal_error().
Referenced by getRealMinVLen(), and useRVVForFixedLengthVectors().
|
inline |
Definition at line 379 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::PostRASchedDirection.
Referenced by overridePostRASchedPolicy().
|
inlineoverride |
Definition at line 336 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::PrefetchDistance.
|
inline |
Definition at line 145 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::PrefFunctionAlignment.
Referenced by llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inline |
Definition at line 148 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::PrefLoopAlignment.
Referenced by llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inline |
Returns RISC-V processor family.
Avoid this function! CPU specifics should be kept local to this class and preferably modeled with SubtargetFeatures or properties in initializeProperties().
Definition at line 156 of file RISCVSubtarget.h.
|
inline |
Definition at line 208 of file RISCVSubtarget.h.
References getMaxRVVVectorSizeInBits().
Referenced by llvm::RISCVTargetLowering::computeKnownBitsForTargetNode(), llvm::RISCVTargetLowering::computeVLMAXBounds(), llvm::RISCVTTIImpl::getMaxVScale(), getRealVLen(), and llvm::RISCVTTIImpl::getShuffleCost().
|
inline |
Definition at line 204 of file RISCVSubtarget.h.
References getMinRVVVectorSizeInBits().
Referenced by llvm::RISCVTargetLowering::computeKnownBitsForTargetNode(), llvm::RISCVTargetLowering::computeVLMAXBounds(), getContainerForFixedLengthVector(), llvm::RISCVTargetLowering::getLMULCost(), llvm::RISCVTargetLowering::getOptimalMemOpType(), getRealVLen(), llvm::RISCVTTIImpl::getRegisterBitWidth(), llvm::RISCVTTIImpl::getRegUsageForType(), llvm::RISCVTTIImpl::getShuffleCost(), getSmallestVTForIndex(), llvm::RISCVTTIImpl::getVScaleForTuning(), llvm::RISCVTargetLowering::isExtractSubvectorCheap(), llvm::RISCVTTIImpl::isLegalMaskedExpandLoad(), isValidEGW(), llvm::RISCVTargetLowering::isVScaleKnownToBeAPowerOfTwo(), lowerBuildVectorOfConstants(), llvm::RISCVTargetLowering::LowerOperation(), lowerVECTOR_SHUFFLE(), and useRVVForFixedLengthVectorVT().
|
inline |
Definition at line 213 of file RISCVSubtarget.h.
References getRealMaxVLen(), and getRealMinVLen().
Referenced by expandVScale(), llvm::RISCVTTIImpl::getVectorInstrCost(), lowerBUILD_VECTOR(), lowerShuffleViaVRegSplitting(), llvm::RISCVRegisterInfo::lowerVRELOAD(), llvm::RISCVRegisterInfo::lowerVSPILL(), and llvm::RISCVDAGToDAGISel::selectVSETVLI().
|
override |
Definition at line 131 of file RISCVSubtarget.cpp.
References RegBankInfo.
Referenced by getInstructionSelector(), and llvm::RISCVCallLowering::lowerCall().
|
inlineoverride |
Definition at line 134 of file RISCVSubtarget.h.
Referenced by llvm::RISCVFrameLowering::allocateStack(), llvm::RISCVInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysRegVector(), llvm::RISCVFrameLowering::eliminateCallFramePseudoInstr(), llvm::RISCVFrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::RISCVTargetLowering::getRegisterByName(), llvm::RISCVFrameLowering::hasBP(), isConvertibleToVMV_V_V(), llvm::RISCVCallLowering::lowerCall(), llvm::RISCVTargetLowering::LowerCall(), lowerRISCVVMachineInstrToMCInst(), llvm::RISCVRegisterInfo::lowerVRELOAD(), llvm::RISCVRegisterInfo::lowerVSPILL(), llvm::RISCVTargetLowering::RISCVTargetLowering(), and llvm::RISCVDAGToDAGISel::Select().
|
override |
Definition at line 106 of file RISCVSubtarget.cpp.
References TSInfo.
|
inline |
Definition at line 351 of file RISCVSubtarget.h.
References llvm::RISCVTuneInfoTable::RISCVTuneInfo::TailDupAggressiveThreshold.
Referenced by llvm::RISCVInstrInfo::getTailDuplicateSize().
|
inline |
Definition at line 231 of file RISCVSubtarget.h.
Referenced by llvm::CC_RISCV(), llvm::CC_RISCV_FastCC(), CC_RISCVAssign2XLen(), llvm::RISCVTargetLowering::LowerFormalArguments(), and llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inlineoverride |
Definition at line 137 of file RISCVSubtarget.h.
Referenced by llvm::CC_RISCV(), llvm::CC_RISCV_FastCC(), getCallLowering(), isLegalBitRotate(), lowerBitreverseShuffle(), and llvm::RISCVDAGToDAGISel::Select().
|
inline |
Definition at line 188 of file RISCVSubtarget.h.
References is64Bit().
Referenced by llvm::RISCVFrameLowering::assignCalleeSavedSpillSlots(), llvm::CC_RISCV(), llvm::CC_RISCV_FastCC(), combineSelectAndUse(), llvm::RISCVTargetLowering::ComputeNumSignBitsForTargetNode(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::RISCVTargetLowering::decomposeMulByConstant(), llvm::RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVFrameLowering::emitPrologue(), llvm::RISCVInstrInfo::foldMemoryOperandImpl(), llvm::RISCVFrameLowering::getFirstSPAdjustAmount(), llvm::RISCVTTIImpl::getIntImmCostInst(), llvm::RISCVTTIImpl::getRegisterBitWidth(), llvm::RISCVTTIImpl::getVectorInstrCost(), llvm::RISCVDAGToDAGISel::hasAllNBitUsers(), llvm::RISCVInstrInfo::isBranchOffsetInRange(), llvm::RISCVTargetLowering::isFPImmLegal(), llvm::RISCVTargetLowering::isMulAddWithConstProfitable(), lowerBuildVectorOfConstants(), lowerBuildVectorViaPacking(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), lowerFABSorFNEG(), lowerFCOPYSIGN(), llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::RISCVTargetLowering::lowerInterleavedLoad(), llvm::RISCVTargetLowering::lowerInterleavedStore(), llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore(), performBITREVERSECombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::ReplaceNodeResults(), llvm::RISCVTargetLowering::RISCVTargetLowering(), llvm::RISCVDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::selectShiftMaskXLen(), llvm::RISCVDAGToDAGISel::selectSHXADDOp(), llvm::RISCVTargetLowering::shouldConvertConstantLoadToIntImm(), llvm::RISCVTargetLowering::shouldExtendTypeInLibCall(), transformAddImmMulImm(), and transformAddShlImm().
|
inline |
Definition at line 185 of file RISCVSubtarget.h.
References is64Bit().
Referenced by llvm::RISCVDAGToDAGISel::addVectorLoadStoreOperands(), buildDefaultVLOps(), llvm::CC_RISCV(), llvm::CC_RISCV_FastCC(), combine_CC(), combineScalarCTPOPToVCPOP(), combineSubShiftToOrcB(), llvm::RISCVTargetLowering::computeVLMax(), convertFromScalableVector(), expandMul(), getDefaultScalableVLOps(), getDefaultVLOps(), getVSlidedown(), getVSlideup(), getWideningInterleave(), llvm::RISCVTargetLowering::joinRegisterPartsIntoValue(), llvm::RISCVTargetLowering::LowerAsmOperandForConstraint(), lowerBUILD_VECTOR(), lowerBuildVectorOfConstants(), lowerBuildVectorViaDominantValues(), lowerBuildVectorViaPacking(), llvm::RISCVTargetLowering::LowerCall(), lowerCttzElts(), lowerDisjointIndicesShuffle(), lowerFABSorFNEG(), lowerFCOPYSIGN(), lowerFMAXIMUM_FMINIMUM(), llvm::RISCVTargetLowering::LowerFormalArguments(), lowerFP_TO_INT_SAT(), lowerFTRUNC_FCEIL_FFLOOR_FROUND(), lowerGetVectorLength(), llvm::RISCVTargetLowering::LowerOperation(), lowerReductionSeq(), lowerScalarInsert(), lowerScalarSplat(), lowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLEAsVSlide1(), lowerVECTOR_SHUFFLEAsVSlidedown(), lowerVECTOR_SHUFFLEAsVSlideup(), lowerVectorFTRUNC_FCEIL_FFLOOR_FROUND(), lowerVectorIntrinsicScalars(), lowerVectorStrictFTRUNC_FCEIL_FFLOOR_FROUND(), lowerVectorXRINT(), matchSplatAsGather(), performCONCAT_VECTORSCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), performFP_TO_INT_SATCombine(), performFP_TO_INTCombine(), performSRACombine(), llvm::RISCVDAGToDAGISel::PreprocessISelDAG(), promoteVCIXScalar(), llvm::RISCVTargetLowering::ReplaceNodeResults(), llvm::RISCVTargetLowering::RISCVTargetLowering(), llvm::RISCVDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::SelectAddrFrameIndex(), llvm::RISCVDAGToDAGISel::SelectFrameAddrRegImm(), llvm::RISCVDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::RISCVDAGToDAGISel::selectRVVSimm5(), llvm::RISCVDAGToDAGISel::selectScalarFPAsInt(), llvm::RISCVDAGToDAGISel::selectSF_VC_X_SE(), llvm::RISCVDAGToDAGISel::selectVLSEGFF(), llvm::RISCVDAGToDAGISel::selectVSETVLI(), selectVSplatImmHelper(), llvm::RISCVTargetLowering::splitValueIntoRegisterParts(), and tryMemPairCombine().
|
inline |
Definition at line 178 of file RISCVSubtarget.h.
References hasStdExtCOrZca().
Referenced by combineSelectAndUse(), combineSelectToBinOp(), llvm::RISCVTTIImpl::getCmpSelInstrCost(), llvm::RISCVTargetLowering::PerformDAGCombine(), and performSELECTCombine().
|
inline |
Definition at line 174 of file RISCVSubtarget.h.
Definition at line 260 of file RISCVSubtarget.h.
References llvm_unreachable.
Referenced by llvm::RISCVTTIImpl::getInterleavedMemoryOpCost(), llvm::RISCVTargetLowering::lowerInterleavedLoad(), and llvm::RISCVTargetLowering::lowerInterleavedStore().
|
inline |
Definition at line 162 of file RISCVSubtarget.h.
Referenced by estimateFunctionSizeInBytes(), llvm::RISCVFrameLowering::getFirstSPAdjustAmount(), llvm::RISCVInstrInfo::getInstSizeInBytes(), llvm::RISCVInstrInfo::getNop(), hasConditionalMoveFusion(), isCompressibleLoad(), isCompressibleStore(), and llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inline |
Definition at line 163 of file RISCVSubtarget.h.
Referenced by isCompressibleLoad(), and isCompressibleStore().
|
inline |
Definition at line 164 of file RISCVSubtarget.h.
Referenced by isCompressibleLoad(), and isCompressibleStore().
|
inline |
Definition at line 169 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::RISCVTargetLowering::isFPImmLegal(), llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::RISCVTargetLowering::LowerOperation(), llvm::RISCVTargetLowering::ReplaceNodeResults(), and llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inline |
Definition at line 168 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTargetLowering::getNumRegistersForCallingConv(), llvm::RISCVTargetLowering::getRegisterTypeForCallingConv(), llvm::RISCVTargetLowering::isFMAFasterThanFMulAndFAdd(), llvm::RISCVTargetLowering::isFPImmLegal(), llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::RISCVTargetLowering::LowerOperation(), llvm::RISCVTargetLowering::ReplaceNodeResults(), and llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inline |
Definition at line 171 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTargetLowering::getNumRegistersForCallingConv(), llvm::RISCVTargetLowering::getRegisterTypeForCallingConv(), llvm::RISCVTargetLowering::isFPImmLegal(), llvm::RISCVTargetLowering::LowerOperation(), llvm::RISCVTargetLowering::ReplaceNodeResults(), and llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inline |
Definition at line 170 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTargetLowering::isFMAFasterThanFMulAndFAdd(), lowerFP_TO_INT(), lowerFP_TO_INT_SAT(), lowerINT_TO_FP(), llvm::RISCVTargetLowering::ReplaceNodeResults(), and llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inline |
Definition at line 167 of file RISCVSubtarget.h.
|
inline |
Definition at line 246 of file RISCVSubtarget.h.
Referenced by llvm::RISCVCallLowering::canLowerReturn(), llvm::RISCVTTIImpl::canSplatOperand(), combineBinOpOfExtractToReduceTree(), llvm::RISCVTTIImpl::getCastInstrCost(), getELen(), llvm::RISCVTTIImpl::getIntrinsicInstrCost(), getMaxInterleaveFactor(), getMaxLMULForFixedLengthVectors(), getMaxRVVVectorSizeInBits(), llvm::RISCVTTIImpl::getMaxVScale(), getMinRVVVectorSizeInBits(), llvm::RISCVTargetLowering::getOptimalMemOpType(), llvm::RISCVTargetLowering::getRegForInlineAsmConstraint(), llvm::RISCVTTIImpl::getRegisterBitWidth(), llvm::RISCVTTIImpl::getRegUsageForType(), getScavSlotsNumForRVV(), llvm::RISCVTargetLowering::getSetCCResultType(), llvm::RISCVTTIImpl::getVScaleForTuning(), llvm::RISCVTTIImpl::hasActiveVectorLength(), llvm::RISCVTargetLowering::isLegalAddressingMode(), llvm::RISCVTargetLowering::isLegalStridedLoadStore(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), isSupportedArgumentType(), isSupportedReturnType(), llvm::RISCVTargetLowering::isTruncateFree(), lowerVectorIntrinsicScalars(), llvm::RISCVTargetLowering::RISCVTargetLowering(), llvm::RISCVDAGToDAGISel::selectSF_VC_X_SE(), llvm::RISCVDAGToDAGISel::selectVSETVLI(), llvm::RISCVTargetLowering::shouldExpandCttzElements(), llvm::RISCVTargetLowering::shouldFoldSelectWithIdentityConstant(), and useRVVForFixedLengthVectors().
|
inline |
Definition at line 254 of file RISCVSubtarget.h.
References hasVInstructionsF32().
|
inline |
Definition at line 250 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTargetLowering::isLegalElementTypeForRVV(), isLegalElementTypeForRVV(), llvm::RISCVTargetLowering::RISCVTargetLowering(), and useRVVForFixedLengthVectorVT().
|
inline |
Definition at line 249 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTTIImpl::getArithmeticReductionCost(), llvm::RISCVTTIImpl::getCastInstrCost(), llvm::RISCVTTIImpl::getCmpSelInstrCost(), llvm::RISCVTTIImpl::getRegUsageForType(), llvm::RISCVTargetLowering::isFMAFasterThanFMulAndFAdd(), isLegalElementTypeForRVV(), isPromotedOpNeedingSplit(), llvm::RISCVTargetLowering::LowerOperation(), lowerVECTOR_SHUFFLEAsVSlide1(), and llvm::RISCVTargetLowering::RISCVTargetLowering().
|
inline |
Definition at line 248 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTargetLowering::isLegalElementTypeForRVV(), isPromotedOpNeedingSplit(), llvm::RISCVTargetLowering::LowerOperation(), llvm::RISCVTargetLowering::RISCVTargetLowering(), and useRVVForFixedLengthVectorVT().
|
inline |
|
inline |
Definition at line 252 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTTIImpl::getCmpSelInstrCost(), llvm::RISCVTargetLowering::isLegalElementTypeForRVV(), isLegalElementTypeForRVV(), llvm::RISCVTargetLowering::RISCVTargetLowering(), and useRVVForFixedLengthVectorVT().
|
inline |
Definition at line 255 of file RISCVSubtarget.h.
|
inline |
Definition at line 247 of file RISCVSubtarget.h.
Referenced by getELen(), llvm::RISCVTargetLowering::isLegalElementTypeForRVV(), isLegalElementTypeForRVV(), llvm::RISCVTargetLowering::RISCVTargetLowering(), and useRVVForFixedLengthVectorVT().
|
inline |
Definition at line 184 of file RISCVSubtarget.h.
Referenced by llvm::RISCVFrameLowering::allocateStack(), llvm::RISCVInstrInfo::canFoldIntoAddrMode(), llvm::CC_RISCV_FastCC(), llvm::CC_RISCV_GHC(), emitFROUND(), llvm::RISCVTargetLowering::EmitInstrWithCustomInserter(), llvm::RISCVTTIImpl::enableMemCmpExpansion(), llvm::RISCVFrameLowering::getFirstSPAdjustAmount(), llvm::RISCVInstrInfo::getInstSizeInBytes(), llvm::RISCVTargetLowering::getJumpTableEncoding(), llvm::RISCVTargetLowering::getNumRegisters(), getPACKOpcode(), llvm::RISCVTTIImpl::getPopcntSupport(), llvm::RISCVTargetLowering::getPostIndexedAddressParts(), llvm::RISCVTargetLowering::getRegForInlineAsmConstraint(), getXLen(), getXLenVT(), llvm::RISCVTargetLowering::isCheapToSpeculateCtlz(), llvm::RISCVTargetLowering::isCheapToSpeculateCttz(), isCompressibleLoad(), isCompressibleStore(), llvm::RISCVTargetLowering::isLegalElementTypeForRVV(), isLegalElementTypeForRVV(), llvm::RISCVTargetLowering::isSExtCheaperThanZExt(), llvm::RISCVTargetLowering::isTruncateFree(), llvm::RISCVTargetLowering::joinRegisterPartsIntoValue(), lowerBuildVectorOfConstants(), llvm::RISCVTargetLowering::LowerCustomJumpTableEntry(), llvm::RISCVTargetLowering::LowerOperation(), llvm::RISCVInstrInfo::movImm(), performANDCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), performSETCCCombine(), performSIGN_EXTEND_INREGCombine(), performTRUNCATECombine(), performXORCombine(), llvm::RISCVTargetLowering::ReplaceNodeResults(), llvm::RISCVTargetLowering::RISCVTargetLowering(), llvm::RISCVDAGToDAGISel::Select(), selectConstantAddr(), llvm::RISCVDAGToDAGISel::selectScalarFPAsInt(), llvm::RISCVDAGToDAGISel::selectVLXSEG(), llvm::RISCVDAGToDAGISel::selectVSXSEG(), llvm::RISCVTargetLowering::shouldSignExtendTypeInLibCall(), llvm::RISCVTargetLowering::shouldTransformSignedTruncationCheck(), llvm::RISCVTargetLowering::signExtendConstant(), llvm::RISCVTargetLowering::splitValueIntoRegisterParts(), and llvm::RISCVInstrInfo::verifyInstruction().
Definition at line 237 of file RISCVSubtarget.h.
References assert().
Referenced by llvm::RISCVFrameLowering::emitPrologue(), llvm::RISCVTargetLowering::getRegisterByName(), and llvm::RISCVTargetLowering::LowerReturn().
|
inline |
Definition at line 232 of file RISCVSubtarget.h.
References llvm::RISCVABI::ABI_ILP32, llvm::RISCVABI::ABI_ILP32E, and llvm::RISCVABI::ABI_LP64.
Referenced by llvm::RISCVTargetLowering::LowerOperation(), llvm::RISCVTargetLowering::RISCVTargetLowering(), and llvm::RISCVTargetLowering::shouldExtendTypeInLibCall().
|
inline |
Definition at line 313 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTargetLowering::getIRStackGuard().
|
inline |
Definition at line 314 of file RISCVSubtarget.h.
Referenced by llvm::RISCVTargetLowering::getIRStackGuard().
|
inlineoverride |
Definition at line 243 of file RISCVSubtarget.h.
|
override |
Definition at line 227 of file RISCVSubtarget.cpp.
References llvm::MISched::Bidirectional, llvm::MISched::BottomUp, getPostRASchedDirection(), llvm::MachineSchedPolicy::OnlyBottomUp, llvm::MachineSchedPolicy::OnlyTopDown, and llvm::MISched::TopDown.
|
override |
Definition at line 211 of file RISCVSubtarget.cpp.
References llvm::MachineSchedPolicy::DisableLatencyHeuristic, llvm::MachineSchedPolicy::OnlyBottomUp, llvm::MachineSchedPolicy::OnlyTopDown, and llvm::MachineSchedPolicy::ShouldTrackPressure.
void llvm::RISCVSubtarget::ParseSubtargetFeatures | ( | StringRef | CPU, |
StringRef | TuneCPU, | ||
StringRef | FS | ||
) |
|
override |
Enable use of alias analysis during code generation (during MI scheduling, DAGCombine, etc.).
Definition at line 203 of file RISCVSubtarget.cpp.
References UseAA.
bool RISCVSubtarget::useConstantPoolForLargeInts | ( | ) | const |
Definition at line 137 of file RISCVSubtarget.cpp.
References RISCVDisableUsingConstantPoolForLargeInts.
Referenced by lowerConstant().
|
inlineoverride |
Definition at line 329 of file RISCVSubtarget.h.
bool RISCVSubtarget::useRVVForFixedLengthVectors | ( | ) | const |
Definition at line 190 of file RISCVSubtarget.cpp.
References getMinRVVVectorSizeInBits(), hasVInstructions(), and llvm::RISCV::RVVBitsPerBlock.
Referenced by llvm::RISCVTTIImpl::getArithmeticInstrCost(), llvm::RISCVTTIImpl::getArithmeticReductionCost(), llvm::RISCVTTIImpl::getCmpSelInstrCost(), llvm::RISCVTTIImpl::getExtendedReductionCost(), llvm::RISCVTTIImpl::getMinMaxReductionCost(), llvm::RISCVTTIImpl::getRegisterBitWidth(), llvm::RISCVTTIImpl::getRegUsageForType(), llvm::RISCVTargetLowering::getSetCCResultType(), llvm::RISCVTargetLowering::isLegalInterleavedAccessType(), llvm::RISCVTargetLowering::isLegalStridedLoadStore(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::RISCVTargetLowering(), and useRVVForFixedLengthVectorVT().
|
mutableprotected |
Definition at line 294 of file RISCVSubtarget.h.
Referenced by getCallLowering().
|
mutableprotected |
Definition at line 295 of file RISCVSubtarget.h.
Referenced by getInstructionSelector().
|
mutableprotected |
Definition at line 296 of file RISCVSubtarget.h.
|
mutableprotected |
Definition at line 297 of file RISCVSubtarget.h.
Referenced by getRegBankInfo().
|
protected |
Definition at line 291 of file RISCVSubtarget.h.
Referenced by getSelectionDAGInfo(), and RISCVSubtarget().